Tester le caract de fin le ligne d'un fichier texte

5 réponses
Avatar
Roumégou Eric
Bonjour,

je dois intégrer des fichiers textes et cela semble provenir de
différents systèmes.
Certains ont des fichiers qui se terminent par le CRLF (OD OA),
d'autres ont la fin de ligne avec OA.

Comment reperer cette différence à l'ouverture du fichier ?
je ne sais pas à priori la taille de la ligne. Dois je tester la
présence de RC puis sinon de caract(10) ou y'a plus intelligent à faire
?

--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)

5 réponses

Avatar
Romain PETIT
Roumégou Eric a couché sur son écran :
Bonjour,



Bonjour,

je dois intégrer des fichiers textes et cela semble provenir de différents
systèmes.
Certains ont des fichiers qui se terminent par le CRLF (OD OA), d'autres ont
la fin de ligne avec OA.

Comment reperer cette différence à l'ouverture du fichier ?
je ne sais pas à priori la taille de la ligne. Dois je tester la présence de
RC puis sinon de caract(10) ou y'a plus intelligent à faire ?



Perso, j'extrait les lignes en utilisant

sLigne = ExtraitChaine(sContenu, eNumLigne, caract(10))

Puis je teste l'éventuelle présence d'un caract(13) en fin de ligne.

SI sLigne[[Taille(sLigne)]] = caract(13) ALORS
sLigne = sLigne[[ A (Taille(sLigne)-1)]]
FIN

A+

--
Romain PETIT
contact : rompetit chez free fr
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
Avatar
Roumégou Eric
Romain PETIT a formulé ce mardi :
Roumégou Eric a couché sur son écran :
Bonjour,



Bonjour,

je dois intégrer des fichiers textes et cela semble provenir de différents
systèmes.
Certains ont des fichiers qui se terminent par le CRLF (OD OA), d'autres
ont la fin de ligne avec OA.

Comment reperer cette différence à l'ouverture du fichier ?
je ne sais pas à priori la taille de la ligne. Dois je tester la présence
de RC puis sinon de caract(10) ou y'a plus intelligent à faire ?



Perso, j'extrait les lignes en utilisant

sLigne = ExtraitChaine(sContenu, eNumLigne, caract(10))

Puis je teste l'éventuelle présence d'un caract(13) en fin de ligne.

SI sLigne[[Taille(sLigne)]] = caract(13) ALORS
sLigne = sLigne[[ A (Taille(sLigne)-1)]]
FIN

A+



Merci Romain
cela me parait judicieux

--
Eric Roumégou
Webmaster des wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Réal Phil
On 13 déc, 02:39, Roumégou Eric wrote:
Bonjour,

je dois intégrer des fichiers textes et cela semble provenir de
différents systèmes.
Certains ont des fichiers qui se terminent par le CRLF (OD OA),
d'autres ont la fin de ligne avec OA.



Bonjour Eric,

J'ai récemment eu à transférer du texte provenant de différentes
sources avec le même problème. Pour ma part, j'utilise
ChaîneFormate(MaChaîne,ccSansEspace) qui me nettoie proprement le
début et la fin du texte. Regarde ChaîneFormate() dans l'aide.

cMonTexte est une Chaine=MonTexteImporté
cMonTexte=ChaîneFormate(cMonTexte,ccSansEspace)

@+
Avatar
Romain PETIT
Le 18/12/2011, Réal Phil a supposé :
On 13 déc, 02:39, Roumégou Eric wrote:
je dois intégrer des fichiers textes et cela semble provenir de
différents systèmes.
Certains ont des fichiers qui se terminent par le CRLF (OD OA),
d'autres ont la fin de ligne avec OA.



Bonjour Eric,



Bonjour,

cMonTexte est une Chaine=MonTexteImporté
cMonTexte=ChaîneFormate(cMonTexte,ccSansEspace)



Oui, mais s'il veut lire le fichier ligne à ligne, le ChaineFormate sur
le contenu du fichier va supprimer tous les RC ou caract(10), difficile
ensuite de retrouver chaque ligne...

A+

--
Romain PETIT
contact : rompetit chez free fr
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
Avatar
Réal Phil
On 19 déc, 03:24, Romain PETIT wrote:
Le 18/12/2011, Réal Phil a supposé :

> On 13 déc, 02:39, Roumégou Eric wrote:
>> je dois intégrer des fichiers textes et cela semble provenir de
>> différents systèmes.
>> Certains ont des fichiers qui se terminent par le CRLF (OD OA),
>> d'autres ont la fin de ligne avec OA.
> Bonjour Eric,

Bonjour,

> cMonTexte est une Chaine=MonTexteImporté
> cMonTexte=ChaîneFormate(cMonTexte,ccSansEspace)

Oui, mais s'il veut lire le fichier ligne à ligne, le ChaineFormate sur
le contenu du fichier va supprimer tous les RC ou caract(10), difficile
ensuite de retrouver chaque ligne...

A+

--
Romain PETIT
contact : rompetit chez free fr
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windevhttp://www.mesnews.net/http://fr.wik ipedia.org/wiki/Newsgroup



Bonjour,

En effet, ce ne serait probablement pas approprié pour lire du ligne
par ligne. Dans mon cas, ChaîneFormate() a été utilisé pour des blo cs
de textes multilignes dans des mémos et aussi pour du texte enregistré
dans des rubriques chaînes d'une seule ligne de 50 ou 100 caractères.
Dans les deux cas, le texte était lu en bloc dans le fichier source
(.dbf en DOS ou autre), transformé par le ChaîneFormate() et écrit
ensuite dans la rubrique du fichier HF. Résultat rapide et impeccable.