Page 1 sur 1

[R] Lire un fichier ligne par ligne

Posté : jeu. 12 nov. 2020 14:52
par YuChan
Bonjour j'ai ça dans mon script.

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <array.au3>

#Region ### START Koda GUI section ### Form=c:\users\administrateur\documents\bot\interface\general.kxf

Global $currentVersion = 400
Global $GUI = GUICreate("DBG" & $currentVersion & "", 595, 539, 191, 126, -1, $WS_EX_TOPMOST)
Global $Tab1 = GUICtrlCreateTab(8, 8, 577, 513)
Global $TabSheet2 = GUICtrlCreateTabItem("Dofbot G4")
Global $journalFile = FileOpen(@ScriptDir & "\dofbotJournal.txt",1)
Global $journal = GUICtrlCreateEdit("", 16, 48, 257, 329, BitOR($ES_AUTOVSCROLL,$ES_READONLY,$WS_VSCROLL))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg

$file = FileOpen("test.txt", 0)

; Vérifie si l'ouverture du fichier en OK pour la lecture
If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
EndIf

; Lit un caractère à la fois jusque la fin (oef) et attend
While 1
    $chars = FileRead($file, 1)
    If @error = -1 Then ExitLoop
    MsgBox(0, "Char read:", $chars)
Wend

FileClose($file)

		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd
Mais pourrai je savoir comment afficher le contenu de mon fichier ? Ligne par ligne ?

Cdt YuChan

Re: Lire un fichier ligne par ligne

Posté : jeu. 12 nov. 2020 17:17
par TommyDDR
Essayez de remplacer FileRead($file, 1) par FileReadLine($file).

Re: Lire un fichier ligne par ligne

Posté : jeu. 12 nov. 2020 23:32
par YuChan
Salut

J'ai esssayé mais j'ai toujours rien qui s'affiche

Re: Lire un fichier ligne par ligne

Posté : ven. 13 nov. 2020 08:02
par YuChan
Je rectifie, cela fonctionne (merci TommyDDR) mais comment stopper l'affichage de la fenêtre quand il a atteins la fin ?
Car là je suis obligé d'ouvrir le gestionnaire de tache et forcer l'arrêt.

Re: Lire un fichier ligne par ligne  

Posté : ven. 13 nov. 2020 13:13
par TommyDDR
Sortez votre
While 1
    $chars = FileRead($file, 1)
    If @error = -1 Then ExitLoop
    MsgBox(0, "Char read:", $chars)
Wend
de votre autre while (mettez le au dessus)

Re: Lire un fichier ligne par ligne

Posté : ven. 13 nov. 2020 13:31
par YuChan
Ok merci.

Du coup j'ai reussi à debug, il fallait enlever les 1 dans FileRead($file, 1) et dans FileOpen("dofbotJournal.txt", 1).

Voila et aussi comme l'a dit TommyDDR le mettre en haut du while.

Merci

Re: Lire un fichier ligne par ligne

Posté : sam. 14 nov. 2020 01:26
par TommyDDR
Attention, FileRead($file) va vour renvoyer le fichier complet et non pas ligne par ligne.

Comme dit plus haut :
Essayez de remplacer FileRead($file, 1) par FileReadLine($file).

(et donc le 1 avait déjà disparu)

Re: Lire un fichier ligne par ligne

Posté : sam. 14 nov. 2020 08:56
par YuChan
Merci c'est ce que j'ai fait.