[..] Problème lecture fichier texte avec FileRead

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Tony69300
Niveau 1
Niveau 1
Messages : 2
Enregistré le : ven. 01 mai 2015 23:21
Status : Hors ligne

[..] Problème lecture fichier texte avec FileRead

#1

Message par Tony69300 »

Bonjour,

J'ai une boucle temporisé dans laquelle je lis un fichier indicateur créé par une autre application.
Lorsque je teste cet indicateur il est souvent vide alors que lorsque j'ouvre le fichier il est correctement renseigné, même en le visualisant avec un éditeur hexadécimal.
J'ai essayé plusieurs méthodes de lecture mais j'ai toujours le même problème.
J'ai fait beaucoup de recherches via Google, mais je n'ai trouvé aucune réponse.

Merci pour votre aide.

Code : Tout sélectionner

;
;--------------------------------------------------------------------------------------------------------------------------------
While (1) ;boucle temporisée
    $TimeFichIndSnl = FileGetTime($FICH_IND_SNL, 0, 1)
    If $TimeFichIndSnl <> "" And $TimeFichIndSnl <> $TimeFichIndSnlPre Then
        $TimeFichIndSnlPre = $TimeFichIndSnl
        ;Sleep(200) ; !!!!!!!!!!!!!!!! A TESTER A TESTER A TESTER A TESTER A TESTER A TESTER
        $ModBasculAutoLu = StringMid(FileRead($FICH_IND_SNL), 1, 3);

;~      $hFileOpenIndSnl = FileOpen($FICH_IND_SNL, $FO_READ)
;~      If $hFileOpenIndSnl = -1 Then Exit($ERREUR_OPEN_IND_SNL)
;~      $ModBasculAutoLu = FileRead($hFileOpenIndSnl, 3)
;~      FileClose($hFileOpenIndSnl)

;~      For $i = 1 To 5 Step 1
;~          $ModBasculAutoLu = StringMid(FileRead($FICH_IND_SNL), 1, 3)
;~          If $ModBasculAutoLu <> "" Then ExitLoop
;~      Next
        ;If $ModBasculAutoLu = "" Then Exit(2)
    EndIf
    Sleep(10) ;100
WEnd
 
Notes :
------
-le fichier est un fichier texte sans extension contenant une chaîne de 3c
-le code en commentaire a été testé et pose le même problème
-contenu du fichier
+--------+-------------------------------------------------+----------------+
| Offset | 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F | ASCII view |
+--------+-------------------------------------------------+----------------+
|00000000| 4E 4F 42 0D 0A 00 00 00 00 00 00 00 00 00 00 00 |NOB |
|00000010| 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
Modifié en dernier par Tony69300 le sam. 02 mai 2015 14:29, modifié 2 fois.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: Problème lecture fichier texte

#2

Message par orax »

Le code ne semble pas contenir d'erreur. Mais si le fichier est en cours d'utilisation par un logiciel ça pourrait expliquer pourquoi il est impossible d'y accéder. J'ai ajouté quelques vérifications au script pour avoir plus d'informations sur les erreurs. Si c'est ce que je pense il y aura un message du genre : Le processus ne peut pas accéder au fichier car ce fichier est utilisé par un autre processus.
► Afficher le texte
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Tony69300
Niveau 1
Niveau 1
Messages : 2
Enregistré le : ven. 01 mai 2015 23:21
Status : Hors ligne

Re: [R] Problème lecture fichier texte avec FileRead

#3

Message par Tony69300 »

Bonjour,

Je pense avoir résolu le problème (pas de plantage depuis plusieurs jours) en insérant une temporisation de 50ms entre le test de l'heure de création du fichier et la lecture des données du fichier.
Pas très élégant, mais pas pénalisant.
Merci pour votre aide.
Répondre