logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[BASCOM] Podział stringa na tablicę

kiler129 28 Kwi 2010 20:07 2196 3
REKLAMA
  • #1 8013898
    kiler129
    Poziom 27  
    Witajcie!
    Szukam tego od sporego czasu. Dzisiaj znowu potrzebuję tego użyć i po kolejnym gmeraniu nic.
    Czy w bascomie jest funkcja która dzieli stringa na tablicę tak jak explode() w php?
    Tzn daje stringa np. takiego: Ala-Ma-Kota i jako znak daję -. Na wyjściu dostaję tablicę: [0] => Ala [1] => Ma [2] => Kota
    Potrzebuję tego aby łatwo analizować dane z uartu.
  • REKLAMA
  • REKLAMA
  • #3 8014334
    kiler129
    Poziom 27  
    xury napisał:
    Specjalnej funkcji to nie ma, ale nic nie stoi na przeszkodzie napisać kilka linijek które to zrobią. Np. w pętli for next z użyciem mid()


    W programowaniu na PC radzę sobie dobrze - z uP już gorzej ;)
    Nie za bardzo wiem jak takową funkcję skonstruować z użyciem mid i for.

    Dodatkowo widzę, że piszesz spore kody w bascomie w związku z czym mam jeszcze jedno pytanie.
    Co się stanie jeśli wyślę z komputera 2 polecenie które są odbierane za pomocą input()? Chodzi o to czy procesor "zgubi" drugie polecenie czy też pętla analizująca pierwsze przeleci i przy koeljnym wywołaniu input() zobaczy, że jest linia w buforze i ją obsłuży?
  • #4 8018705
    xury
    Specjalista automatyka domowa
    Z tego co zrozumiałem będziesz wysyłał wyrazy przedzielone myślnikiem
    więc odczytujesz string, zliczasz ilość myslników (lub spacji, bo by było łatwiej) a następnie w pętli for wycinasz fragmenty pomiędzy myślnikami do tablicy i jednocześnie zwiększasz indeks tablicy. Poczytaj w helpie o poleceniach obróbki string'ów mid, instr, len, itd
    Aaa sorry zapomnialem o funkcji split, tóra to załatwia od strzała.


    Jeśli bufor jest odpowiednio dopasowany to pomieści obydwa polecenia i kod je obsłuży. Może być ich nawet więcej niż dwa. Ograniczeniem jest tylko wielkość buforu. Polecam odczyt w przerwaniu (bytematch=13)
REKLAMA