{"id":5306,"date":"2023-11-20T16:40:57","date_gmt":"2023-11-20T15:40:57","guid":{"rendered":"https:\/\/msxitalia.org\/?p=5306"},"modified":"2023-11-20T17:09:40","modified_gmt":"2023-11-20T16:09:40","slug":"msx-basic-lezione-13","status":"publish","type":"post","link":"https:\/\/msxitalia.org\/en\/msx-basic-lezione-13\/","title":{"rendered":"MSX BASIC \u2013 lesson 13"},"content":{"rendered":"\r\n<p class=\"wp-block-paragraph\"><img decoding=\"async\" data-src=\"https:\/\/msxitalia.org\/wp-content\/uploads\/2023\/11\/Corso-Basic-MSX1-OC-300x225.jpg\" class=\"size-medium wp-image-5338 aligncenter lazyload\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" alt=\"\" width=\"300\" height=\"225\" \/><noscript><img decoding=\"async\" class=\"size-medium wp-image-5338 aligncenter\" src=\"https:\/\/msxitalia.org\/wp-content\/uploads\/2023\/11\/Corso-Basic-MSX1-OC-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\"><\/noscript><\/p>\r\n<h1 dir=\"auto\" style=\"text-align: center;\">RUBRICA &#8220;MSX BASIC&#8221; a cura di Orazio Cacciola (parte 13)<\/h1>\r\n<h2 style=\"text-align: center;\">Funzioni per lavorare con le stringhe (1\u00b0parte)<\/h2>\r\n<p>In questa puntata parler\u00f2 di tutte quelle funzioni che ci servono per lavorare con le stringhe; crearle, modificarle, tagliarle, cercare una stringa dentro un&#8217;altra e tante altre cose. Visto che gli argomenti che tratter\u00f2 non sono pochi, ho deciso di dividerla in 2 parti.<\/p>\r\n<p>ASC<br \/>Questa funzione serve a far sapere il codice ASCII del primo carattere della stringa.<br \/>Esempio: A$=&#8221;CIAO&#8221;: PRINT ASC(A$), stamper\u00e0 il codice del primo carattere della stringa A$, cio\u00e8 il 67, che \u00e8 il codice ASCII della C. Non ha importanza quanto lunga sar\u00e0 la stringa, esso stamper\u00e0 sempre e solo il primo. Non \u00e8 obbligatorio usare una variabile, a patto che il carattere venga racchiuso tra le virgolette:<br \/>PRINT ASC(&#8220;C&#8221;). Possiamo salvarlo in una variabile numerica, visto che restituisce un numero: A=ASC(&#8220;C&#8221;).<br \/>Sintassi: ASC(variabile$) o ASC(&#8220;\/&#8221;)<\/p>\r\n<p>CHR$<br \/>Diciamo pure che \u00e8 il contrario della funzione detta sopra. Dal codice ASCII restituisce la sua corrispondenza. PRINT CHR$(67), stamper\u00e0 a video la C maiuscola. A differenza della ASC restituisce un dato alfanumerico, perci\u00f2 se vogliamo usare una variabile per memorizzarlo, dovr\u00e0 essere di questo tipo: A$=CHR$(65). Ricordiamoci che la tabella dei codici ASCII \u00e8 composta da 255 caratteri, non possiamo superare quest&#8217;ultimo numero, altrimenti l&#8217;MSX segnaler\u00e0 l&#8217;errore. Pu\u00f2 essere usato anche con la numerazione non decimale, basta aggiungere il suffisso dentro le virgolette, per fare capire all&#8217;MSX di che tipo di numerazione si tratta e la funzione VAL per trasformarlo in numerico. Esempio: PRINT VAL(CHR$(&#8220;&amp;H&#8221;+A$)), &amp;H \u00e8 il suffisso per gli esa (avevo gi\u00e0 parlato di questo nella puntata dei sistemi Binari\/ottale e esadecimale), \u00e8 un metodo usato per lo pi\u00f9, quando vogliamo caricare dei dati in ram o in Vram, tipo immagini, sprites o programmi in ASM.<br \/>Sintassi:CHR$(Codice ASCII)<\/p>\r\n<p>SPC<br \/>Funzione che crea degli spazi vuoti, tanti quanti sono dentro le parentesi dopo la funzione. Pu\u00f2 essere usata solo con la PRINT. Esempio: PRINT &#8220;NOME&#8221;; SPC(10); &#8220;INDIRIZZO&#8221;<br \/>SINTASSI: PRINT SPC(NumeroSpazi)<\/p>\r\n<p>SPACE$<br \/>Crea una stringa di spazi vuoti. A differenza della precedente pu\u00f2 essere salvata in una variabile. La variabile deve essere alfanumerica. Non pu\u00f2 essere pi\u00f9 lunga di 255 caratteri.<br \/>Sintassi: A$=SPACE$(NumeroSpazi)<\/p>\r\n<p>INSTR<br \/>Cerca una stringa in un&#8217;altra, se questa viene trovata, restituir\u00e0 il numero della sua posizione. Spiego meglio con un esempio. Creer\u00f2 2 variabili, una con il mio nome e nell&#8217;altra inserir\u00f2 pi\u00f9 dati, compreso il mio nome. Essi sono: N$=&#8221;ORAZIO&#8221;:\u00a0<br \/>F$=&#8221;IL MIO NOME E&#8217; ORAZIO CACCIOLA&#8221;. La variabile N$ dovr\u00e0 fare la ricerca nella altra cio\u00e8 la F$. Se questa verr\u00e0 trovata, restituir\u00e0 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\u00e0 vera, dar\u00e0 come risultato il numero 16, infatti la O di ORAZIO nella variabile F$ \u00e8 il sedicesimo carattere. Pu\u00f2 essere usata direttamente con la PRINT o inserita dentro una variabile numerica. Possono essere usate anche stringhe invece di variabili o una e l&#8217;altra. Se questa risulter\u00e0 falsa cio\u00e8 la ricerca non andr\u00e0 a buon fine, restituir\u00e0 il valore 0. La funzione INSTR ha un altro argomento facoltativo, messo all&#8217;inizio degli altri 2 parametri. Questo \u00e8 il numero di carattere da dove si vuol fare partire la ricarica. Riprendo l&#8217;esempio di prima:A=INSTR(5,F$,N$). Comincer\u00e0 a ricercare<br \/>partendo dal quinto carattere, ma il risultato sar\u00e0 sempre quello cio\u00e8 16. Ma se facciamo partire la ricerca dal carattere 17 non trover\u00e0 pi\u00f9 la N$ in F$ perch\u00e9 essa inizia dal carattere 16 e dar\u00e0 come risultato 0.<br \/>Sintassi: INSTR([NumeroPartenza],Stringa1,stringa2)<\/p>\r\n<p>LEN<br \/>Restituisce il numero di caratteri di cui \u00e8 composta la stringa o variabile. PRINT LEN(&#8220;CIAO&#8221;). Il risultato \u00e8 4. Oppure prossimo usarla con una variabile:<br \/>A$=&#8221;Ciao a tutti&#8221;: PRINT LEN(A$). O ancora, possiamo inserirla in una variabile numerica: A=LEN(A$). Il suo risultato sar\u00e0 sempre la lunghezza della stringa.<br \/>Sintassi: LEN(Variabile$)<\/p>\r\n<p>STRING$<br \/>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,&#8221;0&#8243;) o PRINT STRING$(10,48).Nel secondo argomento possiamo usare sia il carattere che vogliamo ripetere pi\u00f9 volte, racchiuso tra virgolette o il suo corrispondente codice ASCII. Mentre il primo argomento \u00e8 la quantit\u00e0 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.<\/p>\r\n<p>E con quest&#8217;ultima funzione, chiudo la prima parte di questa puntata.<br \/>Grazie a tutti, ci risentiamo alla prossima.<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>RUBRICA &#8220;MSX BASIC&#8221; a cura di Orazio Cacciola (parte 13) Funzioni per lavorare con le stringhe (1\u00b0parte) In questa puntata parler\u00f2 di tutte quelle funzioni che ci servono per lavorare con le stringhe; crearle, modificarle, tagliarle, cercare una stringa dentro un&#8217;altra e tante altre cose. Visto che gli argomenti che tratter\u00f2 non sono pochi, ho [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[14],"tags":[],"dipi_cpt_category":[],"class_list":["post-5306","post","type-post","status-publish","format-standard","hentry","category-msx-basic"],"_links":{"self":[{"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/posts\/5306","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/comments?post=5306"}],"version-history":[{"count":7,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/posts\/5306\/revisions"}],"predecessor-version":[{"id":5510,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/posts\/5306\/revisions\/5510"}],"wp:attachment":[{"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/media?parent=5306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/categories?post=5306"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/tags?post=5306"},{"taxonomy":"dipi_cpt_category","embeddable":true,"href":"https:\/\/msxitalia.org\/en\/wp-json\/wp\/v2\/dipi_cpt_category?post=5306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}