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 - Jak przejść do kolejnego elementu w tablicy stringów?

Matiasssoo7 02 Sie 2013 13:56 3099 11
REKLAMA
  • #1 12587392
    Matiasssoo7
    Poziom 9  
    Witam. Mam tablicę stringów
    Kod: text
    Zaloguj się, aby zobaczyć kod

    jak zrobić(zakładając, że jestem w Tablica(1)), żeby przejść do kolejnego elementu tablicy? Funkcja "Incr" nie działa.
  • REKLAMA
  • #2 12587594
    arnoldziq
    VIP Zasłużony dla elektroda
    Incr-ementuj zmienną określającą index tablicy.
    W żadnym języku programowania nie ma możliwości określić "gdzie w tablicy" się "znajdujesz", bo wszystkie elementy tablicy są równorzędne, a Ty na tę tablicę nie wpływasz odczytując jej zawartość.
  • REKLAMA
  • #3 12588125
    Matiasssoo7
    Poziom 9  
    Trochę niejasno się wyraziłem...
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Jeśli PINB.0 = 1, To chcę odczytać kolejny string. Czyli jak by to była "Tablica(2)" to chce odczytać "Tablica(3)" i ma ona zostać na wyświetlaczu gdy będzie PINB.0 = 0, gdy kolejny raz będzie PINB.0 = 1, to teraz ma odczytać kolejną zmienną ("Tablica(4)").
    PS. Tak, wiem że nie umiem tłumaczyć :)
  • #4 12588267
    ZbeeGin
    Poziom 39  
    Po pojawieniu się PINB.0 = 1 zwiększaj indeks tablicy Idx. Idx to zmienna którą będziesz indeksował tablicę w poleceniu: Lcd Tablica(idx). Ponieważ program może być na tyle szybki, że mógłby przesunąć indeks tablicy o parę kroków naprzód jeśli na PINB.0 utrzymuje się stan wysoki, to musisz też zapamiętać czy zwiększenie zostało już wykonane i pozwolić na następne dopiero jeśli wystąpi PINB.0 = 0.

    Dodano po 7 [minuty]:

    arnoldziq napisał:
    W żadnym języku programowania nie ma możliwości określić "gdzie w tablicy" się "znajdujesz",

    Można to zrobić. Wystarczy dodać drugi wymiar tablicy i w tej dodatkowej komórce dla każdego wiersza tablicy zapisywać znacznik aktywnego wiersza. Napisać własne procedury odczytu i zapisu - przesuwające znacznik i funkcję zwracającą dane z aktywnego wiersza.

    Oczywiście łatwiej i mniej pamięciożrenie jest skorzystać z dodatkowej zmiennej "wskazującej". W języku BASCOM nie ma klasycznych wskaźników i ani post/pre-inkrementacji, więc trzeba "kombinować".
  • REKLAMA
  • #5 12589121
    Konto nie istnieje
    Poziom 1  
  • #6 12589449
    Matiasssoo7
    Poziom 9  
    Wielkie dzięki e marcus, naprawdę mi pomogłeś. Mój program jest już niemalże na ukończeniu jednakże mam jeszcze jeden kłopot...
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Gdy stan PINB.0 = 1 AND PIND.7 utrzymuje się zbyt długo, to przeskakuje mi kilka naraz, wiesz może jak temu zaradzić? "Wait 3" nie pomaga.
  • Pomocny post
    #7 12589586
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #8 12590511
    Matiasssoo7
    Poziom 9  
    Oto cały program:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #9 12593351
    Matiasssoo7
    Poziom 9  
    Przepraszam za 2x post ale jak chce edytować to wywala mi error 404, może dlatego,że piszę z telefonu. W każdym razie udało mi się rozwiązać ten problem. Jednak musicie poczekać do wieczora bo teraz nie mam dostępu do komputera.

    @Edit:

    Oto program, wstawiam go gdyby ktoś miał podobny problem.

    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #10 12602124
    arnoldziq
    VIP Zasłużony dla elektroda
    ZbeeGin napisał:
    arnoldziq napisał:
    W żadnym języku programowania nie ma możliwości określić "gdzie w tablicy" się "znajdujesz",

    Można to zrobić. Wystarczy dodać drugi wymiar tablicy i w tej dodatkowej komórce dla każdego wiersza tablicy zapisywać znacznik aktywnego wiersza. Napisać własne procedury odczytu i zapisu - przesuwające znacznik i funkcję zwracającą dane z aktywnego wiersza.

    Drogi kolego. Ma kolega taki długi staż na tym forum a stosuje kolega takie tanie chwyty, jak wycięcie i zacytowanie połowy mojej wypowiedzi? I w dodatku po to, żeby zupełnie zaciemnić obraz dość prostej operacji? Nie ładnie.
  • #11 12602860
    Konto nie istnieje
    Poziom 1  
  • #12 12606130
    Matiasssoo7
    Poziom 9  
    Owszem kompiluje się, a nawet wyobraź sobie, że działa. Niesamowite, nie? Proszę bardzo, temat zamykam.
REKLAMA