TurboPascal : writeln/write

Fermé
Utilisateur anonyme - 2 juin 2005 à 19:19
 Utilisateur anonyme - 3 juin 2005 à 21:29
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 ...

A voir également:
  • TurboPascal : writeln/write
  • Turbopascal - Télécharger - Édition & Programmation

4 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
2 juin 2005 à 19:29
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.
0
Utilisateur anonyme
2 juin 2005 à 19:36
Bonjour Char Sniper,

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.
0
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793 > Utilisateur anonyme
3 juin 2005 à 14:12


Juste pour fermer la balise
0
sam3000 Messages postés 1225 Date d'inscription mercredi 22 décembre 2004 Statut Membre Dernière intervention 13 juin 2005 144
3 juin 2005 à 08:28
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, @*
0
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
3 juin 2005 à 10:20
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...
0
Utilisateur anonyme
3 juin 2005 à 21:29
Salut,
Juste pour vous remercier de vos réponses.
merci encore ...
0