Clément.a Posté(e) le 18 février 2013 Posté(e) le 18 février 2013 Bonjour tout le monde, J'aimerais savoir si il est possible d'enregistrer les valeurs d'une variable sur un fichier externe de tels façon pour qu'on puisse les rouvrires 6 mois après et les réafecter à des variables. Merci.
Patrick_35 Posté(e) le 18 février 2013 Posté(e) le 18 février 2013 Salut Avec une petite recherche ;) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Clément.a Posté(e) le 18 février 2013 Auteur Posté(e) le 18 février 2013 C'est pas vraiment ça que je cherche à faire du moins dans ce que j'ai compris du lien.je me suis peu etre mal expliqué je pense, voila j'ai une boite de dialogue dans laquelle je renseigne plusieurs information indispensable pour pouvoir par la suite appliqué une routine. Or il est fort probable que j'ai à utiliser plusieur fois cette routine pour le même cas donc avec les même informations, j'aimerais donc pouvoir enregistrer ces infos dans un fichier que j'enregistrerais dans un répertoir et par la suite ouvrir ce répertoir pour ne pas à avoir à toute les resaisir.Donc y faudrait que je creer un fichier .txt je pense et que j'ecrive ce dont je veut. Merci
-Olivier- Posté(e) le 18 février 2013 Posté(e) le 18 février 2013 Bonjour Clément.a, Si tu veux récprérer la valeur dans le même fichier autocad, regarde ce lien Olivier
Clément.a Posté(e) le 18 février 2013 Auteur Posté(e) le 18 février 2013 Je crois que j'ai ce qui me faut avec les Idata, j'ai pas encore tout compris mais je suis deçus( si vous avez des conseils...). Merci
Clément.a Posté(e) le 18 février 2013 Auteur Posté(e) le 18 février 2013 Vous savez ou se sauvegarde les Idatas, peut on choisir ou?J'ai l'impression que les idatas ce supprime après avoir quitté Autocad, y à t'il un moyen de les sauver? Merci
Clément.a Posté(e) le 18 février 2013 Auteur Posté(e) le 18 février 2013 Je suis allé un peut trop vite, enfete il s'enregistre avec le fichier dwg sur lequel on l'a affecté. Du coup ma question c'est : Peut on faire pour qu'il ne soit pas attaché à un fichier et lisible depuis n'importe qu'elle DWG?
fabcad Posté(e) le 18 février 2013 Posté(e) le 18 février 2013 Bonjour, Lee Mac pour certains de ses programmes créée des fichiers cfg comme fichiers de configuration pour ses cases de dialogue. Voici le contenu d'un de ces fichiers : 1.570796330.00000000-10.00000000nilT"1""1370""""_7205""1""inc-pre""obj-blk""PLACEUR""NUMERO""0""3""8""0""bor-off""0.10""1.0""1.0""0""Standard""Middle-Center""0""8"
Patrick_35 Posté(e) le 18 février 2013 Posté(e) le 18 février 2013 Effectivement, pourquoi ne pas utiliser un fichier txt en externe.Tu peux par exemple nommer tes config, avec la possibilité de les sauvegarder.A toi de bien structurer ton fichier. Tu peux aussi utiliser les registres ou encore les variables d'environnement.Tu peux aussi, comme l'indique -Olivier-, sauvegarder tes variables que dans le dessinC'est un choix. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Clément.a Posté(e) le 18 février 2013 Auteur Posté(e) le 18 février 2013 Comment fait alors pour creer un fichier .txt?
GEGEMATIC Posté(e) le 18 février 2013 Posté(e) le 18 février 2013 salut,tu peux télécharger ce très vieux lisp, qui a peut être besoin d'une réactualisation,Spy_varLe principe: spy_var1 est la commande qui vous permet d'enregistrer l'état de vos variables système spy_var2 affiche les variables qui ont changées depuis l'appel de la commande spy_var1 write_var2ini ecrit l'état de vos variables dans un fichier ini compare_var_from_ini compare l'état de vos variables avec l'état stocké dans un fichier ini ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
Patrick_35 Posté(e) le 18 février 2013 Posté(e) le 18 février 2013 Comment fait alors pour creer un fichier .txt?Ben, de la même manière que tu fais ton DCL ? (setq toto (open "mon_fichier.txt" "w")) (mapcar '(lambda(x)(write-line x toto)) liste_de_variables) (close toto) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Clément.a Posté(e) le 18 février 2013 Auteur Posté(e) le 18 février 2013 ah j'en déduit que la fonction open creer le fichier quand il n'existe pas.y se créer ou ce fichier?
Patrick_35 Posté(e) le 18 février 2013 Posté(e) le 18 février 2013 Pas tout à faitLe fichier est écrasé s'il existe, sinon il est créé.Pour ajouter sur un fichier existant, tu as la fonction "a" (pour append) à la place du "w" (pour write)Pour compléter sur la fonction, il reste le "o" (pour open)Pour l'emplacement, tu lui indiques directement(open "d:/dir1/dir2/dir3/mon_fichier.txt" "w") Regade l'aide sup la fonction open, elle est très compléte. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
alala Posté(e) le 18 février 2013 Posté(e) le 18 février 2013 Bonjour, Open enregistre dans le dossier du fichier en cours si je ne me trompe pas!Le mieux étant de choisir toi même le lieu de l'enregistrement. Et avec un getfiled tu peu même choisir l'emplacement d'enregistrement et ou allez chercher le fichier à lire. C'est en forgeant que l'on devient forgerons.Et c'est en sciant que Léonard DeVinci!
Clément.a Posté(e) le 18 février 2013 Auteur Posté(e) le 18 février 2013 Merci à tous j'ai réussi, y me reste plus cas rouvrir le fichier texte et placé les infos dans la boite de dialogue. Merci@+
Clément.a Posté(e) le 18 février 2013 Auteur Posté(e) le 18 février 2013 Bon me revoila! quand je li mon fichier .txt de cette manière : (defun ouvrir () (setq ouvrir (getfiled "Selectionnez un fichier " "C:\\Users\\cx\\Desktop\\Infosave" "txt" 2)) (setq lecture_sauvegarde (open ouvrir "r")) (setq h (read-line lecture_sauvegarde)) ) h me retourne seulement la première ligne;De quelle manière puis-je faire pour acceder à tout le fichier et retrouver les éléments qui m'interessent ?existe t'il un moyen de dire affecte à "h" la ligne qui contient ce mot?
Patrick_35 Posté(e) le 18 février 2013 Posté(e) le 18 février 2013 Pour lire un fichier et tout mettre dans une liste(defun ouvrir () (setq ouvrir (getfiled "Selectionnez un fichier " "C:\\Users\\cx\\Desktop\\Infosave" "txt" 2)) (setq lecture_sauvegarde (open ouvrir "r")) (while (setq h (read-line lecture_sauvegarde)) (setq lst (cons h lst)) ) (close ouvrir) ) Ou encore, si c'est structuré(defun ouvrir () (setq ouvrir (getfiled "Selectionnez un fichier " "C:\\Users\\cx\\Desktop\\Infosave" "txt" 2)) (setq lecture_sauvegarde (open ouvrir "r")) (while (setq h (read-line lecture_sauvegarde)) (setq i (read-line lecture_sauvegarde)) (setq j (read-line lecture_sauvegarde)) (setq k (read-line lecture_sauvegarde)) (setq lst (cons (list h i j k) lst) ) (close ouvrir) ) Le résultat est dans la variable lst @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
Clément.a Posté(e) le 18 février 2013 Auteur Posté(e) le 18 février 2013 Niquel, oui c'est structuré je devrai m'en sortir merci beaucoup.
Clément.a Posté(e) le 19 février 2013 Auteur Posté(e) le 19 février 2013 C'est bon j'arive à enregistrer les donner de ma boite de dialogue et les rouvrir.En revanche y a encore des petits trucs à améliorer et je ne sais pas comment mis prendre : Après avoir charger ma routine je peut utilisé qu'une fois le bouton ouvrir après y m'affiche ça : "; erreur: fonction incorrecte: "C:\\Users\\clement.arnoux\\Desktop\\Infosave.txt""Comme si y gardait se fichier par défaut, sauf que ce fichier existe donc y devrait l'ouvrir (même si c pas ce que je veux).Y doit y avoir une variable à remetre à 0 ou quelque chose comme ça, non? De plus quand je quitte sur annuler de la boite de dialogue de "getfiled" il ferme même ma boite de dialogue qui est en dessous, comment faire pour qu'il ne faire que la boite de dialogue de navigation? Voici mon code :(defun c:lala () (setq info ( load_dialog "infoRV.dcl")) (if (not (new_dialog "infoRV" info)) (progn (alert"La boite de dialogue infoRV n'a pas été trouvée !") (exit) ) ) (Setq SlideRVexpl "K:\\AUTOCAD\\Standards-ATECAS\\GEN-CIVIL\\Piquages\\Cliche\\RVexpl.sld") (updateimage1 SlideRVexpl "SLDRVexpl") (action_tile "cancel" "(exit)(done_dialog)") (action_tile "ouvrir" "(ouvrir)") (action_tile "enregister" "(SaveVars)(enregister)") (action_tile "accept" "(SaveVars)(exit) (done_dialog)") (action_tile "diametre" "(verif_saisie \"diametre\" $value)") (action_tile "hauteur" "(verif_saisie \"hauteur\" $value)") (action_tile "volume" "(verif_saisie \"volume\" $value)") (action_tile "pente" "(verif_saisie \"pente\" $value)") (start_dialog) (unload_dialog info) ) (defun verif_saisie(key nb) (cond ((not(= nb "")) (or(or(eq (type (read nb)) 'REAL) (eq (type (read nb)) 'INT)) (progn (alert (strcat "La " key " n'est pas un réel")) (set_tile key "") (mode_tile key 2))) ) ) ) (defun ouvrir () (setq ouvrir (getfiled "Selectionnez un fichier " "C:\\Users\\clement.arnoux\\Desktop\\Infosave" "txt" 2)) (setq lecture_sauvegarde (open ouvrir "r")) (while (setq debut_save (read-line lecture_sauvegarde)) (setq nom_save (read-line lecture_sauvegarde)) (setq langue_save (read-line lecture_sauvegarde)) (setq fluide_save (read-line lecture_sauvegarde)) (setq hauteur_save (read-line lecture_sauvegarde)) (setq diametre_save (read-line lecture_sauvegarde)) (setq volume_save (read-line lecture_sauvegarde)) (setq pente_save (read-line lecture_sauvegarde)) (setq unite_save (read-line lecture_sauvegarde)) (setq fin_save (read-line lecture_sauvegarde)) ) (close lecture_sauvegarde) (ecriture nom_save langue_save fluide_save hauteur_save diametre_save volume_save pente_save unite_save ) ) (defun enregister () (setq sauvegarde (getfiled "Selectionnez un Répertoir" "C:\\Users\\clement.arnoux\\Desktop\\Infosave" "txt" 1)) (setq ecriture_sauvegarde (open sauvegarde "w")) (setq nomsav (strcat "nom_reservoir : " nom)) (setq languesav (strcat"choixlangue : " langue)) (setq fluidesav (strcat "fluide : " fluide)) (setq hauteursav (strcat "hauteur : " hauteur)) (setq diametresav (strcat "diametre : " diametre)) (setq volumesav (strcat "volume : " volume)) (setq pentesav (strcat "pente : " pente)) (setq unitesav (strcat "choixunite : " unite)) (foreach txt_sauvegarde (append'( "Sauvegarde ") (list nomsav) (list languesav) (list fluidesav) (list hauteursav) (list diametresav) (list volumesav) (list pentesav) (list unitesav) '("fin sauvegarde")) (write-line txt_sauvegarde ecriture_sauvegarde) ) (close ecriture_sauvegarde) ) (defun Savevars () (setq nom (get_tile "nom_rv")) (setq langue (get_tile "choixlangue")) (setq fluide (get_tile "fluide")) (setq hauteur (get_tile "hauteur")) (setq diametre (get_tile "diametre")) (setq volume (get_tile "volume")) (setq pente (get_tile "pente")) (setq unite (get_tile "choixunite")) ) (defun ecriture (nom langue fluide hauteur diametre volume pente unite) ;;;(alert (strcat nom " " langue " " fluide " " hauteur " " diametre " " volume " " pente " " unite)) (setq n_nom (strlen nom)) (setq long_nom (- n_nom 16)) (setq debut_nom (1+ (- n_nom long_nom))) (setq nom_ecrit (substr nom debut_nom long_nom)) ; (setq n_langue (strlen langue)) (setq long_langue (- n_langue 14)) (setq debut_langue (1+(- n_langue long_langue))) (setq langue_ecrit (substr langue debut_langue long_langue)) ; (setq n_fluide (strlen fluide)) (setq long_fluide (- n_fluide 9)) (setq debut_fluide (1+(- n_fluide long_fluide))) (setq fluide_ecrit (substr fluide debut_fluide long_fluide)) ; (setq n_hauteur (strlen hauteur)) (setq long_hauteur (- n_hauteur 10)) (setq debut_hauteur (1+(- n_hauteur long_hauteur))) (setq hauteur_ecrit (substr hauteur debut_hauteur long_hauteur)) ; (setq n_diametre (strlen diametre)) (setq long_diametre (- n_diametre 11)) (setq debut_diametre (1+(- n_diametre long_diametre))) (setq diametre_ecrit (substr diametre debut_diametre long_diametre)) ; (setq n_volume (strlen volume)) (setq long_volume (- n_volume 9)) (setq debut_volume (1+(- n_volume long_volume))) (setq volume_ecrit (substr volume debut_volume long_volume)) ; (setq n_pente (strlen pente)) (setq long_pente (- n_pente 8)) (setq debut_pente (1+(- n_pente long_pente))) (setq pente_ecrit (substr pente debut_pente long_pente)) ; (setq n_unite (strlen unite)) (setq long_unite (- n_unite 13)) (setq debut_unite (1+(- n_unite long_unite))) (setq unite_ecrit (substr unite debut_unite long_unite)) (cond ((= langue_ecrit "français") (mode_tile "choixlangue" "français" )) ((= langue_ecrit "anglais") (set_tile "choixlangue" "anglais")) ) (set_tile "nom_rv" nom_ecrit) (set_tile "fluide" fluide_ecrit) (set_tile "diametre" diametre_ecrit) (set_tile "hauteur" hauteur_ecrit) (set_tile "volume" volume_ecrit) (set_tile "pente" pente_ecrit) (cond ((= unite_ecrit "mm") (set_tile "choixunite" "mm" )) ((= unite_ecrit "cm") (set_tile "choixunite" "cm")) ((= unite_ecrit "m") (set_tile "choixunite" "m")) ) ) et mon *.DCL infoRV: dialog { label = "Information générale du Réservoir "; : row{ : column { : radio_row{ key = "choixlangue"; label = "Choix de la langue"; : row{:spacer{width = 2;}} : radio_button { key = "français"; label = "Français"; } : radio_button { key = "anglais"; label = "Anglais"; } } : spacer{height=1.5; } : boxed_column { label = "Information énérale"; : edit_box { key = "nom_rv"; label = "Nom du réservoir: "; edit_width = 9; } : edit_box { key = "fluide"; label = "Fluide contenu : "; edit_width = 9; }} : spacer{height=1.5; } : boxed_column { label = "Dimensions"; : edit_box { key = "diametre"; label = "Diamètre du réservoir ( en mètre ): "; edit_width = 9; } : edit_box { key = "hauteur"; label = "Hauteur du réservoir ( en mètre ) : "; edit_width = 9; } : edit_box { key = "volume"; label = "Volume du réservoir ( en mètre cube ) : "; edit_width = 9; } : edit_box { key = "pente"; label = "Pente du réservoir ( en %) : "; edit_width = 9; } } : spacer{height=1.5; } : radio_row{ key = "choixunite"; label = "Choix de l'untité"; : radio_button { key = "mm"; label = "Millimètre"; } : radio_button { key = "cm"; label = "Centimètre"; } : radio_button { key = "m"; label = "mètre"; } } } : column { : image { key = "SLDRVexpl"; height =1; width = 60; color = 0; is_enabled = false; is_tab_stop = false; } } }: spacer{height=2; } :row { : button { key = "ouvrir"; label = "Ouvrir"; } : button { key = "enregister"; label = "Enregistrer"; } : button { key = "accept"; label = " OK "; is_default = true; } : button { key = "cancel"; label = " Annuler "; is_default = false; is_cancel = true ; } } } Merci
alala Posté(e) le 19 février 2013 Posté(e) le 19 février 2013 Bonjour, Tu n'a pas déclaré tes variables.Donc quand tu a finit ta routine il reste des infos dans celle-ci qui sont réutilisés au prochain lancement du LISP. Un peu de lecture ! C'est en forgeant que l'on devient forgerons.Et c'est en sciant que Léonard DeVinci!
Clément.a Posté(e) le 19 février 2013 Auteur Posté(e) le 19 février 2013 ah! je l'avais jamais fait jusqu'a aujourd'hui, mais bon faut un debut à tout Voila maintenant tout marche tout le temps sauf quand j'annule le "getfiled" et que sa me ferme tout y doit me manqué quelque chose de plus que j'ai ce message d'erreur (c'est ce qui me fait dire ça) : "; erreur: type d'argument incorrect: stringp nil" (defun c:lala (/ SlideRVexpl info) (setq info ( load_dialog "infoRV.dcl")) (if (not (new_dialog "infoRV" info)) (progn (alert"La boite de dialogue infoRV n'a pas été trouvée !") (exit) ) ) (Setq SlideRVexpl "K:\\AUTOCAD\\Standards-ATECAS\\GEN-CIVIL\\Piquages\\Cliche\\RVexpl.sld") (updateimage1 SlideRVexpl "SLDRVexpl") (action_tile "cancel" "(exit)(done_dialog)") (action_tile "ouvrir" "(ouvrir)") (action_tile "enregister" "(enregister)") (action_tile "accept" "(SaveVars)(exit) (done_dialog)") (action_tile "diametre" "(verif_saisie \"diametre\" $value)") (action_tile "hauteur" "(verif_saisie \"hauteur\" $value)") (action_tile "volume" "(verif_saisie \"volume\" $value)") (action_tile "pente" "(verif_saisie \"pente\" $value)") (start_dialog) (unload_dialog info) ) (defun verif_saisie(key nb) (cond ((not(= nb "")) (or(or(eq (type (read nb)) 'REAL) (eq (type (read nb)) 'INT)) (progn (alert (strcat "La " key " n'est pas un réel")) (set_tile key "") (mode_tile key 2))) ) ) ) (defun ouvrir (/ lecture_sauvegarde ouvrir debut_save nom_save langue_save fluide_save hauteur_save diametre_save volume_save pente_save unite_save fin_save) (setq ouvrir (getfiled "Selectionnez un fichier " "C:\\Users\\clement.arnoux\\Desktop\\Infosave" "txt" 2)) (setq lecture_sauvegarde (open ouvrir "r")) (while (setq debut_save (read-line lecture_sauvegarde)) (setq nom_save (read-line lecture_sauvegarde)) (setq langue_save (read-line lecture_sauvegarde)) (setq fluide_save (read-line lecture_sauvegarde)) (setq hauteur_save (read-line lecture_sauvegarde)) (setq diametre_save (read-line lecture_sauvegarde)) (setq volume_save (read-line lecture_sauvegarde)) (setq pente_save (read-line lecture_sauvegarde)) (setq unite_save (read-line lecture_sauvegarde)) (setq fin_save (read-line lecture_sauvegarde)) ) (close lecture_sauvegarde) (ecriture nom_save langue_save fluide_save hauteur_save diametre_save volume_save pente_save unite_save ) ) (defun enregister (/ nom langue fluide hauteur diametre volume pente unite sauvegarde ecriture_sauvegarde nomsav languesav fluidsav hauteursav diametresav volumesav pentesav unitesav) (setq nom (get_tile "nom_rv")) (setq langue (get_tile "choixlangue")) (setq fluide (get_tile "fluide")) (setq hauteur (get_tile "hauteur")) (setq diametre (get_tile "diametre")) (setq volume (get_tile "volume")) (setq pente (get_tile "pente")) (setq unite (get_tile "choixunite")) (setq sauvegarde (getfiled "Selectionnez un Répertoir" "C:\\Users\\clement.arnoux\\Desktop\\Infosave" "txt" 1)) (setq ecriture_sauvegarde (open sauvegarde "w")) (setq nomsav (strcat "nom_reservoir : " nom)) (setq languesav (strcat"choixlangue : " langue)) (setq fluidesav (strcat "fluide : " fluide)) (setq hauteursav (strcat "hauteur : " hauteur)) (setq diametresav (strcat "diametre : " diametre)) (setq volumesav (strcat "volume : " volume)) (setq pentesav (strcat "pente : " pente)) (setq unitesav (strcat "choixunite : " unite)) (foreach txt_sauvegarde (append'( "Sauvegarde ") (list nomsav) (list languesav) (list fluidesav) (list hauteursav) (list diametresav) (list volumesav) (list pentesav) (list unitesav) '("fin sauvegarde")) (write-line txt_sauvegarde ecriture_sauvegarde) ) (close ecriture_sauvegarde) ) (defun ecriture (nom langue fluide hauteur diametre volume pente unite / n_nom long_nom debut_nom nom_ecrit n_langue long_langue debut_langue langue_ecrit n_fluide long_fluide debut_fluide fluide_ecrit n_hauteur long_hauteur debut_hauteur hauteur_ecrit n_diametre long_diametre debut_diametre diametre_ecrit n_volume long_volume debut_volume volume_ecrit n_pente long_pente debut_pente pente_ecrit n_unite long_unite debut_unite unite_ecrit ) ;;;(alert (strcat nom " " langue " " fluide " " hauteur " " diametre " " volume " " pente " " unite)) (setq n_nom (strlen nom)) (setq long_nom (- n_nom 16)) (setq debut_nom (1+ (- n_nom long_nom))) (setq nom_ecrit (substr nom debut_nom long_nom)) ; (setq n_langue (strlen langue)) (setq long_langue (- n_langue 14)) (setq debut_langue (1+(- n_langue long_langue))) (setq langue_ecrit (substr langue debut_langue long_langue)) ; (setq n_fluide (strlen fluide)) (setq long_fluide (- n_fluide 9)) (setq debut_fluide (1+(- n_fluide long_fluide))) (setq fluide_ecrit (substr fluide debut_fluide long_fluide)) ; (setq n_hauteur (strlen hauteur)) (setq long_hauteur (- n_hauteur 10)) (setq debut_hauteur (1+(- n_hauteur long_hauteur))) (setq hauteur_ecrit (substr hauteur debut_hauteur long_hauteur)) ; (setq n_diametre (strlen diametre)) (setq long_diametre (- n_diametre 11)) (setq debut_diametre (1+(- n_diametre long_diametre))) (setq diametre_ecrit (substr diametre debut_diametre long_diametre)) ; (setq n_volume (strlen volume)) (setq long_volume (- n_volume 9)) (setq debut_volume (1+(- n_volume long_volume))) (setq volume_ecrit (substr volume debut_volume long_volume)) ; (setq n_pente (strlen pente)) (setq long_pente (- n_pente 8)) (setq debut_pente (1+(- n_pente long_pente))) (setq pente_ecrit (substr pente debut_pente long_pente)) ; (setq n_unite (strlen unite)) (setq long_unite (- n_unite 13)) (setq debut_unite (1+(- n_unite long_unite))) (setq unite_ecrit (substr unite debut_unite long_unite)) (cond ((= langue_ecrit "français") (set_tile "choixlangue" "français" )) ((= langue_ecrit "anglais") (set_tile "choixlangue" "anglais")) ) (set_tile "nom_rv" nom_ecrit) (set_tile "fluide" fluide_ecrit) (set_tile "diametre" diametre_ecrit) (set_tile "hauteur" hauteur_ecrit) (set_tile "volume" volume_ecrit) (set_tile "pente" pente_ecrit) (cond ((= unite_ecrit "mm") (set_tile "choixunite" "mm" )) ((= unite_ecrit "cm") (set_tile "choixunite" "cm")) ((= unite_ecrit "m") (set_tile "choixunite" "m")) ) ) infoRV: dialog { label = "Information générale du Réservoir "; : row{ : column { : radio_row{ key = "choixlangue"; label = "Choix de la langue"; : row{:spacer{width = 2;}} : radio_button { key = "français"; label = "Français"; } : radio_button { key = "anglais"; label = "Anglais"; } } : spacer{height=1.5; } : boxed_column { label = "Information énérale"; : edit_box { key = "nom_rv"; label = "Nom du réservoir: "; edit_width = 9; } : edit_box { key = "fluide"; label = "Fluide contenu : "; edit_width = 9; }} : spacer{height=1.5; } : boxed_column { label = "Dimensions"; : edit_box { key = "diametre"; label = "Diamètre du réservoir ( en mètre ): "; edit_width = 9; } : edit_box { key = "hauteur"; label = "Hauteur du réservoir ( en mètre ) : "; edit_width = 9; } : edit_box { key = "volume"; label = "Volume du réservoir ( en mètre cube ) : "; edit_width = 9; } : edit_box { key = "pente"; label = "Pente du réservoir ( en %) : "; edit_width = 9; } } : spacer{height=1.5; } : radio_row{ key = "choixunite"; label = "Choix de l'untité"; : radio_button { key = "mm"; label = "Millimètre"; } : radio_button { key = "cm"; label = "Centimètre"; } : radio_button { key = "m"; label = "mètre"; } } } : column { : image { key = "SLDRVexpl"; height =1; width = 60; color = 0; is_enabled = false; is_tab_stop = false; } } }: spacer{height=2; } :row { : button { key = "ouvrir"; label = "Ouvrir"; } : button { key = "enregister"; label = "Enregistrer"; } : button { key = "accept"; label = " OK "; is_default = true; } : button { key = "cancel"; label = " Annuler "; is_default = false; is_cancel = true ; } } }
alala Posté(e) le 19 février 2013 Posté(e) le 19 février 2013 Je pense que tu devrais conditionner une partie de ton code au fait que la variable ouvrir ne soit pas nulle.par exemple : (if ouvrir (progn (setq lecture_sauvegarde (open ouvrir "r")) (while (setq debut_save (read-line lecture_sauvegarde)) (setq nom_save (read-line lecture_sauvegarde)) (setq langue_save (read-line lecture_sauvegarde)) (setq fluide_save (read-line lecture_sauvegarde)) (setq hauteur_save (read-line lecture_sauvegarde)) (setq diametre_save (read-line lecture_sauvegarde)) (setq volume_save (read-line lecture_sauvegarde)) (setq pente_save (read-line lecture_sauvegarde)) (setq unite_save (read-line lecture_sauvegarde)) (setq fin_save (read-line lecture_sauvegarde)) ) (close lecture_sauvegarde) (ecriture nom_save langue_save fluide_save hauteur_save diametre_save volume_save pente_save unite_save ) ) ) ) ;) C'est en forgeant que l'on devient forgerons.Et c'est en sciant que Léonard DeVinci!
Clément.a Posté(e) le 19 février 2013 Auteur Posté(e) le 19 février 2013 bein ça change rien quand je clique sur annulé y me ferme toute les boite de dialogue, je pense pas que c'est en conditionnent la variable ouvrir que ça va changer, je pense y à un argument à metre avec getfield ou quelqie chose comme ça parce que c'est quand je clique sur annuler que ça ce passe.
alala Posté(e) le 19 février 2013 Posté(e) le 19 février 2013 Quand tu clique sur annuler Getfiled renvois un Nil tout simplement (fait un test simple hors routine). Donc il faut conditionner le reste du code au fait que si getfiled renvoie un nil tu ne fait pas appel à "Ouvrir". C'est le fait que tu cherche à lancer des commandes sur un objet nil qui plante le code et fait ressortir de l'ensemble de fenêtres! Je vois en même temps que tu attribut un me^me nom à une fonction et à une variable ... ça va poser de gros soucis ça. C'est en forgeant que l'on devient forgerons.Et c'est en sciant que Léonard DeVinci!
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant