Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicitÓ e servizi in linea con il tuo account. 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: 5940
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)
Expert


Messaggi: 431
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?


Ma cosa vuoi che ne sappia? Io ci gioco, col codice, mica ci lavoro!
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5940
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)
Expert


Messaggi: 431
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 19:39
Venerdý, 15/11/2019
Ah! Grazie nessuno, non sapevo nulla di quel limite.


Ma cosa vuoi che ne sappia? Io ci gioco, col codice, mica ci lavoro!
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: 5940
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