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, zmienna typu string. Zatrzymuje się transmisja.

mcoola 17 Mar 2007 11:31 1441 6
REKLAMA
  • #1 3686946
    mcoola
    Poziom 19  
    Posty: 436
    Pomógł: 22
    Ocena: 9
    Witam!
    Po napisaniu takiego programu:



    dim a as string * 30
    
    do
    
    a = input()
    id a<>"" then
    print a
    end if
    
    loop
    end


    wysyła mi kontroler wszystko co otrzyma ale gdy cała zmienna się zapełni to więcej nic niewyła i transmisja zatrzymuje się. Jak więc czyści się zmienne typu string?
  • REKLAMA
  • REKLAMA
  • #3 3687363
    mcoola
    Poziom 19  
    Posty: 436
    Pomógł: 22
    Ocena: 9
    nie ja piszę z pamięci więc może tam i niema nawiasów. Przypisuje jej pusty ciąg po każdej operacji ale to nic niedaje
  • REKLAMA
  • REKLAMA
  • #5 3688736
    mcoola
    Poziom 19  
    Posty: 436
    Pomógł: 22
    Ocena: 9
    robiłem tak i nic. Może zmienne string tzrba jakoś inaczej zerować?
  • #6 3689298
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    Może if nie trawi a<>""
    Może spróbuj tak:
    dim a as string * 30
    do
    input a
    if a="" then
    else
    print a
    a=""
    end if
    loop
    end


    Sprawdziłem przed chwilą w symulatorze wszystkie wersje - jest ok.
    Może błąd szybkości transmisji jest zbyt duży. Sprawdź czy w cudzysłowiu nie masz spacji.
  • #7 3690885
    mcoola
    Poziom 19  
    Posty: 436
    Pomógł: 22
    Ocena: 9
    niedziała, co niewpiszę to i tak nic z tego. Gdy zapełni się zmienna to przestaje odsyłać znaki do kompa. Na dodatek nie działa instrukcja if then else, bo czy z nią czy bez to program zachowuje się tak samo.

Podsumowanie tematu

✨ W dyskusji poruszono problem zatrzymującej się transmisji danych w programie napisanym w Bascom, gdzie zmienna typu string o stałej długości 30 znaków przestaje przyjmować nowe dane po całkowitym zapełnieniu. Próby "czyszczenia" zmiennej przez przypisanie pustego ciągu znaków po każdej operacji nie przyniosły efektu. Sugerowano poprawne użycie instrukcji Input oraz warunku if do sprawdzania pustej zmiennej, a także zwrócenie uwagi na ewentualne spacje w cudzysłowach i szybkość transmisji. Mimo różnych modyfikacji kodu problem nadal występuje, a program przestaje wysyłać dane do komputera po zapełnieniu zmiennej, co wskazuje na możliwe ograniczenia w obsłudze stringów o stałej długości w Bascom lub błędy w transmisji szeregowej.
Wygenerowane przez model językowy.
REKLAMA