MSX BASIC – lezione 13

da | Nov 20, 2023 | MSX BASIC | 0 commenti

RUBRICA “MSX BASIC” a cura di Orazio Cacciola (parte 13)

Funzioni per lavorare con le stringhe (1°parte)

In questa puntata parlerò di tutte quelle funzioni che ci servono per lavorare con le stringhe; crearle, modificarle, tagliarle, cercare una stringa dentro un’altra e tante altre cose. Visto che gli argomenti che tratterò non sono pochi, ho deciso di dividerla in 2 parti.

ASC
Questa funzione serve a far sapere il codice ASCII del primo carattere della stringa.
Esempio: A$=”CIAO”: PRINT ASC(A$), stamperà il codice del primo carattere della stringa A$, cioè il 67, che è il codice ASCII della C. Non ha importanza quanto lunga sarà la stringa, esso stamperà sempre e solo il primo. Non è obbligatorio usare una variabile, a patto che il carattere venga racchiuso tra le virgolette:
PRINT ASC(“C”). Possiamo salvarlo in una variabile numerica, visto che restituisce un numero: A=ASC(“C”).
Sintassi: ASC(variabile$) o ASC(“/”)

CHR$
Diciamo pure che è il contrario della funzione detta sopra. Dal codice ASCII restituisce la sua corrispondenza. PRINT CHR$(67), stamperà a video la C maiuscola. A differenza della ASC restituisce un dato alfanumerico, perciò se vogliamo usare una variabile per memorizzarlo, dovrà essere di questo tipo: A$=CHR$(65). Ricordiamoci che la tabella dei codici ASCII è composta da 255 caratteri, non possiamo superare quest’ultimo numero, altrimenti l’MSX segnalerà l’errore. Può essere usato anche con la numerazione non decimale, basta aggiungere il suffisso dentro le virgolette, per fare capire all’MSX di che tipo di numerazione si tratta e la funzione VAL per trasformarlo in numerico. Esempio: PRINT VAL(CHR$(“&H”+A$)), &H è il suffisso per gli esa (avevo già parlato di questo nella puntata dei sistemi Binari/ottale e esadecimale), è un metodo usato per lo più, quando vogliamo caricare dei dati in ram o in Vram, tipo immagini, sprites o programmi in ASM.
Sintassi:CHR$(Codice ASCII)

SPC
Funzione che crea degli spazi vuoti, tanti quanti sono dentro le parentesi dopo la funzione. Può essere usata solo con la PRINT. Esempio: PRINT “NOME”; SPC(10); “INDIRIZZO”
SINTASSI: PRINT SPC(NumeroSpazi)

SPACE$
Crea una stringa di spazi vuoti. A differenza della precedente può essere salvata in una variabile. La variabile deve essere alfanumerica. Non può essere più lunga di 255 caratteri.
Sintassi: A$=SPACE$(NumeroSpazi)

INSTR
Cerca una stringa in un’altra, se questa viene trovata, restituirà il numero della sua posizione. Spiego meglio con un esempio. Creerò 2 variabili, una con il mio nome e nell’altra inserirò più dati, compreso il mio nome. Essi sono: N$=”ORAZIO”: 
F$=”IL MIO NOME E’ ORAZIO CACCIOLA”. La variabile N$ dovrà fare la ricerca nella altra cioè la F$. Se questa verrà trovata, restituirà il numero della posizione del primo carattere. Nella funzione INSTR metteremo prima la variabile da ricercare e dopo quella di ricerca: INSTR(F$,N$). Visto che questa risulterà vera, darà come risultato il numero 16, infatti la O di ORAZIO nella variabile F$ è il sedicesimo carattere. Può essere usata direttamente con la PRINT o inserita dentro una variabile numerica. Possono essere usate anche stringhe invece di variabili o una e l’altra. Se questa risulterà falsa cioè la ricerca non andrà a buon fine, restituirà il valore 0. La funzione INSTR ha un altro argomento facoltativo, messo all’inizio degli altri 2 parametri. Questo è il numero di carattere da dove si vuol fare partire la ricarica. Riprendo l’esempio di prima:A=INSTR(5,F$,N$). Comincerà a ricercare
partendo dal quinto carattere, ma il risultato sarà sempre quello cioè 16. Ma se facciamo partire la ricerca dal carattere 17 non troverà più la N$ in F$ perché essa inizia dal carattere 16 e darà come risultato 0.
Sintassi: INSTR([NumeroPartenza],Stringa1,stringa2)

LEN
Restituisce il numero di caratteri di cui è composta la stringa o variabile. PRINT LEN(“CIAO”). Il risultato è 4. Oppure prossimo usarla con una variabile:
A$=”Ciao a tutti”: PRINT LEN(A$). O ancora, possiamo inserirla in una variabile numerica: A=LEN(A$). Il suo risultato sarà sempre la lunghezza della stringa.
Sintassi: LEN(Variabile$)

STRING$
Restituisce una stringa di lunghezza definita di un carattere o codice ASCII. Facciamo sempre il solito esempio. Vogliamo visualizzare sullo schermo 10 volte lo zero: PRINT STRING$(10,”0″) o PRINT STRING$(10,48).Nel secondo argomento possiamo usare sia il carattere che vogliamo ripetere più volte, racchiuso tra virgolette o il suo corrispondente codice ASCII. Mentre il primo argomento è la quantità di volte che vogliamo visualizzarlo. Possiamo anche salvarlo in una variabile alfanumerica: A$=STRING$(10,48). I due argomenti non devono superare i 255 caratteri e visualizzazioni.

E con quest’ultima funzione, chiudo la prima parte di questa puntata.
Grazie a tutti, ci risentiamo alla prossima.

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

LEZIONE 26 – INTERVAL ON, RND ED ALTRI

LEZIONE 26 – INTERVAL ON, RND ED ALTRI

Buongiorno a tutti, In questa puntata parlerò di un interrupt importante, specialmente per i giochi, quando vogliamo far apparire un nemico all'improvviso o un oggetto utile, ma anche per creare un cronometro o un orologio e tante altre cose. Il COMANDO sfrutta il...

it_ITIT_IT