|
HF Client/Serveur - Création d'un fichier dans un répertoire |
|
Stagiaire WDF
Inscrit: 24/01/2006 15:04
Post(s): 8
|
Bonjour à tous,
J'ai passé une application HF Classic en HF C/S mais je rencontre des soucis avec les fonctions HChangeRep et HCréationSiInexistant. A partir d'un répertoire créé dans le répertoire de la BDD (c:\serveur HF\nom_appli\nom_rep, je voudrais créer 2 fichiers .fic dans le répertoire nom_rep.
Pouvez-vous m'éclairer à ce sujet ?
Contribution le : 24/01/2006 15:10
|
|
|
Re: HF Client/Serveur - Création d'un fichier dans un répertoire |
|
Developpeur WDF
Inscrit: 24/01/2006 13:42
De Chartres
Post(s): 142
|
Lors de la procedure d'install tu as possibilité de dire ou devron aller les données du client et c'est a se moment la que tu met ton chemin c:\...
helas je ne vois pas l'utilité d'une appli client serveur qui marche que sur un post...?
Ta solution est valable que si tu as un seul client.
Sinon je te conseil de mettre les donnée dans un repertoir partagé avec une lettre logique identique pour tout tes client.
Contribution le : 24/01/2006 15:32
|
|
|
Re: HF Client/Serveur - Création d'un fichier dans un répertoire |
|
Stagiaire WDF
Inscrit: 24/01/2006 15:04
Post(s): 8
|
Pour l'instant je suis en phase de tests donc je travaille sur mon localhost. Il me faudra bien créer les fichiers dans les répertoires. En gros : un répertoire représente une promotion (par exemple 200) dans laquelle doivent être crées les .fic. (e200.fic et no200.fic). A chaque nouvelle promotion xxx est associé un répertoire qui a pour nom celui de la promotion (donc xxx) et dans lequel il y a 2 fichiers exxx.fic et noxxx.fic)... Etant débutante en Windev, je n'ai pas capté comment il faut faire pour genérer ces fichiers Si je garde le code existant (je dois supprimer les HChangeRep), les fichiers .fic sont créés dans le répertoire de la BDD et non dans celui de la promotion...
Contribution le : 24/01/2006 15:43
|
|
|
Re: HF Client/Serveur - Création d'un fichier dans un répertoire |
|
Developpeur WDF
Inscrit: 24/01/2006 13:42
De Chartres
Post(s): 142
|
pk tu veux créer un fichier par promotion car tu va avoir eXXX.fic et NoXXX.fic * n promotion donc n repertoir de n fichier.
Pk ne pas avoir dans ton analyse une table promotion relier a tes deux elements epromotion et Nopromotion??
pk faire un repertoir pour chaque promotion je ne voi pas l'utiliter?
sinon oui c bien hchangerep mais verifie que tu les a bien creer avant les repertoirs par fcréer.
Contribution le : 24/01/2006 16:04
|
|
|
Re: HF Client/Serveur - Création d'un fichier dans un répertoire |
|
Stagiaire WDF
Inscrit: 24/01/2006 15:04
Post(s): 8
|
ben c'est une application que je n'ai pas développée donc je ne peux pas modifiertout ce qui a été fait auparavant, trop long.
Oui, n répertoires car n promotions. Les données d'une promotion à l'autres ne sont pas les mêmes et la scolarité se fait par promotion donc je n'ai guère d'autres choix...
Contribution le : 24/01/2006 16:15
|
|
|
Re: HF Client/Serveur - Création d'un fichier dans un répertoire |
|
Developpeur WDF
Inscrit: 24/01/2006 13:42
De Chartres
Post(s): 142
|
utilise tu le frepcrée("c:\...") avant ton hchangerep? ou au verifier avec frep si le repertoir existe?
sinon le hchangerep c bien ca que tu doit utiliser mais verifie bien l'existance du repertoir avant.
sinon ca doit pas etre simple pour requeter ton affaire en tout cas bonne chance.
Contribution le : 24/01/2006 16:25
|
|
|
Re: HF Client/Serveur - Création d'un fichier dans un répertoire |
|
Stagiaire WDF
Inscrit: 24/01/2006 15:04
Post(s): 8
|
J'ai un frep dans une fonction. Les fichiers sont bien crées mais dans le répertoire de l'appli et non dans celui de la promotion (créé correctement)...
Contribution le : 24/01/2006 16:44
|
|
|
Re: HF Client/Serveur - Création d'un fichier dans un répertoire |
|
Developpeur WDF
Inscrit: 24/01/2006 13:42
De Chartres
Post(s): 142
|
tu peut coller un exemple stp
Contribution le : 24/01/2006 16:52
|
|
|
Re: HF Client/Serveur - Création d'un fichier dans un répertoire |
|
Anonyme
|
Doublon... Mince, j'ai oublié de me connecter Ambre77
Contribution le : 25/01/2006 09:57
|
|
|
Re: HF Client/Serveur - Création d'un fichier dans un répertoire |
|
Anonyme
|
Ma connexion (en localhost pour le développement) :
//Variables de connexion
sNomConnexion est une chaîne = "Localhost_eleve"
sLibelléConnexion est une chaîne = "Connexion au serveur localhost, base eleve"
sTypeConnexion est une chaîne = "WinDevClientServeurHF"
sTypeAccès est un entier = hOLectureEcriture
sNomSource est une chaîne = "localhost:4900"
sNomBase est une Source de Données = "eleve"
sNomUtilisateur est une chaîne = "admin"
sMotDePasse est une chaîne = ""
sInfoEtendus est une chaîne = ";Cryptage = aucun;Initial Catalog=eleve"
SI HOuvreConnexion(sNomConnexion, sNomUtilisateur, sMotDePasse, sNomSource, sNomBase, sTypeConnexion, sTypeAccès) ALORS
Info("Connexion établie")
SINON
Erreur(HErreurInfo())
FIN
HChangeConnexion("*", sNomConnexion)
FONCTION ouvrirfichier(nomfichier)
//Code WinDev 5.5 remplacé par la migration :
//hassigne(nomfichier,repertoire)
HChangeRep(nomfichier,repegpx)
HCréationSiInexistant(nomfichier)
FONCTION ouvriregpx(nomfichier)
HFerme(nomfichier)
//Code WinDev 5.5 remplacé par la migration :
//hsubstnom(nomfichier,gauche(nomfichier,taille(nomfichier)-3)+pro)
HChangeNom(nomfichier,Gauche(nomfichier,Taille(nomfichier)-3)+pro)
//Code WinDev 5.5 remplacé par la migration :
//hassigne(nomfichier,repegpx)
HChangeRep(nomfichier,repertoire)
HCréationSiInexistant(nomfichier)
//hinfogene(nomfichier)
SI HNbEnr(nomfichier)=0
RAZ
HRAZ(nomfichier)
HAjoute(nomfichier)
FIN
Contribution le : 25/01/2006 09:58
|
|
|
Re: HF Client/Serveur - Création d'un fichier dans un répertoire |
|
Developpeur WDF
Inscrit: 24/01/2006 13:42
De Chartres
Post(s): 142
|
tu devrai faire plus de test deja par exemple
si pas frep(repertoire,frrepertoire)~="" alors frepcrée(repertoir) sinon si pas HChangeRep(nomfichier,repertoire) alors erreur("erreur") sinon si pas hcréationsiinexistant("*") alors erreur("erreur") fin fin fin
a tu verifier dans ton code l'existance du repetoir??? car je ne le voi pas dans ton code
Contribution le : 25/01/2006 10:26
|
|
|
Re: HF Client/Serveur - Création d'un fichier dans un répertoire |
|
Anonyme
|
Dans les procédures globales du projet, il y a également ça : PROCEDURE repert()
SI fRep(repegpx,frRépertoire)=""
//Code WinDev 5.5 remplacé par la migration :
// frepcree(repegpx)
fRepCrée_55(repegpx)
FIN
En remplaçant HChangeRep(nomfichier,repertoire)
par HChangeRep(nomfichier,"./" + repertoire)
, j'ai l'erreur suivante : Erreur à la ligne 6 du traitement Procédure globale ouvrirfichier.
Vous avez appelé la fonction HCréationSiInexistant.
Erreur renvoyée par le serveur <localhost:4900> :
Impossible de créer le répertoire <C:\Serveur HF\BDD\eleve\./C:\Serveur HF\BDD\eleve\>.
Le fichier n'a été trouvé ni sur disque, ni dans les bibliothèques (.WDL) ou les composants (.WDK) chargés.
Détail de l'erreur système :
Syntaxe du nom de fichier, de répertoire ou de volume incorrecte.
je pense qu'il faut recourir à "." pour le répertoire de la base mais je n'en fais pas une bonne utilisation
Contribution le : 25/01/2006 10:52
|
|
|
Re: HF Client/Serveur - Création d'un fichier dans un répertoire |
|
Developpeur WDF
Inscrit: 24/01/2006 13:42
De Chartres
Post(s): 142
|
En remplaçant HChangeRep(nomfichier,repertoire)
par [code]HChangeRep(nomfichier,"./" + repertoire) ton ./ ne sert a rien pour moi l'ancien code etait correct HChangeRep(nomfichier,repertoire) le tout etant d'avoir controler si repertoire existe bien au préalable. cela me semble correcte FONCTION ouvrirfichier(nomfichier) //Code WinDev 5.5 remplacé par la migration : //hassigne(nomfichier,repertoire) si frep(repegpx,fprepertoire) alors fcréerep(repegpx) sinon si HChangeRep(nomfichier,repegpx) alors //repegpx variable globale? si pas HCréationSiInexistant(nomfichier) alors erreur("") sinon info("creer") fin sinon erreur("") fin sinon erreur("") fin
Contribution le : 25/01/2006 13:29
|
|
|
Re: HF Client/Serveur - Création d'un fichier dans un répertoire |
|
Stagiaire WDF
Inscrit: 24/01/2006 15:04
Post(s): 8
|
j'ai collé ton code dans la fonction ouvrirfichier (j'ai juste corrigé tes erreurs de frappe : frepCrée au lieu de fCréeRep et frRepertoire au lieu de fpRepertoire). Dans le test, j'ai une erreur : dans les déclarations globales de la fenêtre menu j'ai une erreur sur l'instruction : -> "le traitement ouvrirfichier attend au plus 0 paramètre et vous en passez 1"
Contribution le : 25/01/2006 14:19
|
|
|
Re: HF Client/Serveur - Création d'un fichier dans un répertoire |
|
Stagiaire WDF
Inscrit: 19/01/2006 11:29
Post(s): 9
|
Je suis loin d'être un expert Windev, mais le message d'erreur reçu semble être dû à une divergence entre la définition de la fonction et son appel, probablement as-tu oublié de copier-coller la première ligne (FONCTION ouvrirfichier(nomfichier)), non ?
D'après le message d'erreur, il semblerait que tu ait FONCTION ouvrirfichier() sans paramêtre de prévu, et donc, tu en passe un et il n'accepte pas, logiquement.
Contribution le : 25/01/2006 14:39
|
|
|
Re: HF Client/Serveur - Création d'un fichier dans un répertoire |
|
Developpeur WDF
Inscrit: 24/01/2006 13:42
De Chartres
Post(s): 142
|
pk ("code")
normalement c le nom du fichier que tu met dans cette fonction non? ton erreur veut dire dans tes procedures ta fonction ouvrirfichier() est presenter comme ca
et toi dans le code tu fais ouvrirfichier(nomfic)
or si ta variable nomfic est global tu pe faire ouvrirfichier() ... traitement ...
Contribution le : 25/01/2006 14:39
|
|
|
Re: HF Client/Serveur - Création d'un fichier dans un répertoire |
|
Stagiaire WDF
Inscrit: 24/01/2006 15:04
Post(s): 8
|
Citation : Celtic a écrit: pk ("code") les fichiers .fic nécessaires à l'appli (où il y a toutes sortes de codes) sont créés dans le répertoire de l'appli
...
ça, cela ne doit pas bouger...cela fonctionne parfaitement quand je mets la fonction HChangeRep en commentaires. Mon unique souci est qu'il place les fichiers dans le mauvais répertoire. Il doit descendre d'un niveau... je cherche, je cherche...
Contribution le : 25/01/2006 15:02
|
|
|
Re: HF Client/Serveur - Création d'un fichier dans un répertoire |
|
Developpeur WDF
Inscrit: 24/01/2006 13:42
De Chartres
Post(s): 142
|
bonne chance alors. dernier chose il ta bien créer le repertoire mais il ne le mais pas dans le bon c ca? verifi que ta chaine lorsque tu creer le repertoire soit la meme que le repertoire que tu utilise dans hchangerep. sinon envoi ton code une derniere fois voir
Contribution le : 25/01/2006 15:38
|
|
|
Re: HF Client/Serveur - Création d'un fichier dans un répertoire |
|
Stagiaire WDF
Inscrit: 24/01/2006 15:04
Post(s): 8
|
Je viens enfin de trouver la solution !!! en fait, j'ai ajouté en variable globale du projet une chaine : recup_rep que je définis ensuite dans la procedure globale ouvriregpx : recup_rep = droite(repegpx,3) //ainsi je recupère le ne rpertoire de la promo (xxx) et j'ajoute : HChangeRep(nomfichier, recup_rep)
avant l'instruction : HChangeNom(nomfichier, Gauche(nomfichier, Taille(nomfichier)-3)+pro
Merci pour ton aide Celtic, c'est super sympa. A+
Contribution le : 25/01/2006 15:50
Edité par Ambre77 sur 25/1/2006 16:13:52
|
|
Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
|
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
|