Witam
Mam problem z "rozłożeniem" odebranego stringu na interesujące mnie dane.
Otrzymuję tekstowo to :
SERVER_@_^MAC^a020a6082e2e^NA^LIGHT_SERVER_1^PO^BRAK^GR^OSWIETLENIE^SSID^POLICJA^PASS^17B21F3924FGH994^IP^192.168.1.12^GA^192.168.1.1^SU^255.255.255.0^LO^9980^9A9A^>
i muszę wyłuskać interesujące mnie dane. Jako separator zmiennych używam znaku "^" . Niestety nie mogę zmienić tego separatora na inny gdyż używa go zbyt wiele modułów opartych o AVR8.
W moim programie mam kilkanaście Label-i w które muszę wstawić interesujące mnie dane np:
MAC.Text= "a020a6082e2e"
IP.Text="192.168.1.12" itd...
Na AVR realizowałem to w prosty sposób. Mogłem bez problemy wyliczyć występujące w stringu "^" dzięki:
Kod:
//ZLICZANIE TOKENÓW:
token_ilosc=0;
pch=strchr(CFG_DANE,'^');
while (pch!=NULL)
{
pch=strchr(pch+1,'^');
token_ilosc++;
}
a potem
Kod:
wsk = strtok (CFG_DANE , sep);
//1.nagłówek raportu <^CLI_@
wsk = strtok (NULL , sep);
ale w B4A to już nie tak łatwo.
Czytałem i próbowałem to zrealizować dzięki funkcji : s = Regex.Split("^", SERVER_DANE)
ale jakoś nie idzie to tak jak zakładam.
Kiedy chcę podejrzeć co otrzymuję po "wyłuskiwaniu" to w Label1 otrzymuję cały string jaki poddaję tokenowaniu...
Proszę o jakieś porady i naprowadzenie mnie na rozwiązanie.
Nie oczekuję gotowców ale każda rada jest cenna
------------------------ [ Dodano po: 9 minutach ]hmmm z tego co zauważyłem to znak "^" jest znakiem specjalnym dla Regex.Split i należy używać Regex.Split("\^", SERVER_DANE) zamiast Regex.Split("^", SERVER_DANE)