VB.Net Fichier txt dans Variable

Résolu
cs_JeffC1977
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
- 18 août 2007 à 13:39
P0lO
Messages postés
65
Date d'inscription
mercredi 18 avril 2007
Statut
Membre
Dernière intervention
12 juin 2008
- 20 août 2007 à 09:00
Salut tout le monde...

J'ai un problème avec un fichier texte que mon prog lira et faire un tableau avec ce fichier texte.
Je suis capbale (grâce à plein de monde sur ce site) de lire un fichier texte avec ce code....

Public

AppPath
As
String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase)

Dim

 Fichier
As StreamReader =
New StreamReader(AppPath &
"\Coord.txt")

Est-ce que la variable Fichier contient l'ensemble de mon fichier texte ???
Et c'est avec cette variable que je pourrai faire un tableau...

J'ai essayé avec un débug sur la variable pour voir ce qu'elle contenait, mais ca me donne pas l'info

Merci d'avance

4 réponses

Baguauda
Messages postés
219
Date d'inscription
mercredi 31 août 2005
Statut
Membre
Dernière intervention
28 novembre 2008
1
18 août 2007 à 20:08
En fait je te conseil de faire un tour sur ces lien
http://plasserre.developpez.com/vsommair.htm
http://tahe.ftp-developpez.com/fichiers-archive/vbnet.pdf
http://xo.developpez.com/tutoriel/vb.net/poo/

Sinon pour ton problème
voici comment personnelement je procède il y a probablement mieux mais bon

J'utilise l'objet FileInfo pour representé mon fichier
Ensuite j'utilise le StreamReader pour lire les lignes.
Dans ton cas problablement que je créerais une classe qui représenterais les infos contenues dans mon fichier
Ensuite avec ma ligne j'intentie ma classe
je l'affecte a une arrayList
puis pour avoir un tableau j'utilise le la propriété ToArray de arrayList.

Pour terminée va regarder les tutaux ainsi que les sources sur vbFrance.com ca t'aiderais très certainement
3
P0lO
Messages postés
65
Date d'inscription
mercredi 18 avril 2007
Statut
Membre
Dernière intervention
12 juin 2008
1
18 août 2007 à 20:05
Observe un peu ton code Fichier est un StreamReader autrement dit c'est juste un objet qui te permet de manipuler ton fichier comme un flux mais il ne contient pass directement le contenu de ton fichier...
tu obtient le contenu de ton fichier en appellant Fichier.ReadLine() qui va te rendre une ligne exemple

Dim MaChaine As String

while not Fichier.EndOfStream

MaChaine = Fichier.ReadLine()
'ton traitement

EndWhile

sinon tu peut aussi faire :

Dim MaChaine As String

MaChaine = Fichier.ReadToEnd()

qu'elle genre de tableau tu veut faire?que veut tu stocké?
tu peut faire un tableau avec n'importe quoi après en fonction du type de données et de ce que tu veut en faire tu n'utilisera pas les mêmes collections...

P0lO
0
cs_JeffC1977
Messages postés
926
Date d'inscription
vendredi 10 novembre 2000
Statut
Membre
Dernière intervention
10 septembre 2010
4
18 août 2007 à 22:07
Salut vous deux...

P0LO

J'ai un fichier texte qui ressemble à ca... séparé par des espaces.
643 2969.7949 -1306.9490 0.0000 50  'ligne pour l'exemple
665 2976.5231 -1312.9940 -0.0124 50
666 2966.4716 -1325.3946 -0.3610 50
1618 2915.9791 -1343.8044 -4.8486 59
1619 2924.2131 -1355.3778 -6.6557 21
1629 2894.2362 -1366.0733 -7.0095 59

Je veux donc faire un tableau de 5 colonnes avec un nombre de lignes correspondant au nombre de ligne de mon fichier texte.
Avec ce tableau je pourrai par exemple si j'inscrit le nombre 643 dans un textbox avoir les informations correspondant à ce nombre soir CoordX 2969.7949  CoordY 1306.9490  Hauteur =0.0000  et PCode = 50

Donc si je code comme cela.....

Private

Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click

Dim Tableau()
As Array

Dim Fichier
As
String
Dim ObjetFichier
As StreamReader =
New StreamReader(AppPath &
"\Coord.txt")

While
Not ObjetFichier.EndOfStream
   Fichier = ObjetFichier.ReadLine

End
While

End
SubDonc tout est dans ma variable Fichier. C'est avec cette variable que je pourrai faire mon tableau...

C'est bien ca ???

Je suis du genre de gars qui a besoin de voir le code pour comprendre. Les codes sur VBFrance contiennent du code que je n'ai pas nécessairement besoin. Étant donné que je suis un nouvel utilisitateur de VB.Net, j'ai de la difficulté a savoir quoi est essentiel et quoi ne l'est pas.

Mais gr^ce à vous j'avance lentement mais surement... héhéhéh :)  Je comprend de mieux en mieux
0
P0lO
Messages postés
65
Date d'inscription
mercredi 18 avril 2007
Statut
Membre
Dernière intervention
12 juin 2008
1
20 août 2007 à 09:00
si tu code comme sa en réalité ta variable fichier contiendra succéssivement toutes les lignes de ton fichier,...
si tu veut que ta variable fichier contienne tout ton fichier en un seul bloc tu doit utiliser l'appel suivant :Fichier ObjetFichier.ReadToEnd() à la place de Fichier ObjetFichier.ReadLine()

si tu utilise Fichier ) ObjetFichier.ReadToEnd() pour séparer tes lignes et mettre sa dans un tableau qui contiendra toutes lignes tu peut après utiliser :
Dim FichierLigneParLigne() As String
FichierLigneParLigne = Fichier.Split("\n".ToCharArray())

maintenant ce que je te conseille de faire c'est de créer un objet pour les données stocké dans tes lignes ou une structure comme tu veut et ensuite dans le code :

Dim ObjetFichier
As StreamReader =
New StreamReader(AppPath &
"\Coord.txt")
WhileNot ObjetFichier.EndOfStream
   Fichier = ObjetFichier.ReadLine

EndWhileEndSub

tu vient rajouter l'instanciation d'une variable de ton type ex :

Dim MesObjets() As MonTypeObjet
Dim UneLigne() As String
Dim i As Integer
i = 0

Dim ObjetFichier
As StreamReader =
New StreamReader(AppPath &
"\Coord.txt")
WhileNot ObjetFichier.EndOfStream
   UneLigne = ObjetFichier.ReadLine().Split(" ".ToCharArray())
   Dim MaLigneObjet As MonTypeObjet
    MaLigneObjet.X = Convert.ToDouble(UneLigne(0))


    MaLigneObjet.Y = Convert.ToDouble(UneLigne(1))
    ...........
    MesObjets(i) = MaLigneObjet
    i = i + 1

EndWhile

Dans mon exemple à la fin la variable MesObjets contiendra un objet du type MonTypeObjet par ligne tu aura donc ton fichier sous forme de tableau et tes données stocké et mis en forme dans un type objet...

P0lO
0