[R] Lire un fichier txt

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Linox
Niveau 5
Niveau 5
Messages : 112
Enregistré le : dim. 28 sept. 2008 07:25
Status : Hors ligne

[R] Lire un fichier txt

#1

Message par Linox »

Bonjour, je ne trouve pas dans la doc comment lire un fichier texte pour récupérer des donner précise a l'interieur, pouriez vous m'indiquer un tuto ?
Modifié en dernier par Linox le sam. 01 nov. 2008 15:02, modifié 1 fois.
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Lire un fichier txt

#2

Message par jbnh »

FileRead permet de lire le contenu d'un txt.

Si tu veux récupérer des mots précis, tourne toi vers les string (stringsplit, stringbetween, stringleft, etc.)
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Linox
Niveau 5
Niveau 5
Messages : 112
Enregistré le : dim. 28 sept. 2008 07:25
Status : Hors ligne

Re: [..] Lire un fichier txt

#3

Message par Linox »

Bonjour et merci ;)

Donc j'ai ceci mais ce me lit lettre par lettre, moi je voudrais lire ligne par ligne:

Code : Tout sélectionner

$vrFchConf = FileOpen($vrLunnaConf, 0)
While 1
    $chars = FileRead($vrFchConf, 1)
    MsgBox(0, "Char read:", $chars)
Wend
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Lire un fichier txt

#4

Message par ani »

FileRead = lire un fichier

Code : Tout sélectionner

$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)
Ou avec cette fonction

Code : Tout sélectionner

$Lecture = "Montext.txt"
Lire($lecture)

Func Lire ( $Fichier )
Return FileRead ( $Fichier , FileGetSize ( $Fichier ) )
EndFunc
tout dépend ce que vous voudriez faire


edit :Lire fichier par ligne = FileReadLine

L'exemple fournit de l'aide

Code : Tout sélectionner

$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

; Read in lines of text until the EOF is reached
While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    MsgBox(0, "Line read:", $line)
Wend

FileClose($file)
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Lire un fichier txt

#5

Message par jbnh »

Une autre manière pour décomposer ligne par ligne:

Code : Tout sélectionner

$file="text.txt"
$read = FileRead($file)
$line = StringSplit($read, @CR)

For $i = 1 To $line[0]
$var = FileReadLine($file, $i)
Next
Ou $line[0] représente le nombre total de ligne.
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Linox
Niveau 5
Niveau 5
Messages : 112
Enregistré le : dim. 28 sept. 2008 07:25
Status : Hors ligne

Re: [..] Lire un fichier txt

#6

Message par Linox »

j'ai donc ceci:

Code : Tout sélectionner

$vrFchConf = FileOpen($vrLunnaConf, 0)


While 1
    $chars = FileReadLine($vrFchConf, 1)
    MsgBox(0, "Char read:", $chars)
Wend

FileClose($vrFchConf)
Il n'y a qu'une seul igne dans mon fichier mais le msgbox s'affiche plusieurs foi, que dois-je faire ?

Edit de JBNH: regarde mon post du dessus en ajoutant MsgBox(0, "Char read:", $var)
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Lire un fichier txt

#7

Message par ani »

Retirer le 1 de FileReadLine (si j'ai bien suivit votre demande vous voulez lire chaque ligne de votre fichier ?) $chars = FileReadLine($vrFchConf)

et aussi indique Error en cas de non lecture du fichier

Code : Tout sélectionner

$vrFchConf = FileOpen($vrLunnaConf, 0)

While 1
    $chars = FileReadLine($vrFchConf)
    If @error then ExitLoop
    MsgBox(0, "Char read:", $chars)
Wend

FileClose($vrFchConf)
Linox
Niveau 5
Niveau 5
Messages : 112
Enregistré le : dim. 28 sept. 2008 07:25
Status : Hors ligne

Re: [..] Lire un fichier txt

#8

Message par Linox »

merci beaucoup c'est parfait ;)


autre chose, j'ai une ligne comme ceci dans mon fichier:

Code : Tout sélectionner

repCible=C:\Documents and Settings\lunnatick\Bureau
je voudrai que ma boucle coupe ma ligne en deux partir par rapport au =, que dois-je faire ?
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Lire un fichier txt

#9

Message par ani »

Dans votre fichier vous avez que cette ligne ou vous avez du texte et cette ligne ?

Dans les deux cas, sa sera la même chose

Code : Tout sélectionner

$vrFchConf = FileOpen($vrLunnaConf, 0)

While 1
    $chars = FileReadLine($vrFchConf)
    If @error Then ExitLoop
;On verifie si la lettre : est dans la ligne
        If StringInStr($chars,":",1) Then
;Ici on découpe la ligne et on récupere la deuxi!me partie
            $chars = stringsplit($chars,":")
            $chars = $chars[2]
        EndIf
    MsgBox(0, "Char read:", $chars)
Wend

FileClose($vrFchConf)
Edit: il se peut que sa soit erronée, attendont les pro pour vérification ;)
Linox
Niveau 5
Niveau 5
Messages : 112
Enregistré le : dim. 28 sept. 2008 07:25
Status : Hors ligne

Re: [..] Lire un fichier txt

#10

Message par Linox »

j'ai trouver:

Code : Tout sélectionner

$vrFchConf = FileOpen($vrLunnaConf, 0)

While 1
    $vrLignConf = FileReadLine($vrFchConf)
    If @error then ExitLoop
    $vrChmRepCiblConf = StringSplit($vrLignConf,"=")
    $vrRepCible = $vrChmRepCiblConf[2]
Wend

FileClose($vrFchConf)
Répondre