Page 1 sur 1

[R] Problème de lecture de fichier.

Posté : lun. 04 janv. 2010 13:43
par eric
Bonjour,

Travaillant dans le domaine CAO-DAO je suis amené à manipuler des fichiers créés avec le logiciel AutoCAD (extension DWG).

Ces fichiers n'affichent pas un codage facilement compréhensible, malgré tout certaines informations en mode texte apparaissent dans ces fichiers.

Ce que j'aimerais récupérer c'est le texte qui ressemble à :

Code : Tout sélectionner

T h i s   f i l e   i s   a   T r u s t e d   D W G   l a s t   s a v e d   b y   a n   A u t o d e s k   a p p l i c a t i o n   o r   A u t o d e s k   l i c e n s e d   a p p l i c a t i o n .   èà–QÅβD¨¿öè;…D¢ " < P r o d u c t I n f o r m a t i o n   n a m e   = \ " A u t o C A D   L T \ "   b u i l d _ v e r s i o n = \ " D . 2 1 5 . 0 . 0 \ "   r e g i s t r y _ v e r s i o n = \ " 1 5 \ "   i n s t a l l _ i d _ s t r i n g = \ " A C A D L T - 8 0 0 1 : 4 0 c \ "   r e g i s t r y _ l o c a l e I D = \ " 1 0 3 6 \ " / > "


On peut le voir si on ouvre le fichier avec le bloc note.

Je rencontre malgré tout des problèmes de lecture avec les fonctions d'Autoit.

Je vous joins un fichier d'exemple pour tests.

http://dl.free.fr/fC83te5Fg

Fileread ne lit que les 6 premiers caractères du fichier.
_FileCountLines me dit que le fichier ne contient qu'une ligne.
_FileReadToArray ne créer pas d'array.
En boucle Filereadline arrive à lire plusieurs lignes mais ne fait jamais apparaître le texte cité plus haut.

Avez-vous une explication à ce phénomène et éventuellement une solution pour récupérer ce texte ?

Merci

Re: [..] Problème de lecture de fichier.

Posté : lun. 04 janv. 2010 16:07
par FuriousFred
Bonjour,
Je n'ai pas poussé l'investigation mais que se passe t'il si le fichier est "renommé" avec une autre extension (voir sans extension)...
Je vais regarder de ce côté là;)

Edit: Après avoir regardé le fichier d'exemple, je dirais qu'il n'y a effectivement qu'une seule ligne... jusqu'à ce que je l'ouvre avec scite au lieu du bloc note

Scite interprête ceci:
€ € @N

Comme celà:
[Nul][Nul][Nul][Nul][Ext][Ext]

Et il est probable d'AutoIt en fasse autant (en fait il utilise par défaut l'utf8), ce qui explique que le msgbox ne retourne que les 6 premiers caractères du fichier (les autres caractères n'étant pas de l'utf8 à mon avis) . Ce problème ne peut être résolu à l'aide de mes seules compétences, je m'en remet aux autres membres du forum.

Bon courage.



FuriousFred

Re: [..] Problème de lecture de fichier.

Posté : lun. 04 janv. 2010 16:22
par eric
Bonjour FuriousFred,

Ca ne semble pas changer grand chose.

Re: [..] Problème de lecture de fichier.

Posté : mar. 05 janv. 2010 01:57
par ayuckers
@eric, voila pour un debut je te laisse médité sur cette exemple qui vaut ce qu'il vaut :)
► Afficher le texte
Si tu a des questions...

Re: [..] Problème de lecture de fichier.

Posté : mar. 05 janv. 2010 09:11
par eric
Bonjour ayuckers,

Eh mais ça a l'air de bien fonctionner ton truc là :D

Si j'ai bien compris, tout viens du :

Code : Tout sélectionner

$chars2 = StringReplace($chars, Chr(00), " ") ; on supprime tout les carractere NUL
On enlève les caractère NUL pour que cela devienne du texte simple.

C'est bien cela ?

En tout cas merci de ton aide.

Re: [R] Problème de lecture de fichier.

Posté : mar. 05 janv. 2010 10:36
par ayuckers
c'est Bien ca, maintenant il ne reste plus qu'a manipuler la chaine de caractere qui contient ton fichier texte
pour récuprer les info voulu. :D