cs_JeffC1977
Messages postés928Date d'inscriptionvendredi 10 novembre 2000StatutMembreDernière intervention23 septembre 2023
-
18 août 2007 à 13:39
P0lO
Messages postés65Date d'inscriptionmercredi 18 avril 2007StatutMembreDernière intervention12 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
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
P0lO
Messages postés65Date d'inscriptionmercredi 18 avril 2007StatutMembreDernière intervention12 juin 20081 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...
cs_JeffC1977
Messages postés928Date d'inscriptionvendredi 10 novembre 2000StatutMembreDernière intervention23 septembre 20234 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
P0lO
Messages postés65Date d'inscriptionmercredi 18 avril 2007StatutMembreDernière intervention12 juin 20081 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...