Strona 1 z 1

PRINT "ABC"D, czyli po co ta spacja?

: 15 wrz 2020, 22:50
autor: r-tea
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?

Re: PRINT "ABC"D, czyli po co ta spacja?

: 16 wrz 2020, 09:17
autor: Steffan
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:

Kod: Zaznacz cały

a=10
?a
da nam wynik
_10

(przypominam kreska to spacja)

idąc dalej:

Kod: Zaznacz cały

a=22
?len(str$(a))
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:

Kod: Zaznacz cały

20 L=3
30 PRINT"LICZBA:"+RIGHT$(STR$(L),LEN(STR$(L))-1)
Masz tam 2x wywołanie STR$() wiec lepiej rozbić to do dodatkowej linii, aby działało szybciej

Kod: Zaznacz cały

20 L=3
25 L$=STR$(L)
30 PRINT"LICZBA:"+RIGHT$(L$,LEN(L$)-1)
Mam nadzieję, że nie zamotałem.
Pozdro
Steffan

Re: PRINT "ABC"D, czyli po co ta spacja?

: 16 wrz 2020, 12:12
autor: r-tea
Dziękuję. Czyli jednak nie zapomniałem wiele z naszego Basic v2. :D i trzeba zrobić obejście.
Jeszcze raz dzięki.

Re: PRINT "ABC"D, czyli po co ta spacja?

: 16 wrz 2020, 23:55
autor: r-tea
Działa :)
Obrazek

Re: PRINT "ABC"D, czyli po co ta spacja?

: 17 wrz 2020, 08:15
autor: Steffan
r-tea pisze:
16 wrz 2020, 23:55
Działa :)
Brawo! Kiedy gramy?
Pozdro
Steffan

Re: PRINT "ABC"D, czyli po co ta spacja?

: 17 wrz 2020, 10:39
autor: r-tea
Jest szansa, że w tym roku. Patrząc optymistycznie.

Re: PRINT "ABC"D, czyli po co ta spacja?

: 17 wrz 2020, 18:18
autor: carrion
fajne.
Już wiem o czym będzie jeden z kolejnych artykułów...
odezwę się do Ciebie r-tea na PM za chwilę.

Re: PRINT "ABC"D, czyli po co ta spacja?

: 18 wrz 2020, 14:49
autor: r-tea
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?

Re: PRINT "ABC"D, czyli po co ta spacja?

: 20 wrz 2020, 01:38
autor: Beda
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 :)

Re: PRINT "ABC"D, czyli po co ta spacja?

: 20 wrz 2020, 08:52
autor: Steffan
Beda pisze:
20 wrz 2020, 01:38
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 :)
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

Re: PRINT "ABC"D, czyli po co ta spacja?

: 20 wrz 2020, 13:06
autor: r-tea
Beda pisze:
20 wrz 2020, 01:38
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 :)
Średnik przyłączy argument do tej samej linii, ale spacji nie usunie.

Re: PRINT "ABC"D, czyli po co ta spacja?

: 30 lip 2022, 20:19
autor: przemo.bundy
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...