Sauvegarde textbox

Résolu
overdoseBMTH Messages postés 37 Date d'inscription jeudi 20 janvier 2011 Statut Membre Dernière intervention 10 janvier 2014 - 16 août 2011 à 02:04
overdoseBMTH Messages postés 37 Date d'inscription jeudi 20 janvier 2011 Statut Membre 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 =)

22 réponses

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
16 août 2011 à 12:20
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.
3
Utilisateur anonyme
16 août 2011 à 02:49
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
0
Utilisateur anonyme
16 août 2011 à 03:16
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
0
overdoseBMTH Messages postés 37 Date d'inscription jeudi 20 janvier 2011 Statut Membre Dernière intervention 10 janvier 2014 1
16 août 2011 à 03:22
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 =/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
16 août 2011 à 03:43
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
0
Utilisateur anonyme
16 août 2011 à 03:48
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
0
overdoseBMTH Messages postés 37 Date d'inscription jeudi 20 janvier 2011 Statut Membre Dernière intervention 10 janvier 2014 1
16 août 2011 à 03:55
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 =)
0
Utilisateur anonyme
16 août 2011 à 03:56
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
0
overdoseBMTH Messages postés 37 Date d'inscription jeudi 20 janvier 2011 Statut Membre Dernière intervention 10 janvier 2014 1
16 août 2011 à 04:02
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
0
Utilisateur anonyme
16 août 2011 à 04:10
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
0
overdoseBMTH Messages postés 37 Date d'inscription jeudi 20 janvier 2011 Statut Membre Dernière intervention 10 janvier 2014 1
16 août 2011 à 04:14
Oui mais je me suis telement casser la tête à essayer de regler tout mes problemes que j'en ai perdu le sommeil =p
0
Utilisateur anonyme
16 août 2011 à 04:40
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
0
overdoseBMTH Messages postés 37 Date d'inscription jeudi 20 janvier 2011 Statut Membre Dernière intervention 10 janvier 2014 1
16 août 2011 à 05:05
Je test sa de suite =)

A quoi correspond cette ligne ? :

Dim creeTexte() As String = {"Salut", "Et", "Bienvenue", "..."}
0
overdoseBMTH Messages postés 37 Date d'inscription jeudi 20 janvier 2011 Statut Membre Dernière intervention 10 janvier 2014 1
16 août 2011 à 05:15
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 =/
0
Utilisateur anonyme
16 août 2011 à 05:19
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
0
overdoseBMTH Messages postés 37 Date d'inscription jeudi 20 janvier 2011 Statut Membre Dernière intervention 10 janvier 2014 1
16 août 2011 à 05:24
Tu as raison, je vais dormir un peu, je me remet la dessus dans l'apres midi.
Bonne nuit à toi et encore merci =)
0
Utilisateur anonyme
16 août 2011 à 05:25
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
0
Utilisateur anonyme
16 août 2011 à 05:27
De rien
Bonne nuit a toi aussi...


CF2i - Guadeloupe
Ingénierie Informatique
0
overdoseBMTH Messages postés 37 Date d'inscription jeudi 20 janvier 2011 Statut Membre Dernière intervention 10 janvier 2014 1
16 août 2011 à 14:37
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 =)
0
overdoseBMTH Messages postés 37 Date d'inscription jeudi 20 janvier 2011 Statut Membre Dernière intervention 10 janvier 2014 1
16 août 2011 à 14:46
J'ai reussi ! C'est plus que simple =) Merci beaucoup pour ton aide =)
0
Rejoignez-nous