String Arrays
String Arrays
When you have a string array, what is the method for getting rid of the extra spaces at the end of a printed string, when the word is shorter than the length of the strings in the array?
Re: String Arrays
There is no TRIM and the Length is what you defined.
You can use a FOR loop and copy character by character if it's no space.
Or count spaces from end to beginning and then use A$(1, 1 TO B)
You can use a FOR loop and copy character by character if it's no space.
Or count spaces from end to beginning and then use A$(1, 1 TO B)
In theory, there is no difference between theory and practice. But, in practice, there is.
- 1024MAK
- Posts: 5171
- Joined: Mon Sep 26, 2011 10:56 am
- Location: Looking forward to summer in Somerset, UK...
Re: String Arrays
@ MrVertigo - you mean this problem…
(Example running on a ZX81)
Which computer are you doing this on?
Mark
(Example running on a ZX81)
Which computer are you doing this on?
Mark
ZX81 Variations
ZX81 Chip Pin-outs
ZX81 Video Transistor Amp
Standby alert
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
Looking forward to summer being good this year.
ZX81 Chip Pin-outs
ZX81 Video Transistor Amp
Standby alert
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
Looking forward to summer being good this year.
Re: String Arrays
One way to trim. This is a single DIM, but would work with any multiple.
5 DIM A$(5)
10 INPUT A$
20 FOR A=LEN A$ TO 1 STEP -1
30 IF A$(A)<>" " THEN GOTO 50
40 NEXT A
50 PRINT A$( TO A);"."
5 DIM A$(5)
10 INPUT A$
20 FOR A=LEN A$ TO 1 STEP -1
30 IF A$(A)<>" " THEN GOTO 50
40 NEXT A
50 PRINT A$( TO A);"."
Re: String Arrays
Hi,
Nice code SafePit!
This code is not better, but avoid to repeat "A$( TO A)" at any time.
Prefer a length free data string (slower):
Nice code SafePit!
Code: Select all
5 DIM A$(5)
10 INPUT A$
20 FOR A=LEN A$ TO 1 STEP -1
30 IF A$(A)=" " THEN NEXT A
40 LET B$=A$( TO A)
50 PRINT B$;"."
Prefer a length free data string (slower):
Code: Select all
10 LET A$="hELLOwORLDtESTiT/SaNaRRAYsPACEfREEdATAlIKEtEST"
20 FOR A=1 to 11
30 LET X=A
50 GOSUB 100
60 PRINT B$
70 NEXT A
80 STOP
100 LET B=1
102 FOR C=1 TO X
105 FOR B=B TO LEN A$
110 IF A$(B)>"Z" THEN NEXT B
120 FOR D=B TO LEN A$
130 IF A$(D)<="Z" THEN NEXT D
135 IF C<>X THEN LET B=D
140 NEXT C
145 LET B$=CHR$ (CODE A$(B-1)-128)+A$(B TO D-1)
150 RETURN
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
Re: String Arrays
Thanks for all these code options! They are ideal.
Re: String Arrays
Code: Select all
1 REM [HEX:\
85,89,89,89,89,89,89,89,\
89,89,89,89,89,89,89,89,\
89,89,89,89,89,89,05,00,\
82,00,00,00,00,00,00,00,\
88,05,88,88,88,88,00,29,\
26,39,26,00,29,2A,32,34,\
00,88,88,88,88,85,88,00,\
80,82,00,00,00,00,00,00,\
88,05,88,88,00,3A,38,2A,\
00,39,2D,2E,38,00,26,38,\
32,00,00,88,88,85,88,00,\
80,80,82,00,00,00,00,00,\
88,05,88,88,88,88,88,00,\
37,34,3A,39,2E,33,2A,00,\
88,88,88,88,88,85,88,00,\
80,80,80,05,00,00,00,00,\
85,8A,8A,8A,8A,8A,8A,8A,\
8A,8A,8A,8A,8A,8A,8A,8A,\
8A,8A,8A,8A,8A,8A,05,00,\
80,80,07,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
80,07,00,00,00,00,00,00,\
00,00,00,00,00,00,27,3E,\
00,3D,26,3B,38,33,26,35,\
1B,00,00,00,00,00,00,00,\
07,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,76,\
76,E7,CD,92,0D,CD,F5,0B,\
48,06,00,E7,23,7E,FE,76,\
CA,5B,00,CB,7F,28,F5,0B,\
78,B1,20,F0,23,7E,CB,7F,\
20,0D,FE,0C,28,0F,FE,01,\
20,02,3E,0B,D7,18,ED,CB,\
BF,D7,C3,5B,00,ED,5B,0E,\
40,1A,FE,76,28,DE,3E,00,\
D7,13,18,F5,11,82,40,01,\
06,06,ED,43,7B,40,D5,CD,\
F5,08,D1,62,6B,01,17,00,\
D5,CD,6B,0B,D1,EB,01,20,\
00,09,EB,ED,4B,7B,40,04,\
ED,43,7B,40,78,FE,0E,28,\
02,18,DB,01,07,06,ED,43,\
7B,40,C9 ]
2 RAND USR 16830
3 PAUSE 1000
4 SCROLL
5 SCROLL
6 SCROLL
7 SCROLL
8 PRINT AT 10,0;
10 FOR A=4 TO 1 STEP -1
30 PRINT USR 16763,A,"«VOUS ETES DEVANT UNE MAISON£LA PORTE EST OUVERTE–VOUS ETES DANS UN COULOIR,IL Y AUNE PORTE A L¶EST ET UNE PORTE£A L¶OUEST–VOUS ETES DANS UN SALON,IL Y A£UNE PORTE A L¶OUEST–IL Y A UNE DROLE D¶ODEUR–"
36 PRINT
37 PRINT "--------------------------------"
38 PAUSE 1000
40 NEXT A
Code: Select all
1 REM °´´´´´´´´´´´´´´´´´´´´´º\
ª ³º³³³³ LA MAISON ³³³³°³\
«ª ³º³³ DU PROFESSEUR ³³°³\
««ª ³º³³³³³ FOLIBUS ³³³³³°³\
«««º °µµµµµµµµµµµµµµµµµµµµµº\
««¼ PROGRAMME ECRIT PAR \
«¼ ALAIN BREGEON \
¼ POUR MICRO-SYSTEMES.
# REM E-_____7__
1 REM [HEX:\
2A,16,40,ED,4B,7B,40,23,\
7E,FE,76,CA,5B,00,CB,7F,\
28,F5,0B,78,B1,20,F0,23,\
7E,CB,7F,20,07,FE,0C,28,\
09,D7,18,F3,CB,BF,D7,C3,\
5B,00,ED,5B,0E,40,1A,FE,\
76,28,E4,3E,00,D7,13,18,\
F5 ]
10 FOR A=1 TO 6
20 POKE 16507,A
30 PRINT USR 16514;"«IL FAUDRAIT PEUT ETRE DU FEU..–AH,AH...£VOUS ETES PRISONNIErLA GENERATRICE VIENT D·EXPLOSER LA MAISON N·EXISTE PLUS,VOUS NONPLUS–L·ASCENSSEUR NE BOUGE PAS.£IL FAUT PEUT ETRE DU COURANTŠLA PORTE VIENT DE CE FERMER£IMPOSSIBLE DE L·OUVRIrVOUS AVEZ RAISON.LA CURIOSITE£EST UN VILAIN DEFAUT..–"
40 PRINT
50 PRINT
60 NEXT A
Last edited by XavSnap on Tue May 09, 2023 10:21 pm, edited 1 time in total.
Xavier ...on the Facebook groupe : "Zx81 France"(fr)
Re: String Arrays
Code: Select all
# REM _______________________ _
# ______ DATA DEMO ______ _
1 REM [HEX:\
85,89,89,89,89,89,89,89,\
89,89,89,89,89,89,89,89,\
89,89,89,89,89,89,05,00,\
82,00,00,00,00,00,00,00,\
88,05,88,88,88,88,00,29,\
26,39,26,00,29,2A,32,34,\
00,88,88,88,88,85,88,00,\
80,82,00,00,00,00,00,00,\
88,05,88,88,00,3A,38,2A,\
00,39,2D,2E,38,00,26,38,\
32,00,00,88,88,85,88,00,\
80,80,82,00,00,00,00,00,\
88,05,88,88,88,88,88,00,\
37,34,3A,39,2E,33,2A,00,\
88,88,88,88,88,85,88,00,\
80,80,80,05,00,00,00,00,\
85,8A,8A,8A,8A,8A,8A,8A,\
8A,8A,8A,8A,8A,8A,8A,8A,\
8A,8A,8A,8A,8A,8A,05,00,\
80,80,07,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
80,07,00,00,00,00,00,00,\
00,00,00,00,00,00,27,3E,\
00,3D,26,3B,38,33,26,35,\
1B,00,00,00,00,00,00,00,\
07,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,76,\
76,E7,CD,92,0D,CD,F5,0B,\
68,61,CD,D8,09,01,04,00,\
09,23,7E,FE,76,CA,5B,00,\
FE,0C,28,09,FE,01,20,02,\
3E,0B,D7,18,EC,ED,5B,0E,\
40,1A,FE,76,CA,8B,41,3E,\
00,D7,13,18,F4,11,82,40,\
01,06,06,ED,43,7B,40,D5,\
CD,F5,08,D1,62,6B,01,17,\
00,D5,CD,6B,0B,D1,EB,01,\
20,00,09,EB,ED,4B,7B,40,\
04,ED,43,7B,40,78,FE,0E,\
28,02,18,DB,01,07,06,ED,\
43,7B,40,C9,06,ED,43,7B,\
40,C9 ]
2 RAND USR 16815
3 PAUSE 500
4 SCROLL
5 SCROLL
6 SCROLL
7 SCROLL
8 CLS
9 PRINT AT 10,0;
10 FOR A=53 TO 50 STEP -1
30 PRINT USR 16763,A
36 PRINT
37 PRINT "--------------------------------"
38 PAUSE 500
40 NEXT A
# REM VOUS ETES DEVANT UNE MAISON£LA P
# ORTE EST OUVERTE
50 REM [HEX:\
3B,34,3A,38,00,2A,39,2A,\
38,00,29,2A,3B,26,33,39,\
00,3A,33,2A,00,32,26,2E,\
38,34,33,0C,31,26,00,35,\
34,37,39,2A,00,2A,38,39,\
00,34,3A,3B,2A,37,39,2A,1B ]
# REM VOUS ETES DANS UN COULOIR,IL Y A
# £UNE PORTE A L_EST ET UNE PORTE
51 REM [HEX:\
3B,34,3A,38,00,2A,39,2A,\
38,00,29,26,33,38,00,3A,\
33,00,28,34,3A,31,34,2E,\
37,1A,2E,31,00,3E,00,26,\
0C,3A,33,2A,00,35,34,37,\
39,2A,00,26,00,31,01,2A,\
38,39,00,2A,39,00,3A,33,\
2A,00,35,34,37,39,2A,0C,\
26,00,31,01,34,3A,2A,38,\
39,1B ]
# REM VOUS ETES DANS UN SALON,IL Y A£U
# NE PORTE A L_OUEST
52 REM [HEX:\
3B,34,3A,38,00,2A,39,2A,\
38,00,29,26,33,38,00,3A,\
33,00,38,26,31,34,33,1A,\
2E,31,00,3E,00,26,0C,3A,\
33,2A,00,35,34,37,39,2A,\
00,26,00,31,01,34,3A,2A,\
38,39,1B ]
# REM IL Y A UNE DROLE D_ODEUR.
53 REM [HEX:\
2E,31,00,3E,00,26,00,3A,\
33,2A,00,29,37,34,31,2A,\
00,29,01,34,29,2A,3A,37,\
1B ]
Xavier ...on the Facebook groupe : "Zx81 France"(fr)