Recherche de code

Signaler
Messages postés
3
Date d'inscription
lundi 15 septembre 2008
Statut
Membre
Dernière intervention
16 septembre 2008
-
Messages postés
3
Date d'inscription
lundi 15 septembre 2008
Statut
Membre
Dernière intervention
16 septembre 2008
-
Bonjour,
je suis nouveau sur ce site (qui par ailleurs me semble très intéressant et très instructif), mais je recherche pour l'instant un modèle code bien particulier :

Je souhaite pouvoir récupérer dans plusieurs champs (type textbox) des données stockées dans un fichier ".txt" et séparé par un caractère spécial (";" ou ":" par exemple) pour ensuite les modifier en saisissant le nouvelles valeurs dans les champs , qui seront enfin sauvegardées dans le même fichier texte.
Malheureusement je n'ai pas trouvé mon bonheur sur ce site mais je suppose qu'un code a déjà été proposé pour ce genre de sujet. Donc je demande juste une petite visite guidée afin de trouver mon bonheur.

Merci d'avance.

PS j'utilise Visual basic 2008 express et je suis novice (un vrai qui fait juste ses premiers pas en programmation !!!)
Fafafun17

6 réponses

Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
cherche dans ton aide en ligne
la fonction readline (io.streamreader ) pour lire le fichier

 la fonction Split ( pour séparer les string)

la fonction writeline (io.streamwriter ) pour écrire le fichier

Bonjour chez vous !
Messages postés
840
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
9
Bonsoir fafafun, et bienvenu sur CS

Pour lire ton fichier texte, je te conseil un IO.File.ReadAllText ou un IO.File.ReadAllLines
Ensuite, pour séparer tes différentes données, utilise la fonction qu'indique gillardg : String.Split
En une ligne, ça donne ceci :
Dim MyDatas() As String = IO.File.ReadAllText("C:\Fichier.txt").Split(";")

Au lieu d'utiliser toute une série de TextBoxes pour afficher tes données, tu peux utiliser une ListView en définissant l'édition des labels sur True (pour permettre la modification).

Enfin, utilise IO.File.WriteAllText ou IO.File.WriteAllLines pour enregistrer les données dans le fichier.
Messages postés
3
Date d'inscription
lundi 15 septembre 2008
Statut
Membre
Dernière intervention
16 septembre 2008

Bonjour a vous deux. Tout dabord merci pour vos réponse plus que rapide.
En fait j'avais déjà trouvé une partie du code dans l'aide en ligne comme tu me le propose "gillardg".
voici donc ma portion de code :








''''''''''''''''''''''''''''''''''''








Using

MyReader


As





New

Microsoft.VisualBasic.FileIO.TextFieldParser(


"C:\essai.txt"

)MyReader.TextFieldType = FileIO.FieldType.Delimited

MyReader.SetDelimiters(



";"

)



Dim

currentRow


As





String

()



While





Not

MyReader.EndOfData



Try


currentRow = MyReader.ReadFields()








Dim

currentField


As





String








For





Each

currentField


In

currentRow




''''''''''''''      ici j'ajoute mon code          ''''''''''''''

Next








Catch

ex


As

Microsoft.VisualBasic.FileIO.MalformedLineExceptionMsgBox(



"Line "

& ex.Message &


"is not valid and will be skipped."

)



End





Try








End





While








End





Using


'''''''''''''''''''''''''''

Donc en fait j'arrive à acceder au fichier texte, mais je ne sais pas comment récupérer mes 2 champs séparer par ";"  dans mes 2 textebox.
J'ai essayé :
textbox1.text = currentfield
textbox2.text = currentfield
mais c'est évidemment sans résultat puisque déjà il faut passer du premier champ au second champ

J'éspère que j'arrive bien a me faire comprendre.
Merci d'avance pour votre aide.
A+
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
Dim

tb1, tb2


As





New

TextBox  ' pour les textbox j'ai pas mis le reste (setparent, position, visible)



Dim

test


As





String

=


My

.Computer.FileSystem.ReadAllText(


"c:\essai.txt"

)



Dim

cra()


As





String

= test.Split(


";"

)tb1.Text = cra(0)

tb2.Text = cra(1)














Bonjour chez vous !
Messages postés
840
Date d'inscription
mercredi 22 octobre 2003
Statut
Membre
Dernière intervention
7 janvier 2009
9
Ton code me semble bien compliqué pour lire un fichier texte fafafun...
Si on reprend ma petite ligne de code:

Dim MyDatas() As String = IO.File.ReadAllText("C:\Fichier.txt").Split(";")
TextBox1.Text = MyDatas(0)
TextBox2.Text = MyDatas(1)

Et c'est tout

Tu pourrais nous mettre un extrait de ton fichier texte, ça nous aiderait....
Messages postés
3
Date d'inscription
lundi 15 septembre 2008
Statut
Membre
Dernière intervention
16 septembre 2008

Mille merci,

Grace à vous (gillardg et kevin.ory) j'ai les éléments qu'il me fallait.
En effet en voyant vos codes je trouve de suite les miens bien compliqués. Chez vous c'est plus simple à comprendre et surtout plus court !!!

Je n'avais pas saisi l'utilité "split" mais maintenant ok je comprend mieux.

Bref mon problème est résolu avec votre aide, donc (re) merci à vous.
Voici pour finir la partie de mon code qui me manquais:

Dim

 champ() 
As
String =
My.Computer.FileSystem.ReadAllText(
"c:\essai.txt").Split("|"
)
TXT_Date.Text champ(0)TXT_Position.Text champ(1)

Bonne continuation
Fafafun

Rien ne sert de courir ... ;-)