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

Szukasz drobnej pomocy przy kodowaniu, albo chcesz przedstawić światu swoją gotową lub w trakcie realizacji produkcję? To właściwy dział.
Wiadomość
Autor
r-tea
Posty: 18
Rejestracja: 06 lis 2018, 00:00

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

#1 Post 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?

Awatar użytkownika
Steffan
Posty: 181
Rejestracja: 04 maja 2019, 19:43
Grupa: BooM!

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

#2 Post 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
Różne rodzaje so kamadore, ale sześćdziesiąte czwarte je najfajniejsze!

r-tea
Posty: 18
Rejestracja: 06 lis 2018, 00:00

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

#3 Post 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.

r-tea
Posty: 18
Rejestracja: 06 lis 2018, 00:00

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

#4 Post autor: r-tea »

Działa :)
Obrazek

Awatar użytkownika
Steffan
Posty: 181
Rejestracja: 04 maja 2019, 19:43
Grupa: BooM!

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

#5 Post autor: Steffan »

r-tea pisze:
16 wrz 2020, 23:55
Działa :)
Brawo! Kiedy gramy?
Pozdro
Steffan
Różne rodzaje so kamadore, ale sześćdziesiąte czwarte je najfajniejsze!

r-tea
Posty: 18
Rejestracja: 06 lis 2018, 00:00

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

#6 Post autor: r-tea »

Jest szansa, że w tym roku. Patrząc optymistycznie.

carrion
Posty: 1904
Rejestracja: 27 lut 2009, 17:38
Grupa: Bonzai
Kontakt:

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

#7 Post autor: carrion »

fajne.
Już wiem o czym będzie jeden z kolejnych artykułów...
odezwę się do Ciebie r-tea na PM za chwilę.
c64portal.pl

r-tea
Posty: 18
Rejestracja: 06 lis 2018, 00:00

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

#8 Post 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?

Beda
Posty: 24
Rejestracja: 21 gru 2012, 04:41

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

#9 Post 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 :)

Awatar użytkownika
Steffan
Posty: 181
Rejestracja: 04 maja 2019, 19:43
Grupa: BooM!

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

#10 Post 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
Różne rodzaje so kamadore, ale sześćdziesiąte czwarte je najfajniejsze!

r-tea
Posty: 18
Rejestracja: 06 lis 2018, 00:00

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

#11 Post 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.

ODPOWIEDZ