PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Erreur : ecriture dans un fichier TXT
Erreur : ecriture dans un fichier TXT
Débuté par bertaladil, 07 fév. 2006 11:29 - 3 réponses
Posté le 07 février 2006 - 11:29
bonjour,

dans mon programme je fais un parcour d'un répertoire pour exporter les données de chaque fichier txt dans un seul fichier tout en appelant une procedure avec la commande fListeFichier("C:\MesFichiers\"+"*.Txt","Affiche_Liste")
dans ma procédure je fais :
nfic = fOuvre(sNomFichierGeneration, foEcriture)
puis
nfic = fOuvre(sNomFichierSource, foLecture)
puis
fEcritLigne(sNomFichierGeneration,LigneFichier)

mais une erreur qui s'affiche lors de l'appel de fecritligne dans la procedure AfficheListe:

Vous avez appelé la fonction fEcritLigne.
Vous avez demandé à manipuler le fichier n°0 qui n'a pas été ouvert par fOuvre ou fCrée.

merci,
Posté le 07 février 2006 - 11:47
salut

fEcritLigne attend le numéro du fichier et non pas son nom, donc tu devrais écrire

fEcritLigne(nfic,LigneFichier) où nfic = fOuvre(sNomFichierGeneration, foEcriture)
Posté le 07 février 2006 - 11:50
Bonjour,

Avec un minimum de recherche dans l'aide en ligne de Windev (très clair !)
tu trouveras ta réponse

Je t'invite vivement à consulter l'aide de la commande fEcritLigne(). Cette
coomande attend en paramètre l'ID du fichier ouver et non pas le nom du
fichier

pour mémoire (extrait de l'aide en ligne)


// Ouverture d'un fichier externe
IdFichier = fOuvre("C:\MesRépertoires\Fichier.txt", foLectureEcriture)
SI IdFichier <> -1 ALORS
// Écriture d'une ligne dans ce fichier
ResEcriture = fEcritLigne(IdFichier, "Compte-rendu de la réunion")
SI ResEcriture = Faux ALORS
...
FIN
FIN

Il y' a donc 2 erreurs dans ton code, je te laisse les corriger

Cordialement,

Stéphane


"Adil BERTAL" <bertaladil@yahoo.fr> a écrit dans le message de news:
43e86555$1@news.pcsoft.fr...

bonjour,

dans mon programme je fais un parcour d'un répertoire pour exporter les

données de chaque fichier txt dans un seul fichier tout en appelant une
procedure avec la commande
fListeFichier("C:\MesFichiers\"+"*.Txt","Affiche_Liste")
dans ma procédure je fais :
nfic = fOuvre(sNomFichierGeneration, foEcriture)
puis
nfic = fOuvre(sNomFichierSource, foLecture)
puis
fEcritLigne(sNomFichierGeneration,LigneFichier)

mais une erreur qui s'affiche lors de l'appel de fecritligne dans la

procedure AfficheListe:

Vous avez appelé la fonction fEcritLigne.
Vous avez demandé à manipuler le fichier n°0 qui n'a pas été ouvert par

fOuvre ou fCrée.

merci,
Posté le 07 février 2006 - 15:07
YORK a écrit :
salut

fEcritLigne attend le numéro du fichier et non pas son nom, donc tu devrais écrire

fEcritLigne(nfic,LigneFichier) où nfic = fOuvre(sNomFichierGeneration, foEcriture)



De plus, si tu dois utiliser plusieurs fichiers, l'ID doit être
différent pour chaque fichier.
Dans ton exemple nfic correspond au 1er fichier ouvert en écriture, et
au 2eme fichier ouvert en lecture seule. ça ne fonctionnera pas non
plus, outre le fait que tu dois exécuter un fferme(idfic) avant d'en
ouvrir un autre.

--
Jacques Trepp
Albygest - 81160 - St Juery
jacques-pas de spam.trepp@free.fr
(enlever '-pas de spam' pour me joindre)
http://www.albygest.com