Skrypt forum został zaktualizowany
Wszelakie błędy, pytania oraz prośby o nową funkcjonalność zgłaszajcie w tym wątku

Commodore BASIC. INPUT bez wciskania RETURN. Jak zrobić

Szukasz drobnej pomocy przy kodowaniu, albo chcesz przedstawić światu swoją gotową lub w trakcie realizacji produkcję? To właściwy dział.
Wiadomość
Autor
BigZ25
Posty: 52
Rejestracja: pt sie 22, 2014 7:44 pm

Commodore BASIC. INPUT bez wciskania RETURN. Jak zrobić

#1 Postautor: BigZ25 » sob sie 23, 2014 12:56 pm


Witam
Wie ktoś jak zrobić instrukcje INPUT bez wciskania RETURN (czyli tak jak getch w C++ :D )?

Beda
Posty: 21
Rejestracja: pt gru 21, 2012 4:41 am

#2 Postautor: Beda » ndz sie 24, 2014 11:40 pm

W BASIC także jest komenda GET.
Za jej pomocą możesz wprowadzać pojedyncze znaki z klawiatury.
Wykorzystując pare trików możesz za pomocą komendy GET wprowadzić nawet jakiś większy wyraz

Pojedyncze znaki:
10 GET A$: IF A$="" THEN 10
wtedy po kliknięciu jakiegoś znaku łańcuch A$ będzie go zawierał.
Chcąc np. zapytać (T)ak lub (N)ie piszesz:
15 IF A$<>"T" OR A$<>"N" THEN 10

Nie pamiętam dokładnie, czy to dobrze napisałem, ale chyba rozjaśniłem chociaż trochę zagadnienie :)

Za pomocą IF ... THEN i paru innych komend możesz pojedyncze kliknięcia łączyć w większe ciągi i robić z nich wyrazy, a nawet zdania :)

BigZ25
Posty: 52
Rejestracja: pt sie 22, 2014 7:44 pm

#3 Postautor: BigZ25 » wt wrz 02, 2014 4:14 pm

Coś to nie bardzo mi działa :D
ma ktoś jakieś inne pomysły???

Beda
Posty: 21
Rejestracja: pt gru 21, 2012 4:41 am

#4 Postautor: Beda » ndz wrz 07, 2014 10:11 pm

Chyba nie ma innych możliwości wprowadzania tekstu, jak te dwie instrukcje, czyli INPUT I GET.
Do programowania trzeba mieć trochę "wyobraźni" i kombinować po swojemu, bo inaczej będzie ciężko.
Na początek można korzystać z pomysłów innych, ale trzeba się rozwijać i zasięgać wiedzy z poradników, bo samemu to będzie ciężko...
Dla rozjaśnienia napiszę Ci coś prostego, bo akurat miałem włączonego Commodorka i wiem, że to działa (z dalekiej pamięci nie zawsze da się przypomnieć prawidłowość komend) :)
No i do takich kombinacji raczej będziesz potrzebował przynajmniej tablicy znaków ASCII, bo można się odnosić do nich, np. w przypadku odczytu naciśnięcia klawisza RETURN, czyli CHR$(13) i porównać go z wprowadzonym kliknięciem klawiatury.
Przykładowo zmieniając linię 30 IF A$=CHR$(13) THEN 100

Tekst będzie wprowadzany do momentu naciśnięcia kropki (chyba, że zmienisz na RETURN), ale można zdefiniować przykładowo na odpowiednią długość, czy co tam komuś się wspomni.
B$ to zmienna wynikowa tego co wpiszesz, a A$ to jednorazowe zapamiętanie klikniętego klawisza.
To oczywiście pokazowo rozbudowałem, bo normalnie dążymy do jak najkrótszego programu, ale może coś to rozjaśni...

Programik:
10 ?"WPROWADZ TEKST":B$=""
20 GET A$:IF A$="" THEN 20
30 IF A$="." THEN 100
40 B$=B$+A$
50 ?A$;
60 GOTO 20
100 ?:?"KONIEC :)"
110 ?"CZY WYSWIETLIC CALY TEKST ? (T/N)"
120 GET A$:IF A$="" THEN 120
130 IF A$="T" THEN 200
140 IF A$="N" THEN 250
150 GOTO 120
200 ?"TYM WYRAZEM JEST ";B$
210 GOTO 300
250 ?"WIECEJ JUZ NIE ZAPYTAM ";
300 ?"TO JUZ NA SERIO KONIEC ;)"
310 END

Beda
Posty: 21
Rejestracja: pt gru 21, 2012 4:41 am

#5 Postautor: Beda » pn wrz 08, 2014 12:02 am

Się emotikony wepchały, więc dam poprawione dwie linijki:
100 ? : ?"KONIEC"
300 ?"TO JUZ NA SERIO KONIEC"

BigZ25
Posty: 52
Rejestracja: pt sie 22, 2014 7:44 pm

#6 Postautor: BigZ25 » śr wrz 10, 2014 5:14 pm

100 krotne dzięki @Beda.
Już wszystko obczaiłem i wiem jak to się robi :)

Beda
Posty: 21
Rejestracja: pt gru 21, 2012 4:41 am

#7 Postautor: Beda » czw wrz 11, 2014 11:42 am

Uff :P


Wróć do „Programowanie & Produkcje”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości