lecture ligne a ligne d'un gros fichier texte - Delphi/Pascal - Programmation
Marsh Posté le 17-09-2003 à 17:24:09
bon, j'ai la confirmation que readln ne sais pas gerer les fin de ligne UNIX
http://www.delphifaq.com/fq/q1058.shtml
pour passer le probleme, ils utilises un Tstringlist qu'ils remplissent avec le contenu du fichier, mais je peut pas me permettre de mettre tout le fichier en ram, qq'un aurrai une solution ?
Marsh Posté le 17-09-2003 à 17:24:54
Faut faire ça comme ça :
Code :
|
Oups pardon, mauvais langage . Pourquoi tu n'utilises pas la commande Read plustot que ReadLn ? Ca me semble tordu comme comportement de redirigé l'entrée standard vers un fichier pour après le lire avec ReadLn.
Marsh Posté le 17-09-2003 à 17:35:12
ben, j'ai pas l'impression d'utiliser de redirection, readln semble etre fait pour lire des lignes dans un fichier, je comprend pas se que tu veux me dire.
sinon, j'ai utilisé un editeur binaire pour replacer les 0d par des 0d0a dans mon gros fichier.
c'est long et ca me plait pas trop car ca demande une intervention manuelle.
si personne n'a mieux, je m'en contenterais
Marsh Posté le 17-09-2003 à 17:59:36
Kristoph a écrit : Faut faire ça comme ça :
|
Oups, tu as raison. J'ai fait l'erreur de faire confiance à ce qui avait écrit dans l'aide de Delphi : un joli paragraphe sur les stdin et stdout dans la page sur ReadLn que je me demande ce qu'il peut bien faire là.
Je ne peux donc pas t'aider du tout si ce n'est de te conseiller d'écrire ta propre fonction ReadLn qui ouvre le fichier en mode binaire et détecte d'elle même le format du fichier.
PS : Ils ont l'habitude de ce genre de bourdes : l'éditeur de Delphi supporte très très bien les fichier Unix, mais pas leur compilateur. Résultat, des erreurs imbitables alors que le fichier est parfais quand tu l'ouvre avec l'éditeur.
Marsh Posté le 18-09-2003 à 12:15:18
si ca interesse qq'un, je me suis fait ca :
Code :
|
Marsh Posté le 17-09-2003 à 17:12:28
salut,
j'ai besoin de parcourir un gros fichier texte ligne a ligne pour y faire un traitement.
voici comment je m'y prend :
j'ai mis un showmessage pour voir si tout ce passait bien. il sera remplacé par le traitement d'une ligne.
j'ai lancé ce bout de code, et apres avoir attendu plusieurs minutes (!) j'ai un premier showmessage qui apparait qui semble contenir tout le fichier.
quel est la bonne maniere de parcourir un gros fichier texte ligne a ligne ?
merci
edit :
Il semblerait que le gros fichier viens d'un environnement UNIX, donc le saut de ligne est codé differement. j'imagine que readln ne sait pas gerer les 2, qq'un pour confirmer ? comment m'y prendre alors ?
Message édité par nico168 le 17-09-2003 à 17:19:52