String Arrays
Posted: Fri May 05, 2023 12:36 am
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?
Discussion forums for users of the Sinclair 8-bit range of computers - ZX80, ZX81, ZX Spectrum, Z88, clones...
https://sinclairzxworld.com/
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$;"."
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
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
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 ]