[..] Problème avec FileReadLine

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
shaq
Niveau 4
Niveau 4
Messages : 59
Enregistré le : dim. 29 juil. 2007 13:04
Status : Hors ligne

[..] Problème avec FileReadLine

#1

Message par shaq »

Bonjour,

Pour faire simple, je fais un telnet -f dans un fichier de log et je veux lire celui-ci.

Ce qu'il se passe c'est que la fonction FileReadLine REFUSE de me lire la ligne, il me retourne toujours une erreur, alors que jusqu'à présent ce programme (qui n'affiche pas une msgbox évidemment) fonctionnait du tonnère !

Je précise aussi que je suis administrateur du poste, donc à priori pas de problèmes de droits.

Voici le code :

Code : Tout sélectionner

local $file, $fo, $line, $cmd

$file = "D:\to_delete.txt"
$cmd = "telnet -f " & $file & " server"

Run($cmd)
Sleep(3000)
$fo = FileOpen($file, 0)
If @error Then
    MsgBox(0, "erreur", "erreur : " & @error)
EndIf

$line = FileReadLine($fo)

While Not $line = -1
    MsgBox(0, "ligne", $line)
    $line = FileReadLine($fo)
WEnd

FileClose($fo)
Chose plus étrange encore, mon ancien programme (compilé en .exe) qui utilise exactement à un moment ce même morceau de code, fonctionne encore.

Avez-vous une idée de ce qu'il se passe ?

Edit : Le fichier de log est correctement créé, et je n'ai jamais aucune erreur lors du : $fo = FileOpen($file, 0)
donc il arrive bien à ouvrir le fichier en lecture seule.
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] Problème avec FileReadLine

#2

Message par matwachich »

Dabord, dis nous exactement quesque "REFUSE" veut dir (donne le code d'erreur retourné par FileReadLine)

Et puis, juste comme ca je dirai que pitetre le fichier est déja ouvert par un autre processus
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
shaq
Niveau 4
Niveau 4
Messages : 59
Enregistré le : dim. 29 juil. 2007 13:04
Status : Hors ligne

Re: [..] Problème avec FileReadLine

#3

Message par shaq »

Pour répondre à votre question : le code d'erreure renvoyé par la fonction FileReadLine est : 1

Je précise (c'est vrai que j'aurais du) que le fichier est détruit à chaque début de code, par un if Filexists then FileDelete.

Donc il est recréé à chaque exécution du script.
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [..] Problème avec FileReadLine

#4

Message par matwachich »

Regarde ce que dit l'aide sur ton erreur:
Failure: Sets @error to 1 if file not opened in read mode or other error.

Donc, comme ta dit ton fichier est mal/pas ouvert! et pitet même qu'il n'éxiste pas/plus!
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
shaq
Niveau 4
Niveau 4
Messages : 59
Enregistré le : dim. 29 juil. 2007 13:04
Status : Hors ligne

Re: [..] Problème avec FileReadLine

#5

Message par shaq »

Le souci c'est qu'il n'y a aucune erreur lors de l'ouverture en lecture seule du fichier. Et ce fichier existe bel et bien. J'ai même essayé de refaire le programme sur un autre PC, c'est pareil. Pourtant cette méthode fonctionnait très bien il y a de ça 3-4 mois ....

la commande telnet -f stock dans un fichier le "retour" de la commande au fur et à mesure des nouvelles lignes, est-ce que ça le gêne d'ouvrir ce fichier (qui visiblement doit déjà être ouvert puisqu'il est incrémenté régulièrement) en lecture seule ?

Mais bon encore une fois, il n'y a pas de retour d'erreur lors du FileOpen.
Avatar du membre
GELDROC
Niveau 6
Niveau 6
Messages : 295
Enregistré le : sam. 10 oct. 2009 10:15
Status : Hors ligne

Re: [..] Problème avec FileReadLine

#6

Message par GELDROC »

esaye dans faire une copie temporaire puis de modifier l'attribut de ton fichier
shaq
Niveau 4
Niveau 4
Messages : 59
Enregistré le : dim. 29 juil. 2007 13:04
Status : Hors ligne

Re: [..] Problème avec FileReadLine

#7

Message par shaq »

Je ne comprend pas. Modifier quel attribut ? Pourquoi ?

Si je fais une copie de ce fichier, je pourrais le lire ligne par ligne sans problèmes. J'ai fais le test sur un fichier qui n'est pas en cours d'écriture régulière, et ça fonctionne. Je pense que le souci vient du fait qu'il ne veut pas me lire la ligne d'un fichier "en cours d'utilisation" en quelque sorte. Mais c'est quand même curieux car il arrive bien à l'ouvrir en lecture, pas d'erreur.
shaq
Niveau 4
Niveau 4
Messages : 59
Enregistré le : dim. 29 juil. 2007 13:04
Status : Hors ligne

Re: [..] Problème avec FileReadLine

#8

Message par shaq »

Bon ... ben c'est bien ce que je pensai ...

J'ai installé la version : 3.2.12.0 , version que j'utilisai lorsque j'avais codé le programme, et là par miracle le programme refonctionne.
Répondre