Identyfikacja końca stringu

Pytania i odpowiedzi dotyczące sprzętu Unitronics

Moderatorzy: Marek Sikora, Mateusz Sikorski

Identyfikacja końca stringu

Postprzez --GS-- » Cz, 29 lis 2012, 11:51

Dzień dobry,

Chciałbym w swoim programie odczytywać ciągi znaków umieszczonych w kolejnych komórkach rejestrów MI.
W helpie "Strings: Section Operations" jest napisane wprost, że każdy String zawsze kończy się znakiem NULL.
Jak prawidłowo zakończyć String ? Nasuwają mi się dwa rozwiązania:
1. Po ostatnim rejestrze MI, zawierającym jeszcze znak należy wstawić rejestr dodatkowy ze znakiem NULL. lub
2. Wystarczy aby bajt LSB ostatniego rejestru MI miał znak NULL.

Czy ktoś z kolegów rozwiązywał taki problem?

Pozdrawiam
Grzegorz

PS. Jak szkoda, że UNITRONICS nie wypuścił symulatora :-(
.............................................................................................................
Grzegorz
teraz: V350 - 35 - R2; VisiLogic ver. 9.4.0 b.0
--GS--
 
Posty: 44
Dołączył(a): Pt, 10 lut 2012, 09:58

Re: Identyfikacja końca stringu

Postprzez Adrian Surma » Cz, 29 lis 2012, 12:02

Witam
Memory Integer może pomieścić dwa znaki ASCII. Nigdy nie zwracałem uwagi na znak NULL.
Na wyświetlaczu wybierając STRING wpisujemy długość wektora wszystkie znaki prawidłowo się wyświetlają.
Mam nadzieję, że do tego rodzaju programu potrzebuje Pan to wykorzystać. Jeżeli jest inaczej to proszę napisać dokładnie co chce Pan zrealizować.
Adrian Surma
Adrian Surma
 
Posty: 142
Dołączył(a): Pt, 6 cze 2008, 07:17

Re: Identyfikacja końca stringu

Postprzez --GS-- » Cz, 29 lis 2012, 12:45

Witam,
potrzebuję utworzyć datę w innym formacie.
po przekonwertowaniu z RTC na ASCII dostaję format dd/mm/yy (8 znaków).
Potrzebuję tę datę przekonwertować na format yyrmmdd (7 znaków).
Przekonwertowana data ma służyć jako uzupełnienie nazwy pliku zapisywanego na SD (ograniczenie do formatu 8.3) i Delimited Line w plikach EXCEL, dlatego też muszę utworzyć uniwersalny string w MI.
.............................................................................................................
Grzegorz
teraz: V350 - 35 - R2; VisiLogic ver. 9.4.0 b.0
--GS--
 
Posty: 44
Dołączył(a): Pt, 10 lut 2012, 09:58

Re: Identyfikacja końca stringu

Postprzez Adrian Surma » Cz, 29 lis 2012, 12:56

Idąc na "łatwiznę" można ominąć operacje na stringach wykorzystując systemowe integery:) Tworzymy stringa z odpowiednich SI tak jak poniżej. Dodatkowo postaram się podesłać działający program wykorzystujący operacje na stringach:
Obrazek
Adrian Surma
Adrian Surma
 
Posty: 142
Dołączył(a): Pt, 6 cze 2008, 07:17

Re: Identyfikacja końca stringu

Postprzez --GS-- » Cz, 29 lis 2012, 13:14

Jestem troszeczkę bardziej ambitny. Napisałem program na konwersję daty z formatu yy/mm/dd na YYrMMDD.
Pozostaje sprawa dołączenia przed nazwą jednej litery identyfikującej proces tak aby utworzony plik miał nazwę np:
P12r1128.udt, P12r1128.csv lub 12r1128.utr pozostaje do rozwiązania zakończenie nazwy głównej pliku. W pierwszych dwóch plikach
mamy 8-siem znaków należy więc do całego stringu dołożyć MI "NULL" i sprawa zakończona. W trzecim przypadku sprawa już nie jest tak oczywista
mamy tylko 7-dem znaków oznacza to, że ostatni MI ma zawartość hex: x3800. Czy "00" w tym MI będą zidentyfikowane jako "NULL"?
.............................................................................................................
Grzegorz
teraz: V350 - 35 - R2; VisiLogic ver. 9.4.0 b.0
--GS--
 
Posty: 44
Dołączył(a): Pt, 10 lut 2012, 09:58

Re: Identyfikacja końca stringu

Postprzez Adrian Surma » Cz, 29 lis 2012, 14:10

Wystarczy, że ostatnie MI będą przyjmowały wartość 0 i nie będą brały udziału w tworzeniu nazwy pliku.
Adrian Surma
Adrian Surma
 
Posty: 142
Dołączył(a): Pt, 6 cze 2008, 07:17


Powrót do Unitronics



Kto przegląda forum

Użytkownicy przeglądający to forum: Brak zalogowanych użytkowników i 3 gości

cron