PRINT "ABC"D, czyli po co ta spacja?
PRINT "ABC"D, czyli po co ta spacja?
Witajcie.
Nieoczekiwanie odnalazłem moją grę, którą jakieś 20 lat temu zrobiłem w Basic v2, i postanowiłem ją dokończyć, bo ciut jej brakuje do całości.
Napotkałem taki oto problemik.
Kiedy po komendzie PRINT zapodam ciąg znaków w cudzysłowiu, i zaraz po nim zmienną liczbową, to Basic wstawia między te dwa argumenty spację, a ja potrzebuję, by liczba wyświetlała się zaraz po ciągu znaków.
Np.
20 L=3
30 PRINT"LICZBA:"L
Dostaję:
Liczba: 3
A chcę:
Liczba:3
Jest coś w PRINT czego nie znam, czy trzeba tu będzie wymyśleć jakieś obejście?
Nieoczekiwanie odnalazłem moją grę, którą jakieś 20 lat temu zrobiłem w Basic v2, i postanowiłem ją dokończyć, bo ciut jej brakuje do całości.
Napotkałem taki oto problemik.
Kiedy po komendzie PRINT zapodam ciąg znaków w cudzysłowiu, i zaraz po nim zmienną liczbową, to Basic wstawia między te dwa argumenty spację, a ja potrzebuję, by liczba wyświetlała się zaraz po ciągu znaków.
Np.
20 L=3
30 PRINT"LICZBA:"L
Dostaję:
Liczba: 3
A chcę:
Liczba:3
Jest coś w PRINT czego nie znam, czy trzeba tu będzie wymyśleć jakieś obejście?
Re: PRINT "ABC"D, czyli po co ta spacja?
Witaj!
Wiec od początku.
Bejzik komody do liczb rzutowanych do stringa doda spacje na początku.
Będę stosował dolną kreskę "_" zamiast spacji aby było widać o co chodzi.
Np:
da nam wynik
_10
(przypominam kreska to spacja)
idąc dalej:
da nam wynik
_3 (a nie 2 jakby się mogło wydawać)
wiec wszystko co musisz zrobić to pozbyć się tej spacji z przodu!
w Twoim przykładzie:
Masz tam 2x wywołanie STR$() wiec lepiej rozbić to do dodatkowej linii, aby działało szybciej
Mam nadzieję, że nie zamotałem.
Pozdro
Steffan
Wiec od początku.
Bejzik komody do liczb rzutowanych do stringa doda spacje na początku.
Będę stosował dolną kreskę "_" zamiast spacji aby było widać o co chodzi.
Np:
Kod: Zaznacz cały
a=10
?a
_10
(przypominam kreska to spacja)
idąc dalej:
Kod: Zaznacz cały
a=22
?len(str$(a))
_3 (a nie 2 jakby się mogło wydawać)
wiec wszystko co musisz zrobić to pozbyć się tej spacji z przodu!
w Twoim przykładzie:
Kod: Zaznacz cały
20 L=3
30 PRINT"LICZBA:"+RIGHT$(STR$(L),LEN(STR$(L))-1)
Kod: Zaznacz cały
20 L=3
25 L$=STR$(L)
30 PRINT"LICZBA:"+RIGHT$(L$,LEN(L$)-1)
Pozdro
Steffan
B O O M !
we are the commodore terrorists
-------------------------------------
[TEDDY BEER C=64 PARTY]
we are the commodore terrorists
-------------------------------------
[TEDDY BEER C=64 PARTY]
Re: PRINT "ABC"D, czyli po co ta spacja?
Dziękuję. Czyli jednak nie zapomniałem wiele z naszego Basic v2. i trzeba zrobić obejście.
Jeszcze raz dzięki.
Jeszcze raz dzięki.
Re: PRINT "ABC"D, czyli po co ta spacja?
B O O M !
we are the commodore terrorists
-------------------------------------
[TEDDY BEER C=64 PARTY]
we are the commodore terrorists
-------------------------------------
[TEDDY BEER C=64 PARTY]
Re: PRINT "ABC"D, czyli po co ta spacja?
Jest szansa, że w tym roku. Patrząc optymistycznie.
Re: PRINT "ABC"D, czyli po co ta spacja?
fajne.
Już wiem o czym będzie jeden z kolejnych artykułów...
odezwę się do Ciebie r-tea na PM za chwilę.
Już wiem o czym będzie jeden z kolejnych artykułów...
odezwę się do Ciebie r-tea na PM za chwilę.
c64portal.pl, retronavigator.com
Re: PRINT "ABC"D, czyli po co ta spacja?
Spoko.
Mam jeszcze pytanie o kody specjalne typu {rvs on}, które produkuje petcat. W manualu do petcat znalazłem tylko te podstawowe, np. do zmiany kolou, poruszania kursora, włączania rewersu, a mi chodzi o semigrafikę. Zaczynają się one od "CBM-", i kilka z nich mam już w kodzie.
Czy jest gdzieś jakaś gotowa tabelka?
Mam jeszcze pytanie o kody specjalne typu {rvs on}, które produkuje petcat. W manualu do petcat znalazłem tylko te podstawowe, np. do zmiany kolou, poruszania kursora, włączania rewersu, a mi chodzi o semigrafikę. Zaczynają się one od "CBM-", i kilka z nich mam już w kodzie.
Czy jest gdzieś jakaś gotowa tabelka?
Re: PRINT "ABC"D, czyli po co ta spacja?
Hejka.
Dawno już się nie bawiłem Basicem, ale czy nie prościej było by zastosować średnik ;.
Tak mi się wydaje, że do 30 PRINT"LICZBA:"L wystarczy dodać średnik, czyli 30 PRINT"LICZBA:";L
To tak z pamięci po 20 latach, więc może coś pomyliłem
Dawno już się nie bawiłem Basicem, ale czy nie prościej było by zastosować średnik ;.
Tak mi się wydaje, że do 30 PRINT"LICZBA:"L wystarczy dodać średnik, czyli 30 PRINT"LICZBA:";L
To tak z pamięci po 20 latach, więc może coś pomyliłem
Re: PRINT "ABC"D, czyli po co ta spacja?
Pierwsza moja myśl była taka sama, ale nie, nie wystarczy. Oczywiście nie zarzekam się, że kodu który dałem wyżej nie da się zrobić inaczej (prościej).
Pozdro
Steffan
B O O M !
we are the commodore terrorists
-------------------------------------
[TEDDY BEER C=64 PARTY]
we are the commodore terrorists
-------------------------------------
[TEDDY BEER C=64 PARTY]
Re: PRINT "ABC"D, czyli po co ta spacja?
Średnik przyłączy argument do tej samej linii, ale spacji nie usunie.
-
- Posty: 7
- Rejestracja: 30 wrz 2017, 14:37
Re: PRINT "ABC"D, czyli po co ta spacja?
można użyć komendy chr$()
spis kodów jest dostępny w internecie. chr$() manipuluje znakami na ekranie, pomimo że nie widać kursora. gdy działa program.
ponadto to jest jakiś bug basica. na youtube: jest kanał: 8 bit show and tell.
był filmik o tym. pozdrawiam...
spis kodów jest dostępny w internecie. chr$() manipuluje znakami na ekranie, pomimo że nie widać kursora. gdy działa program.
ponadto to jest jakiś bug basica. na youtube: jest kanał: 8 bit show and tell.
był filmik o tym. pozdrawiam...