Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 22 maja 2025, o 06:55


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
    Autor Wiadomość
    PostNapisane: 18 wrz 2017, o 21:39 
    Offline
    Nowy

    Dołączył(a): 14 sie 2016
    Posty: 18
    Pomógł: 0

    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)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 wrz 2017, o 10:41 
    Offline
    Użytkownik

    Dołączył(a): 23 kwi 2016
    Posty: 58
    Pomógł: 9

    To może skorzystaj z czegoś takiego w Globals piszesz Private sf As StringFunctions
    A zapis danych jest taki sam jak w Regex.Split tyle tylko że traktujesz te dane jako stringi.
    Regex.Split jest chyba inny od StringFunctions, ale musiałbyś to sprawdzić.


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 wrz 2017, o 16:30 
    Offline
    Nowy

    Dołączył(a): 05 sty 2016
    Posty: 5
    Pomógł: 1

    A może tak z biblioteki MkWiFiUDP
    Zastanawiam się czy da radę użyć IndexOf lub IndexOf2 lub LastIndexOf i LastIdexOf2.
    Może pan Mirek coś naprowadzi.

    ------------------------ [ Dodano po: 27 minutach ]

    B4A - MkWiFiUDP - FREE LIB

    Szukaj w tytule jak wyżej. Jest tam ładnie wyjaśnione o parsowaniu danych i rozbijanie pojedyncze stringi


    Autor postu otrzymał pochwałę


    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 wrz 2017, o 19:09 
    Offline
    Użytkownik

    Dołączył(a): 19 lip 2013
    Posty: 771
    Pomógł: 40

    dokładnie to samo chciałem zaproponować



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO