Salut.
Normalement, en théorie, le type String en Pascal a une taille maximale de 255 caractères.
Mais à l'étape de l'exécution, Pascal n accepte que 126 caractères.
Qui a une méthode pour que je puisse lire 255 caractères ?
Salut.
Normalement, en théorie, le type String en Pascal a une taille maximale de 255 caractères.
Mais à l'étape de l'exécution, Pascal n accepte que 126 caractères.
Qui a une méthode pour que je puisse lire 255 caractères ?
Bonjour,
Dans la doc et accessoirement chez moi et accessoirement avec un compilateur en ligne, je n'ai aucun problème pour lire 255 caractères : http://ideone.com/kl8rPk
Peut-on voir le code en question ?
On peut essayer d'ajouter des crochets après le type s : String[255];Es-tu sûr que les caractères que tu lis font bien la taille d'un octet ?
bon je travail avec turbo pascal 7
même si avec string[255] au moment de l exécution il n 'accepte que 126 caractères.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 program test; uses wincrt; var chaine:string[255]; begin readln(chaine); writeln(length(chaine)); end.
Dans la fenêtre d'exécution, c'est vrai que la longueur maximale ne peut pas dépasser les 126 caractères bien que dans l'aide de l'EDI on parle de 255 caractères possibles pour une chaine.
Mais pour la lecture d'une chaine à partir d'un fichier, c'est autre chose : la longueur maximale est bien 255 caractères même si la longueur réelle dépasse cette valeur.
Voici un exemple :Déjà dans la fenêtre d'édition, on ne peut pas dépasser les 126 caractères(même chose que pour la fenêtre d'exécution).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 program test; uses wincrt; var chaine:string[255]; begin chaine:='oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo'; chaine:=chaine +'oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo'; chaine:=chaine+'oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo'; writeln(length(chaine)); {longueur réelle : 332 caractères} end.
Ne pas oublier le tag
si satisfait.
Voter pour toute réponse satisfaisante avec
pour encourager les intervenants.
Balises CODE indispensables. Regardez ICI
Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
Vous pouvez consulter mes contributions
Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
Ne pas oublier L'Aide VBScript et MSDN VB6 Fr
WinCrt ? c'est du Turbo Pascal pour Windows ?
Tout à fait, mais je n'ai fait que reprendre le code qu'il a soumis en le modifiant pour arriver à afficher la valeur 255.WinCrt ? c'est du Turbo Pascal pour Windows ?
Ne pas oublier le tag
si satisfait.
Voter pour toute réponse satisfaisante avec
pour encourager les intervenants.
Balises CODE indispensables. Regardez ICI
Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA) et Ne jamais typer variables et/ou fonctions en VBS.
Vous pouvez consulter mes contributions
Ne pas oublier de consulter les différentes FAQs et les Cours/Tutoriels VB6/VBScript
Ne pas oublier L'Aide VBScript et MSDN VB6 Fr
Salut à tous
Il me semble que dans TP, par défaut la taille du buffer pour les E/S est de 127 octets. Pour les fichiers, il est possible de la modifier avec Reset, pour ce qui est de l'entrée standard, je sèche un peu.
Si tu as besoin de travailler avec des taille de tampon plus importante, il y a les TFileStream mais il faut passer à FP.
Cdlt
![]()
M E N S . A G I T A T . M O L E M
Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal
"La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."
Bonjour,
en TP il y a aussi la lecture / écriture par bloc (voir BLOCKREAD et BLOCKWRITE) en utilisant une variable ARRAY OF CHAR
(déjà testé avec des blocs de 8192 caractères) …
_____________________________________________________________________________________________________
Je suis Charlie, Bardo, Sousse
Partager