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
------
-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 | |


