OVH Cloud OVH Cloud

[WD9] Ecriture fichier externe

6 réponses
Avatar
BV
J'ai un probleme d'écriture dans un fichier externe : aucune écriture.
Pourtant le code ci-dessous parait correct :
________________________________________________________
nom est une chaîne ="Liste des articles du "+DateVersChaîne(DateSys(),"JJ
MMMM AAAA")
chaine1 est une chaîne
nIdFic est un entier
var est une chaîne

//Création du fichier texte contenant la liste des articles
fCrée(fSélecteur("", nom, "Sélectionnez un emplacement...", "Fichier
texte"+TAB+"*.txt"+RC+"Tous fichiers (*.*)"+TAB+"*.*", "*.txt", fselCrée))

//ouverture du fichier texte
nIdFic = fOuvre(nom, foCréation+foLectureEcriture)
HLitPremier(Article)
TANTQUE PAS HEnDehors(Article)//parcour du fichier article
HLitRecherche(Catégorie,CodeCategorie,Article.CodeCategorie)
SI HTrouve ALORS
SI nIdFic <> -1 ALORS
var=SansEspace(Article.Ref+" "+ Article.NomArticle+"
"+Catégorie.NomCategorie)
fEcrit(nIdFic,var)
Info(var)
SINON
Erreur("L'ouverture du fichier a échoué", ErreurInfo())
FIN
FIN
HLitSuivant(Article)
FIN
_______________________________________________________
qui peut m'aidre a résoudre ce "mystère" ?
Merci

6 réponses

Avatar
COOP2AS
"BV" a écrit dans le message de news:
42b1767d$0$11715$
J'ai un probleme d'écriture dans un fichier externe : aucune écriture.
Pourtant le code ci-dessous parait correct :
________________________________________________________
nom est une chaîne ="Liste des articles du "+DateVersChaîne(DateSys(),"JJ
MMMM AAAA")
chaine1 est une chaîne
nIdFic est un entier
var est une chaîne

//Création du fichier texte contenant la liste des articles
fCrée(fSélecteur("", nom, "Sélectionnez un emplacement...", "Fichier
texte"+TAB+"*.txt"+RC+"Tous fichiers (*.*)"+TAB+"*.*", "*.txt", fselCrée))



fcrée(fselecteur(.....,fselcrée) <- bizarre comme concept ;)


//ouverture du fichier texte
nIdFic = fOuvre(nom, foCréation+foLectureEcriture)



fouvre(...focréation) <- idem

HLitPremier(Article)
TANTQUE PAS HEnDehors(Article)//parcour du fichier article
HLitRecherche(Catégorie,CodeCategorie,Article.CodeCategorie)
SI HTrouve ALORS
SI nIdFic <> -1 ALORS
var=SansEspace(Article.Ref+" "+ Article.NomArticle+"
"+Catégorie.NomCategorie)
fEcrit(nIdFic,var)



fecritligne peut être ???

Info(var)
SINON
Erreur("L'ouverture du fichier a échoué", ErreurInfo())
FIN
FIN
HLitSuivant(Article)
FIN
_______________________________________________________
qui peut m'aidre a résoudre ce "mystère" ?
Merci


cdt JeAn-PhI
Avatar
BV
"COOP2AS" a écrit dans le message de news:
42b1792c$0$163$

"BV" a écrit dans le message de news:
42b1767d$0$11715$
J'ai un probleme d'écriture dans un fichier externe : aucune écriture.
Pourtant le code ci-dessous parait correct :
________________________________________________________
nom est une chaîne ="Liste des articles du "+DateVersChaîne(DateSys(),"JJ
MMMM AAAA")
chaine1 est une chaîne
nIdFic est un entier
var est une chaîne

//Création du fichier texte contenant la liste des articles
fCrée(fSélecteur("", nom, "Sélectionnez un emplacement...", "Fichier
texte"+TAB+"*.txt"+RC+"Tous fichiers (*.*)"+TAB+"*.*", "*.txt",
fselCrée))



fcrée(fselecteur(.....,fselcrée) <- bizarre comme concept ;)


//ouverture du fichier texte
nIdFic = fOuvre(nom, foCréation+foLectureEcriture)



fouvre(...focréation) <- idem

HLitPremier(Article)
TANTQUE PAS HEnDehors(Article)//parcour du fichier article
HLitRecherche(Catégorie,CodeCategorie,Article.CodeCategorie)
SI HTrouve ALORS
SI nIdFic <> -1 ALORS
var=SansEspace(Article.Ref+" "+ Article.NomArticle+"
"+Catégorie.NomCategorie)
fEcrit(nIdFic,var)



fecritligne peut être ???

Info(var)
SINON
Erreur("L'ouverture du fichier a échoué", ErreurInfo())
FIN
FIN
HLitSuivant(Article)
FIN
_______________________________________________________
qui peut m'aidre a résoudre ce "mystère" ?
Merci


cdt JeAn-PhI



Tout fonctionne (crétion du fichier, répertoire, parcours des fichiers et
variables) mais l'utilisation de fecrit ou fecritligne ne fonctionne pas
Avatar
Eric Laurent
N'as-tu pas une erreur lors de fOuvre(nom,
foCréation+foLectureEcriture)
As-tu les droits d'écriture sur le fichier ?
Le fichier est-il crée ?

--
Eric Laurent

(enlever nospam.)
Avatar
jacques trepp
BV a écrit :
J'ai un probleme d'écriture dans un fichier externe : aucune écriture.
Pourtant le code ci-dessous parait correct :
________________________________________________________
nom est une chaîne ="Liste des articles du "+DateVersChaîne(DateSys(),"JJ
MMMM AAAA")
chaine1 est une chaîne
nIdFic est un entier
var est une chaîne

//Création du fichier texte contenant la liste des articles
fCrée(fSélecteur("", nom, "Sélectionnez un emplacement...", "Fichier
texte"+TAB+"*.txt"+RC+"Tous fichiers (*.*)"+TAB+"*.*", "*.txt", fselCrée))

//ouverture du fichier texte
nIdFic = fOuvre(nom, foCréation+foLectureEcriture)
HLitPremier(Article)
TANTQUE PAS HEnDehors(Article)//parcour du fichier article
HLitRecherche(Catégorie,CodeCategorie,Article.CodeCategorie)
SI HTrouve ALORS
SI nIdFic <> -1 ALORS
var=SansEspace(Article.Ref+" "+ Article.NomArticle+"
"+Catégorie.NomCategorie)
fEcrit(nIdFic,var)
Info(var)
SINON
Erreur("L'ouverture du fichier a échoué", ErreurInfo())
FIN
FIN
HLitSuivant(Article)
FIN
_______________________________________________________
qui peut m'aidre a résoudre ce "mystère" ?
Merci




can est un entier
ligne est une chaine
sep est une chaine = Tab (ou ce que tu veux)
can = fOuvre(fRepEnCours()+"rapport.txt", foCréation+foEcriture)
SI can=-1 ALORS
Erreur("L'ouverture du fichier a échoué", ErreurInfo())
FIN
// ---------------------- si can <>-1, plus la peine de le tester
hlitpremier(monfic,macle)
tantque pas hendehors
ligne = rubrique1 + sep + rubrique2 + sep + rubriquex, etc..
fecritligne(can,ligne)
hlitsuivant
fin
fferme(can)

c'est basique, mais c'est comme ça que ça marche :)


--
Jacques Trepp
Albygest - 81160 - St Juery
jacques-pas de
(enlever '-pas de spam' pour me joindre)
http://www.albygest.com
Avatar
Michel
Avec le deboggeur peut-être ;-)

1éré question, le fichier est-il bien créé là ou tu souhaites l'ouvrir ?
A mon avis non, car l'ouverture est demandée dans le répertoire courant
or le fselecteur suppose que l'on peut le créer ailleurs.

Et comme tu ne test pas le message de retour.

Autre remarque, la fonction fcree() crée le fichier et l'ouvre, c'est à
ce but qu'elle retourne l'identifiant du fichier créé qui n'est pas
récupéré ici ????.

La fonction fouvre est alors inutile, sauf que là elle ouvre (ou essaye
d'ouvrir) un fichier qui n'est probablement pas au bon endroit.

Michel


BV a écrit :
J'ai un probleme d'écriture dans un fichier externe : aucune écriture.
Pourtant le code ci-dessous parait correct :
________________________________________________________
nom est une chaîne ="Liste des articles du "+DateVersChaîne(DateSys(),"JJ
MMMM AAAA")
chaine1 est une chaîne
nIdFic est un entier
var est une chaîne

//Création du fichier texte contenant la liste des articles
fCrée(fSélecteur("", nom, "Sélectionnez un emplacement...", "Fichier
texte"+TAB+"*.txt"+RC+"Tous fichiers (*.*)"+TAB+"*.*", "*.txt", fselCrée))

//ouverture du fichier texte
nIdFic = fOuvre(nom, foCréation+foLectureEcriture)
HLitPremier(Article)
TANTQUE PAS HEnDehors(Article)//parcour du fichier article
HLitRecherche(Catégorie,CodeCategorie,Article.CodeCategorie)
SI HTrouve ALORS
SI nIdFic <> -1 ALORS
var=SansEspace(Article.Ref+" "+ Article.NomArticle+"
"+Catégorie.NomCategorie)
fEcrit(nIdFic,var)
Info(var)
SINON
Erreur("L'ouverture du fichier a échoué", ErreurInfo())
FIN
FIN
HLitSuivant(Article)
FIN
_______________________________________________________
qui peut m'aidre a résoudre ce "mystère" ?
Merci




Avatar
BV
Le problème a été résolu : fOuvre a été supprimé dans la création du fichier
texte et tout fonctionne
Merci

"Michel" a écrit dans le message de news:
d8s38t$rdi$
Avec le deboggeur peut-être ;-)

1éré question, le fichier est-il bien créé là ou tu souhaites l'ouvrir ?
A mon avis non, car l'ouverture est demandée dans le répertoire courant or
le fselecteur suppose que l'on peut le créer ailleurs.

Et comme tu ne test pas le message de retour.

Autre remarque, la fonction fcree() crée le fichier et l'ouvre, c'est à ce
but qu'elle retourne l'identifiant du fichier créé qui n'est pas récupéré
ici ????.

La fonction fouvre est alors inutile, sauf que là elle ouvre (ou essaye
d'ouvrir) un fichier qui n'est probablement pas au bon endroit.

Michel


BV a écrit :
J'ai un probleme d'écriture dans un fichier externe : aucune écriture.
Pourtant le code ci-dessous parait correct :
________________________________________________________
nom est une chaîne ="Liste des articles du "+DateVersChaîne(DateSys(),"JJ
MMMM AAAA")
chaine1 est une chaîne
nIdFic est un entier
var est une chaîne

//Création du fichier texte contenant la liste des articles
fCrée(fSélecteur("", nom, "Sélectionnez un emplacement...", "Fichier
texte"+TAB+"*.txt"+RC+"Tous fichiers (*.*)"+TAB+"*.*", "*.txt",
fselCrée))

//ouverture du fichier texte
nIdFic = fOuvre(nom, foCréation+foLectureEcriture)
HLitPremier(Article)
TANTQUE PAS HEnDehors(Article)//parcour du fichier article
HLitRecherche(Catégorie,CodeCategorie,Article.CodeCategorie)
SI HTrouve ALORS
SI nIdFic <> -1 ALORS
var=SansEspace(Article.Ref+" "+ Article.NomArticle+"
"+Catégorie.NomCategorie)
fEcrit(nIdFic,var)
Info(var)
SINON
Erreur("L'ouverture du fichier a échoué", ErreurInfo())
FIN
FIN
HLitSuivant(Article)
FIN
_______________________________________________________
qui peut m'aidre a résoudre ce "mystère" ?
Merci