Sauvegarde textbox [Résolu]

Messages postés
37
Date d'inscription
jeudi 20 janvier 2011
Dernière intervention
10 janvier 2014
- - Dernière réponse : overdoseBMTH
Messages postés
37
Date d'inscription
jeudi 20 janvier 2011
Dernière intervention
10 janvier 2014
- 16 août 2011 à 14:51
Salut tout le monde !

J'ai deux petite question :

J'avais trouver un code pour remplacer les points par des virgules (dans texbox) qui ressemble à ca :

textbox.text = Replace(textbox.Text, '.', ',')

Mais impossible de le retrouver, si quelqu'un a une idée ^^


Ensuite, j'ai plusieurs textbox dont j'aimerai enregistrer le contenu (dans un .ini ou autre, peu importe) en plusieur ligne et que je peu charger à l'ouverture du programme (dans le bon ordre si possible)

J'avoue avoir trouver plusieur solution en VB mais pas en .net, de plus j'ai entendu parler d'une methode qui existe sous vb.net 2010, j'avoue ne pas avoir beaucoup d'info la dessus, sa serai une truc integrer à VB (peut être un code pre-programmer ?) j'ai lu ca sur un forum, un mec qui disais qu'il avais utiliser ça sur son navigateur pour enregistré l'historique..

Peut importe la methode, si quelqu'un pouvais m'aidé sa serai génial.

Merci d'avance =)
Afficher la suite 

Votre réponse

20/22 réponses

Meilleure réponse
Messages postés
2859
Date d'inscription
mardi 15 avril 2003
Dernière intervention
26 novembre 2013
17
3
Merci
Salut,

Si tu cherches à enregistrer le contenu de l'application pour le ré-afficher au démarrage de celle-ci alors il faut utiliser les paramètres d'application. C'est une classe te permettant d'enregistrer un type de donnée précis dans un fichier et cela se fait très facilement (un mécanisme de sérialisation XML est mis en place automatiquement).

Pour cela il te faut faire un double-clic sur l’icône "My Project" dans l'explorateur de projets puis aller à l'onglet paramètres. Si le nombre de TextBox de ton application est connu à l'avance alors tu peux créer autant de variable que tu as de TextBox. Nomme ces paramètres correctement, choisi le type String et enregistre ton projet. Par la suite dans ton code il te reste plus qu'à retrouver ces variable.

Exemple pour une variable appelée NomClient :

Public Class Form1

    'Événement déclenché au chargement du formulaire (avant son affichage)
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        'On charge le contenu du paramètre NomClient dans la TextBox
        txtBox_Nom.Text = My.Settings.NomClient
        REM: l'objet My.Setting contient la liste de tous les paramètres d'application
    End Sub

    'Événement déclenché à la fermeture du formulaire (avant sa disparition)
    Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        'On défini le contenu de la variable NomClient de My.Settings
        My.Settings.NomClient = txtBox_Nom.Text
        'On appel la procédure Save pour demander la sauvegarde des informations.
        My.Settings.Save()
        REM: ici on utilise l'événement FormClosing mais on pourrait tout aussi bien mettre ce code dans
        REM: la procédure "click" d'un bouton pour en faire un bouton enregistrer.
    End Sub

End Class



Si tu ne connais pas le nombre de TextBox à l'avance (en cas de création dynamique) alors il faut utiliser un seul paramètre de type Collection.

Voila, ++

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 122 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Mayzz
0
Merci
Salut Overdose,
Pour ta première méthode tu peux essayer ça déjà:

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
TextBox1.Text = Replace(TextBox1.Text, ".", ",", 1, TextBox1.TextLength, CompareMethod.Text)
SendKeys.SendWait("{End}")
End Sub
Le "1" c'est le premier emplacement dans le texte où il doit commencer à chercher et le "TextBox1.TextLength" le dernier chr



CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
0
Merci
En suite tu peux faire comme ça:
'En VB.NET 2010
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'On va lui dire comment s'appelle ton fichier et où il se trouve
'Dans ce cas il est dans le repertoire où se trouve ton application
Dim Tonfichier As String = Application.StartupPath & "\test.ini"
'On va créer le fichier:
Dim creeTexte() As String = {"Salut", "Et", "Bienvenue", "..."}
File.WriteAllLines(Tonfichier, creeTexte)

'Bon la j'ai crée et lu ton fichier au démarrage de l'application mais tu peux les mettre ailleurs

'Et la je le lis et je l'affiche dans un ListBox
If File.Exists(Tonfichier) = True Then
Dim readText() As String = File.ReadAllLines(Tonfichier)
Dim s As String
For Each s In readText
ListBox1.Items.Add(s)
Next
End If
End Sub


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Messages postés
37
Date d'inscription
jeudi 20 janvier 2011
Dernière intervention
10 janvier 2014
1
0
Merci
Merci à toi pour tes réponses =)

Alors pour le remplacement des points par les virgules, t'as méthodes et bien plus efficasse que celle que j'utilisais avant =)

Par contre j'ai un niveau trop faible en VB pour comprendre ton deuxieme message =/
Enfin, je comprend dans les grandes ligne mais j'ai du mal à voir comment je peu adapter sa en fonction de mes besoins =/
Commenter la réponse de overdoseBMTH
0
Merci
Re:
Une autre méthode:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
On Error GoTo Err 'Si ton fichier n'esiste pas il va à la ligne 'Err'
Dim Tonfichier As String = Application.StartupPath & "\test.ini"
FileOpen(1, Tonfichier, OpenMode.Input)
FileClose()
'Création du fichier
FileOpen(1, Tonfichier, OpenMode.Append)
Print(1, "Ligne de texte 1" & vbCrLf)
Print(1, "Ligne de texte 3" & vbCrLf)
Print(1, "Ligne de texte 3" & vbCrLf)
FileClose()

'lecture du fichier et affichage sur le ListBox
Dim Str As String
FileOpen(1, Tonfichier, OpenMode.Input)
'On fait une boucle jusqu'à la fin du fichier
Do While Not EOF(1)
Str = LineInput(1)
ListBox1.Items.Add(Str)
Loop
FileClose()
Exit Sub
Err:
MsgBox("'" & Tonfichier & "' n'existe pas!...")


End Sub

A+


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
0
Merci
Je t'ai envoyé deux façon de le faire, tu copies le code, tu les mets en route et tu vas vois c'est pas très compliqué..
Oui pour le "Replace" c'est plus complet, il te demande où (dans le texte) tu veux commencer et finir à remplacer des caractères par exemple
Attention j'ai fait tout ça sous VB 2010, si t'as une autre version tu risques d'avoir des erreurs.



CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Messages postés
37
Date d'inscription
jeudi 20 janvier 2011
Dernière intervention
10 janvier 2014
1
0
Merci
Merci beaucoup =)

Je suis sous VB 2010 aussi donc pas de soucis. Pour la sauvegarde, je vais essayer, je me met dessus tout de suite =)
Commenter la réponse de overdoseBMTH
0
Merci
C'est encore moi..
J'ai oublié.. dans la première méthode avant le "Public Class Form1" tu mets "Imports System.IO"
ça fait ça:

Imports System.IO
Public Class Form1
...

CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Messages postés
37
Date d'inscription
jeudi 20 janvier 2011
Dernière intervention
10 janvier 2014
1
0
Merci
Enfaite... J'ai juste une question : Pourquoi tes deux exemples sont basé sur un listbox ?
J'ai compris comment sa fonctionne mais j'ai aucune idée de comment faire la meme chose avec 15 textbox en meme temps
Commenter la réponse de overdoseBMTH
0
Merci
Alors, j'ai mis un listbox comme ça mais tu peux l'afficher n'importe où.
Le problème c'est que dans le temps du VB6 on avait les "index" dans les contrôles (tu pouvais faire "textbox1(0)", textbox1(1) etc) la tu peux le faire aussi mais il faut les créer dans le code.
Je vais te trouver un exemple plus tard
Dis-donc il est 4h du mat chez toi, chez moi il est 22h...


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Messages postés
37
Date d'inscription
jeudi 20 janvier 2011
Dernière intervention
10 janvier 2014
1
0
Merci
Oui mais je me suis telement casser la tête à essayer de regler tout mes problemes que j'en ai perdu le sommeil =p
Commenter la réponse de overdoseBMTH
0
Merci
Excuse pour l'attente...
Tu mets d'abord 4 textbox sur ta form

Imports System.IO
Public Class Form1
Dim MonTexte(0 To 3) As TextBox
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
MonTexte(0) = TextBox1
MonTexte(1) = TextBox2
MonTexte(2) = TextBox3
MonTexte(3) = TextBox4

'On va lui dire comment s'appelle ton fichier et où il se trouve
'Dans ce cas il est dans le repertoire où se trouve ton application
Dim Tonfichier As String = Application.StartupPath & "\test.ini"
'On va créer le fichier:
Dim creeTexte() As String = {"Salut", "Et", "Bienvenue", "..."}
File.WriteAllLines(Tonfichier, creeTexte)

'Bon la j'ai crée et lu ton fichier au démarrage de l'application mais tu peux les mettre ailleurs

'Et la je le lis et je l'affiche dans un TextBox
If File.Exists(Tonfichier) = True Then
Dim readText() As String = File.ReadAllLines(Tonfichier)
Dim s As String
Dim Rt As Integer = 0
For Each s In readText
MonTexte(Rt).Text = s.ToString
Rt += 1
' au lieu de : ListBox1.Items.Add(s)
Next
End If
End Sub
End Class

Dis moi si ça a marché...



CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Messages postés
37
Date d'inscription
jeudi 20 janvier 2011
Dernière intervention
10 janvier 2014
1
0
Merci
Je test sa de suite =)

A quoi correspond cette ligne ? :

Dim creeTexte() As String = {"Salut", "Et", "Bienvenue", "..."}
Commenter la réponse de overdoseBMTH
Messages postés
37
Date d'inscription
jeudi 20 janvier 2011
Dernière intervention
10 janvier 2014
1
0
Merci
Alors, en bidouillant un peu j'ai reussi à metre ce que je voulais dans le .ini, par contre quand je veux recharger ce que j'ai enregistrer sa ne marche pas, tout et bien ecrit dans le .ini mais rien ne revien dans les textbox =/
Commenter la réponse de overdoseBMTH
0
Merci
C'est comme Dim creeTexte as string = "ton texte"
Tu crées une constante texte (qui s'appelle creeTexte) et tu lui attribues une valeur ("ton texte")

Sauf que dans ce cas il y a plusieurs lignes première ligne: "Salut"
Deuxième: "Et"
troisième: "Bienvenue"
quatrième: "..."
Et tu peux l'inscrire dans un fichier texte et ça s'affichera:

Salut
Et
Bienvenue
...

Si tu veux mon avis.. ça ne sert à rien de se prendre la tête le soir fatigué.
Les meilleurs idées arrivent le matin de bonne heure.
CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Messages postés
37
Date d'inscription
jeudi 20 janvier 2011
Dernière intervention
10 janvier 2014
1
0
Merci
Tu as raison, je vais dormir un peu, je me remet la dessus dans l'apres midi.
Bonne nuit à toi et encore merci =)
Commenter la réponse de overdoseBMTH
0
Merci
regarde bien si t'as:
Dim MonTexte(0 To 3) As TextBox
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
MonTexte(0) = TextBox1
MonTexte(1) = TextBox2
MonTexte(2) = TextBox3
MonTexte(3) = TextBox4
et la suite .....


regarde aussi:
If File.Exists(Tonfichier) = True Then 'attention au chemin du fichier s'il n'existe pas il fera rien...

Dim readText() As String = File.ReadAllLines(Tonfichier)
Dim s As String
Dim Rt As Integer = 0
For Each s In readText
MonTexte(Rt).Text = s.ToString
Rt += 1
' au lieu de : ListBox1.Items.Add(s)
Next
End If


Tu devrais créer un nouvel projet pour tester d'abord, n'utilise pas ton programme déjà fait...

CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
0
Merci
De rien
Bonne nuit a toi aussi...


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
Messages postés
37
Date d'inscription
jeudi 20 janvier 2011
Dernière intervention
10 janvier 2014
1
0
Merci
Merci beaucoup pour cette méthode, je croit que c'est ça que j'avais vu dans un forum.

Je vais essayer de l'utiliser en me servant de ton exemple =)
Commenter la réponse de overdoseBMTH
Messages postés
37
Date d'inscription
jeudi 20 janvier 2011
Dernière intervention
10 janvier 2014
1
0
Merci
J'ai reussi ! C'est plus que simple =) Merci beaucoup pour ton aide =)
Commenter la réponse de overdoseBMTH

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.