TurboPascal : writeln/write
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je programme en TurboPascal,
tout le monde le sait, pour afficher du texte ou une variable, on appelle la procédure writeln (ou write). Donc j'écris :
writeln('texte');
Mais si j'écris du texte trop long, le compilateur m'affiche "Line too long.", que tout le monde connaît ...
Pour éviter ceci, j'ai essayé :
writeln('texte texte texte texte texte texte texte texte texte texte texte
texte texte texte texte texte texte texte texte texte texte texte texte texte
texte texte texte texte texte texte texte texte texte texte ');
J'ai donc inséré des retours à la ligne. Mais cette fois le message d'erreur est "Constant string exceds line.". Ce qui signifie que la chaîne de caractères excède une ligne.
J'ai donc essayé :
write('texte texte texte texte texte texte texte texte texte texte texte');
write('suite texte suite texte suite texte suite texte suite texte suite texte');
writeln('suite texte suite texte suite texte suite texte suite texte suite texte');
Cette fois ci ça marche !
Mais ne trouvez-vous pas que c'est énervant d'écrire plein de fois write ?
... ... ... ?
Il y a-t-il un autre moyen ? Si oui, vous savez quoi, si non vous savez quoi.
Merci d'avance pour votre réponse ...
Je programme en TurboPascal,
tout le monde le sait, pour afficher du texte ou une variable, on appelle la procédure writeln (ou write). Donc j'écris :
writeln('texte');
Mais si j'écris du texte trop long, le compilateur m'affiche "Line too long.", que tout le monde connaît ...
Pour éviter ceci, j'ai essayé :
writeln('texte texte texte texte texte texte texte texte texte texte texte
texte texte texte texte texte texte texte texte texte texte texte texte texte
texte texte texte texte texte texte texte texte texte texte ');
J'ai donc inséré des retours à la ligne. Mais cette fois le message d'erreur est "Constant string exceds line.". Ce qui signifie que la chaîne de caractères excède une ligne.
J'ai donc essayé :
write('texte texte texte texte texte texte texte texte texte texte texte');
write('suite texte suite texte suite texte suite texte suite texte suite texte');
writeln('suite texte suite texte suite texte suite texte suite texte suite texte');
Cette fois ci ça marche !
Mais ne trouvez-vous pas que c'est énervant d'écrire plein de fois write ?
... ... ... ?
Il y a-t-il un autre moyen ? Si oui, vous savez quoi, si non vous savez quoi.
Merci d'avance pour votre réponse ...
A voir également:
- TurboPascal : writeln/write
- Turbopascal - Télécharger - Édition & Programmation
4 réponses
je ne sais pas comment fonctionne write, mais il doit y avoir une taille max de caractères. Une allocation de tableau à ne pas depasser quoi.
C'est une définition dans pascal:
les chaines de caracteres ( string) ont une logueur maximale de 255 caracteres
et puisque Write et WriteLn, n'acceptent que des types simples (Integer, Real, Char,... et String) tu ne peut outre passer cette régle.
par contre tu peux mettre un texte long dans un tableau de String (chaque élément du tableau a la limite de 255 caracteres) et puis afficher le tous dans une boucle qui répéte un Write/WriteLn
sur ce, @*
les chaines de caracteres ( string) ont une logueur maximale de 255 caracteres
et puisque Write et WriteLn, n'acceptent que des types simples (Integer, Real, Char,... et String) tu ne peut outre passer cette régle.
par contre tu peux mettre un texte long dans un tableau de String (chaque élément du tableau a la limite de 255 caracteres) et puis afficher le tous dans une boucle qui répéte un Write/WriteLn
sur ce, @*
Salut.
Tu as la réponse. Même si la mienne n'etait pas clair, c'est bien ce que je suspectait...
quand je disait que je ne sais pas comment fonctionne Write, c'est au point de vue de l'implementation de la fonction, pas de l'utilisation.
D'ailleur c'est une méthode, si tu as un problème avec une fonction de ce genre la, le mieux est d'aller voir ce qui est fait dans l'implementation de la fonction.
Malheuresement, les sources ne sont pas toujours dispo...
Tu as la réponse. Même si la mienne n'etait pas clair, c'est bien ce que je suspectait...
quand je disait que je ne sais pas comment fonctionne Write, c'est au point de vue de l'implementation de la fonction, pas de l'utilisation.
D'ailleur c'est une méthode, si tu as un problème avec une fonction de ce genre la, le mieux est d'aller voir ce qui est fait dans l'implementation de la fonction.
Malheuresement, les sources ne sont pas toujours dispo...
merci pour ta réponse ...
Writeln écrit le texte à l'écran et effectue un retour chariot pour passer directement à la ligne suivante; alors que write effectue la même procédure mais n'effectue pas de retour chariot. Idem pour readln et read.
Juste pour fermer la balise