| [BDR] Fichier ciblé à l'ouverture | |
|
|
Auteur | Message |
---|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: [BDR] Fichier ciblé à l'ouverture Mer 24 Avr 2013 - 18:58 | |
| Petite question pour Klaus,
A l'ouverture de la BDR, on peut lui envoyer le nom de la base avec n'importe laquelle des extensions. Mais, quel est le fichier ciblé par cette ouverture ?
| |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: [BDR] Fichier ciblé à l'ouverture Mer 24 Avr 2013 - 19:15 | |
| En fait, il "oublie" l'extension et la remplace systématiquement par hdr pour tester l'existence de la base. Et à partir de là, les noms des différents fichiers sont générés automatiquement, en imposant les différentes extensions.
Donc, l'extension du fichier que tu passes en paramètre à l'ouverture n'a aucune importance. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 24 Avr 2013 - 19:52 | |
| La question était pour la création d'un menu "Base" dans mon "Main_Menu"
Base Ouvrir |____Année en cours ( définition de bdr$ ) |____Autre Année ====>Open dialog (définition de bdr$ ) Enregistrer Enregistrer Sous Fermer Quitter
en ciblant une seule extension dans l'open dialog | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 24 Avr 2013 - 21:22 | |
| Une autre pour la route... Si j'ouvre une base dans un autre dossier que le dossier source. BDR va t il chercher les autres fichiers dans le dossier du source ou dans le dossier du fichier passé pour l'ouverture ?... Il est chiant ce type avec toutes ses questions... PS : si la réponse est le cas 1, il serait bien que ce soit plutôt le cas 2... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: [BDR] Fichier ciblé à l'ouverture Mer 24 Avr 2013 - 21:45 | |
| Ce qui se passe exactement, c'est ceci: - je prends le nom du fichier passé en paramètre et je ce copie dans une variable temporaire - je coupe l'extension et la remplace par hdr (sans toucher au reste, et sans toucher en particulier au chemin d'accès) - je vérifie l'existence de ce fichier, et si inexistant, je créer toute la base "vide" - pour tous les divers fichiers de la base, j'applique exactement le même principe: je coupe l'extension et je la remplace par une autre, sans toucher au chemin.
Il en découle que: - si tu passes un chemin complet absolu genre "C:\dossier1\dossier2\test.dat", tous les fichiers de la base seront dans "C:\dossier1\dossier2\" - si tu passes un chemin relatif genre "dossier2\test.dat", tous les fichiers de la base seront dans "dossier2\" en-dessous du répertoire par defaut - si tu ne passes aucun chemin, juste le nom du fichier, tous les fichiers de la base se trouveront dans le répertorie par défaut. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 24 Avr 2013 - 21:50 | |
| Bon ben suite dans Mon Ecurie Vs 1.4 | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 24 Avr 2013 - 22:02 | |
| voilà la sub : - Code:
-
Sub Enregistrer_Sous() if len(bdr$)>1 O_Save_Dialog(141,0,Save$,"Base|*.hdr") If right$(file_Out$,3)<>"hdr" : File_out$=File_Out$+".hdr":End_if BDRsaveas(File_out$) message "Résultat: "+str$(BDRsaveas) Else if message_error_ok("Aucune Base n'est ouverte !")=1:end_if End_if End_Sub et voilà le schmilblick : file_out$ est le chemin renvoyé par O_Save_Dialog() Quoi que c'est qui ce passe ?... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: [BDR] Fichier ciblé à l'ouverture Mer 24 Avr 2013 - 22:49 | |
| Avant de faire BDRsaveas, affiche le contenu de filr_out$. Je crois que tu auras une surprise... | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 24 Avr 2013 - 23:03 | |
| Ou je n'ai plus les yeux en face des trous, ou je deviens aveugle mais je ne vois rien de spéciale. c' est l'adresse que je veux...du moins je crois... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: [BDR] Fichier ciblé à l'ouverture Jeu 25 Avr 2013 - 0:18 | |
| J'ai réussi à le reproduire chez moi, et je vais m'y plonger. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| |
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: [BDR] Fichier ciblé à l'ouverture Jeu 25 Avr 2013 - 0:52 | |
| J'ai trouvé. Il y avait deux bugs, en fait. 1. Dans KGF_SUB.bas, dans la procédure BDRsaveas(...), il faut mettre évidemment: - Code:
-
BDR_res% = dll_call1("CallDLL1",adr(bdr$)) au lieu de - Code:
-
BDR_res% = dll_call0("CallDLL1",adr(bdr$)) J'aurais dû le voir au moment où j'ai validé l'intégration de ces procédures. 2. Mais, cela m'a permis de découvrir un véritable bug dans BDR.dll, dans la fonction BDRsaveas: en fait, il ne tenait pas compte du dossier passé en paramètre, mais réécrivait dans le dossier de la base d'origine. Ceci est corrigé maintenant. Donc: télé-charge KGF_SUB.bas et BDR.dll, et ce sera résolu. Un petit conseil, cependant: modifie ta procédure d'enregistrement comme suit: - Code:
-
Sub Enregistrer_Sous() if len(bdr$)>1 O_Save_Dialog(141,0,Save$,"Base|*.hdr") if file_out$="_" then exit_sub If right$(file_Out$,3)<>"hdr" : File_out$=File_Out$+".hdr":End_if BDRsaveas(File_out$) message "Résultat: "+str$(BDRsaveas) Else if message_error_ok("Aucune Base n'est ouverte !")=1:end_if End_if End_Sub Je n'ai pas pu télé-charger ta version V1.4, et j'ai donc travaillé à partir de la version V1.3, et j'ai mis la procédure comme suit: - Code:
-
Sub Enregistrer_Sous() if len(bdr$)>1 ' O_Save_Dialog(141,0,Save$,"Base|*.hdr") if object_exists(141)=0 then save_dialog 141 : filter 141,"Base|*.hdr" if variable("file_out$")=0 then dim file_out$ file_out$ = file_name$(141) if file_out$="_" then exit_sub If right$(file_Out$,3)<>"hdr" : File_out$=File_Out$+".hdr":End_if message "Fichier: "+File_out$ BDRsaveas(File_out$) message "Résultat: "+str$(BDRsaveas) Else if message_error_ok("Aucune Base n'est ouverte !")=1:end_if End_if end_sub et ça marche bien. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 25 Avr 2013 - 1:02 | |
| Merci Klaus, j'intègre çà tout de suite. La version 1.4 est en ligne mais avec mes déboires de connexion peut être a t elle subit des dommages en cours de transfert. Dès que j'ai fini je mettrai en ligne une version 1.5 car tout de suite, je suis sur la possibilité d'envoyer les Etats par mail avec Senditquiet.exe... | |
|
| |
Contenu sponsorisé
| Sujet: Re: [BDR] Fichier ciblé à l'ouverture | |
| |
|
| |
| [BDR] Fichier ciblé à l'ouverture | |
|