Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - Problema leggere stringa
Forum - Pascal - Problema leggere stringa

Avatar
IU8BZC (Normal User)
Newbie


Messaggi: 3
Iscritto: 13/11/2019

Segnala al moderatore
Postato alle 20:41
Mercoledì, 13/11/2019
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...

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:54
Mercoledì, 13/11/2019
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à.
PM Quote
Avatar
AldoBaldo (Member)
Guru


Messaggi: 699
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 15:08
Giovedì, 14/11/2019
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.
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 7:14
Venerdì, 15/11/2019
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 il 15/11/2019 alle 7: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à.
PM Quote
Avatar
AldoBaldo (Member)
Guru


Messaggi: 699
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 19:39
Venerdì, 15/11/2019
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.
PM Quote
Avatar
IU8BZC (Normal User)
Newbie


Messaggi: 3
Iscritto: 13/11/2019

Segnala al moderatore
Postato alle 12:23
Sabato, 16/11/2019
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

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 12:57
Sabato, 16/11/2019
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à.
PM Quote