Oppure

Loading
13/11/19 19:41
IU8BZC
Salve a tutti,
Questo è il mio primo messaggio su questo forum, e vorrei sottoporre un problema che sto riscontrando cercando di creare un programma usando Turbo Pascal 3.01a.
Il programma dovrebbe leggere una stringa di testo lunga fino a 255 caratteri. Il problema è che riesco a digitare fino a 125 caratteri, poi non mi "legge" più. È un problema di allocazione di memoria? Nella dichiarazione delle variabili ho inserito string[255], e non capisco proprio cosa non funziona.
Grazie sinceramente per l'attenzione e il tempo dedicati...
aaa
13/11/19 20:54
nessuno
Ci mostri tutto il codice?

Usi Windows.... ?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
14/11/19 14:08
AldoBaldo
Non so praticamente nulla di Pascal, perciò tiro a indovinare.
Quel 125 è curiosamente prossimo al limite di 127 tipico dei valori a 7 bit. I char usano 7 bit per i valori veri e propri e 1 bit per il segno. Non è che per avere la tua stringa che "porta" 255 caratteri devi usare variabili a 8 bit senza segno, e stai invece usando variabili a 8 bit col segno? In quel caso, il primo byte dell'array (quello che nelle stringhe Pascal contiene la quantità dei caratteri presenti nella stringa), una volta arrivato a 127 "salta" a -128. In un array un indice negativo porta in un punto imprevedibile, invalidando il tutto in qualche maniera.

So di non essere stato per niente "tecnico", come ho detto so poco o nulla di Pascal. Però, può essere che ti ho dato uno spunto dal quale partire?
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
15/11/19 6:14
nessuno
No Aldo, non c'entra nulla.

Se la memoria non mi inganna, con msdos e i primissimi windows, il command.com del sistema operativo aveva il limite di 126 caratteri per la linea di input. Ovviamente e' un limite insuperabile per il sistema ma parliamo di roba preistorica.

Adesso il limite del corrispondente cmd.exe e' di 8192 caratteri.

IUBBZC aggiornati e usa un sistema moderno anche con Pascal e non avrai problemi.
Ultima modifica effettuata da nessuno 15/11/19 6:15
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
15/11/19 18:39
AldoBaldo
Ah! Grazie nessuno, non sapevo nulla di quel limite.
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
16/11/19 11:23
IU8BZC
Grazie a tutti, è molto chiaro... In effetti è un problema riscontrato anche con altri programmi... istruzioni del tipo read(stringa) danno sempre lo stesso problema. In effetti Turbo Pascal 3.01a non è recentissimo... È giunta l'ora di passare ad una versione successiva
aaa
16/11/19 11:57
nessuno
Non hai detto nulla del sistema operativo che usi ma è quello che devi aggiornare per primo
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.