[R] Lire un fichier ligne par ligne

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
YuChan
Niveau 5
Niveau 5
Messages : 113
Enregistré le : jeu. 12 nov. 2020 14:09
Status : Hors ligne

[R] Lire un fichier ligne par ligne

#1

Message 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
Modifié en dernier par YuChan le mar. 17 nov. 2020 09:22, modifié 2 fois.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: Lire un fichier ligne par ligne

#2

Message par TommyDDR »

Essayez de remplacer FileRead($file, 1) par FileReadLine($file).
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
YuChan
Niveau 5
Niveau 5
Messages : 113
Enregistré le : jeu. 12 nov. 2020 14:09
Status : Hors ligne

Re: Lire un fichier ligne par ligne

#3

Message par YuChan »

Salut

J'ai esssayé mais j'ai toujours rien qui s'affiche
YuChan
Niveau 5
Niveau 5
Messages : 113
Enregistré le : jeu. 12 nov. 2020 14:09
Status : Hors ligne

Re: Lire un fichier ligne par ligne

#4

Message 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.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: Lire un fichier ligne par ligne  

#5

Message 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)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
YuChan
Niveau 5
Niveau 5
Messages : 113
Enregistré le : jeu. 12 nov. 2020 14:09
Status : Hors ligne

Re: Lire un fichier ligne par ligne

#6

Message 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
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2086
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: Lire un fichier ligne par ligne

#7

Message 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)
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
YuChan
Niveau 5
Niveau 5
Messages : 113
Enregistré le : jeu. 12 nov. 2020 14:09
Status : Hors ligne

Re: Lire un fichier ligne par ligne

#8

Message par YuChan »

Merci c'est ce que j'ai fait.
Répondre