Page 1 sur 1

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

Posté : sam. 02 mai 2015 01:14
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 | |

Re: Problème lecture fichier texte

Posté : dim. 03 mai 2015 20:42
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

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

Posté : lun. 11 mai 2015 15:02
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.