Gambas France BETA


Pas de compte ? Incription

[résolu] Probleme enregistrer/ouvrir

Ce sujet est résolu.

1
AuteurMessages
metalluca#1 Posté le 29/6/2010 à 13:50:00
bonjours a tous, comme l'indique mon sujet j'ai un probleme avec la fonction enregistrer sous.
J'utilise Gambas2, j'ai fait un petit projet simple où j'ai plusieurs textbox. Je me suis servis d'un exemple publier sur se site pour apprendre la fonction enregistrer sous et ouvrir j'ai donc créer un menu pour enregistrer sous :

PUBLIC SUB Menu4_Click()

Dialog.Filter = ["*", "All Files"]
IF Dialog.SaveFile() THEN RETURN
File.Save(Dialog.Path, Textbox1.Text)

END

et un pour ouvrir :

PUBLIC SUB Menu2_Click()

DIM monfichier AS File
DIM maligne AS String
'ouverture fenetre dialogue pour image
Dialog.Path = sPath
IF Dialog.OpenFile() THEN RETURN
sPath = Dialog.Path
monfichier = OPEN sPath FOR INPUT
WHILE NOT Eof(monfichier)
LINE INPUT #monfichier, maligne
TextBox1.Insert(maligne)

WEND

END

apres avoir mis

PRIVATE sPath AS String

tout au dessus du code comme préciser dans l'exemple. Jusque la tout marche bien mais moi j'ai plusieurs textbox et il faut que j'enregistre leurs contenus dans un fichier que j'ouvre avec le menu ouvrir et la je bloque j'ai essayer de trifouiller un peu mais sans resultat.

Merci de m'aider
metalluca#2 Posté le 30/6/2010 à 11:37:00
o_O toujours pas de réponse ? allez quoi soyez sympas ! :D
jeanyvon#3 Posté le 30/6/2010 à 12:55:00
Gambas? Ma! Et gustoSalut
Bienvenu sur ce forum

Tu dois être plus que débutant en basic
ou alors
Gambas est un langage mono-textbox

voir la doc pour enregistrer et écrire des fichiers......ici

:scratch:
A+
JY
Vieillir? On peut retarder mais pas y échapper!
metalluca#4 Posté le 30/6/2010 à 18:53:00
En effet je débute je gère les commandes simples mais j'ai encore beaucoup a apprendre
Merci pour ta réponse
jeanyvon#5 Posté le 30/6/2010 à 19:07:00
Gambas? Ma! Et gustoRe-Hello!
Si tu veux un avis ne copie pas les exemples, ils ne t'aident que si tu comprends. Mais là, tu n'es plus utilisateur d'un logiciel, c'est toi qui l'écrit. ça implique une grande différence au niveau de la création d'un fichier.
Dans ton cas il te faut créer un fichier qui contient tous ce que tu veux y mettre c'est à dire le contenu de tes textbox. il faut aussi vérifier le contenu de ces contrôles avant d'en enregistrer le contenu.

Voilà
JY
Vieillir? On peut retarder mais pas y échapper!
spheris#6 Posté le 30/6/2010 à 21:33:00
Bonjour et bienvenue Metalluca ,

Jusque la tout marche bien mais moi j'ai plusieurs textbox et il faut que j'enregistre leurs contenus dans un fichier que j'ouvre avec le menu ouvrir et la je bloque j'ai essayer de trifouiller un peu mais sans resultat.


N'oublie pas que la boite de dialogue ouvrir te renvoi un texte qui correspond au chemin.
Il te suffit de la récupérer comme ceci :

dim monchemin as string
monchemin = (dialog.path)

pour ouvrir ton fichier :
1
DIM monfichier AS filemonfichier = OPEN monchemin & myfile FOR APPENDprint #monfichier, textbox1.textprint #monfichier,texbox2.text


ou si tu veux que sur une ligne séparée par un point virgule


1
PRINT #monfichier, textbox1.text & ";" & textbox2.textclose monfichier


;) ;)
metalluca#7 Posté le 30/6/2010 à 22:09:00
ok dites mi où je me trompe pour la fonction ouvrir j'ai mis :

PUBLIC SUB Menu2_Click()

DIM monfichier AS File
DIM maligne AS String
DIM monchemin AS String
Dialog.Path = sPath
IF Dialog.OpenFile() THEN RETURN
sPath = Dialog.Path
monfichier = OPEN sPath FOR INPUT
WHILE NOT Eof(monfichier)
LINE INPUT #monfichier, monchemin
Textbox1.Insert(monchemin)
WEND
WHILE NOT Eof(monfichier)
LINE INPUT #monfichier, monchemin
Textbox2.Insert(monchemin)
WEND

END

et pour enregistrer sous j'ai mis :

PUBLIC SUB Menu4_Click()

Dialog.Filter = ["*", "All Files"]
IF Dialog.SaveFile() THEN RETURN
File.Save(Dialog.Path, Textbox1.Text)
File.Save(Dialog.Path, Textbox2.text)

END

je suis sure qu'il y a quelque chose de faux car j'enregistre le contenu des 2 textbox grace a mon menu4 et j'ouvre avec le menu 2 cepadant le fichier s'ouvre mais le contenu de ma textbox2 se retrouve dans la 1 et la 2 reste vide o_O
merci de m'éclairer

spheris#8 Posté le 1/7/2010 à 06:39:00
Metalluca,
il te faut ouvrir une deuxieme fois ton fichier comme ceci :

1
DIM monfichier AS FileDIM maligne AS StringDIM monchemin AS StringDialog.Path = sPathIF Dialog.OpenFile() THEN RETURNsPath = Dialog.Pathmonfichier = OPEN sPath FOR INPUTWHILE NOT Eof(monfichier)LINE INPUT #monfichier, moncheminTextbox1.Insert(monchemin)WENDCLOSE #monfichiermonfichier = OPEN sPath FOR INPUTWHILE NOT Eof(monfichier)LINE INPUT #monfichier, moncheminTextbox2.Insert(monchemin)WENDCLOSE #monfichier


textbox1 et 2 seront bien remplies.
par contre sauver 2 fois par :
1
File.Save(Dialog.Path, Textbox1.Text)File.Save(Dialog.Path, Textbox2.text)


Je n'en vois pas l'intéret. Peux tu m'expliquer pourquoi tu veux faire cela ?
car tu enregistres 2 fois le même fichier avec son contenu identique.
et n'oublie pas de declarer PUBLIC spath AS string, sinon tu auras une erreur.
;) ;)
metalluca#9 Posté le 1/7/2010 à 07:24:00
en fait la je sais pas trop se que j'ai fait niveau code mais mon but dans le programme c'est de remplir les 2 textbox d'enregistrer leurs contenu dans un fichier et de les rouvrir plus tard pour que l'utilisateur de mon programme puisse récupérer ses données au lieu de tout remplir a chaque fois.

Merci pour ton aide mais un problemme subsiste : j'enregistrer le contenue des 2 textbox ( qui est differant ) et quand j'ouvre, la textbox1 contien le text de la 2 mais la 2 comporte bien son text ( je pense que c'est un probleme avec l'enregistrement
spheris#10 Posté le 2/7/2010 à 09:13:00
Metalluca,
tiens ta solution toute chaude sortie du four :
http://gambaslinux.eg2.fr/img/divers/metalluca-0.0.3.tar.gz
avec le code qui va bien :
1
PUBLIC SUB Button1_Click()'bouton enregistrerDIM spath AS StringDIM monfichier AS FileDialog.Path = Application.PathIF Dialog.savefile() THEN RETURNsPath = Dialog.Pathmonfichier = OPEN spath FOR CREATE PRINT #monfichier, TextBox1.TextPRINT #monfichier, TextBox2.TextCLOSE monfichierENDPUBLIC SUB Button2_Click()'bouton ouvrirDIM spath AS StringDIM monfichier AS FileDialog.Path = Application.PathIF Dialog.openfile() THEN RETURNsPath = Dialog.Pathmonfichier = OPEN spath FOR INPUT LINE INPUT #monfichier, TextBox1.TextLINE INPUT #monfichier, TextBox2.TextCLOSE monfichierEND


J'espere que cela t'aidera !

:geek: ;) ;)
metalluca#11 Posté le 3/7/2010 à 08:19:00
c'est bon ce code marche merci a tout ceux qui m'on aider :D
spheris#12 Posté le 3/7/2010 à 21:20:00
Metalluca,
n'oublie pas que le logiciel que tu développes intéresse peut être un autre Gambasien et que tu peux mettre ton soft (si tu le veux bien sur) sur http://gambasforge.org ou http://gambaslinux.eg2.fr
A+
;)
1