darkflyer
Messages postés39Date d'inscriptionsamedi 3 juin 2006StatutMembreDernière intervention28 mai 2007
-
7 nov. 2006 à 18:02
darkflyer
Messages postés39Date d'inscriptionsamedi 3 juin 2006StatutMembreDernière intervention28 mai 2007
-
7 nov. 2006 à 19:17
bonjour,
je souhaite ouvrir un fichier .txt avec VB05, et stocker ces données dans un tableau pour cela j'utilise le morceau de code suivant:
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
Dim filenum As Integer
Dim FILE_NAME As String = OpenFileDialog1.FileName
filenum = FreeFile()
'FileOpen(filenum, FILE_NAME, OpenMode.Input)
If System.IO.File.Exists(FILE_NAME) = True Then
Dim objReader As New System.IO.StreamReader(FILE_NAME)
Dim ligne As Integer = 0
Dim s As String
Dim matrix(0 To 99, 0 To 999) As String
Dim x As Integer = 0
'While Not EOF(filenum)
Do While objReader.Peek() > -1
Dim line As String
line = objReader.ReadLine() & vbNewLine
ligne = ligne + 1
Dim split As String() = line.Split(" ")
For Each s In split
x = x + 1
matrix(ligne, x) = s
Next s
Loop
'End While
TextBox2.Text = matrix(1, 1)
TextBox3.Text = matrix(2, 1)
TextBox9.Text = matrix(3, 1)
TextBox1.Text = matrix(4, 1)
TextBox10.Text = matrix(5, 1)
ComboBox4.Text = matrix(6, 1)
TextBox11.Text = matrix(7, 1)
TextBox12.Text = matrix(8, 1)
TextBox13.Text = matrix(9, 1)
TextBox14.Text = matrix(10, 1)
ComboBox3.Text = matrix(11, 1)
TextBox7.Text = matrix(12, 1)
TextBox8.Text = matrix(13, 1)
ComboBox2.Text = matrix(14, 1)
TextBox15.Text = matrix(15, 1)
TextBox16.Text = matrix(16, 1)
TextBox17.Text = matrix(17, 1)
TextBox18.Text = matrix(18, 1)
TextBox19.Text = matrix(19, 1)
ComboBox1.Text = matrix(20, 1)
objReader.Close()
fileclose()
End If
End If
End Sub
le pb c'est qu'en executant le code, tout ce que j'obtient c'est la premiere valeur!!! comme si les autres lignes n'existaient pas!!
queelqu'un sait t-il ce que c'est le pb dans mon code
merci d'avance!
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 7 nov. 2006 à 18:49
Et bien il faut refaire un split sur chaque ligne (avec espace, point, bref, ton séparateur), et tu récupères que la première valeur du split (ex : PremValeurDeLigne split(line): matrix(ligne) PremValeurDeLigne(0) /ex)
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
TMONOD
Messages postés256Date d'inscriptionmardi 25 novembre 2003StatutMembreDernière intervention 6 novembre 20091 7 nov. 2006 à 18:33
Bonsoir,
Oulala, y a du boulot !
Quelques conseils
1/ Pour récuperer le nom de ton fichier utilise plutôt une OpenFileDialog (gà prendre dans les outils et faire glisser sur ton form)
ensuite tu l'ouvre par OpenfileDialog1.show()
Le fichier avec son chemin son ensuite stockés dans OpenfileDialog1.FileName
2/ Utilise plutôt une datagrid pour afficher tes données plutôt que tout ce tintouin avec matrix et ribambelle de textboxes ! :
- Créer une datatable du nom que tu veux
- A chaque lecture d'une ligne tu fait ton split dans un tableau. ca c'est bon
- Ensuite tu créer une DataRow avec le bon nombre de datacolums
en admettons que ta datarow se nomme DTR
pour chaque élément du tableau tu fais DTR(i)=ligne(i)
à la fin du affecte ta datatable à la datasource de ta datagrid et le tour est joué !!
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 7 nov. 2006 à 18:35
salut,
Dim matrix(0 To 99<strike>, 0 To 999</strike>) As String
et dans
Do While objReader.Peek() > -1
Dim line As String
line = objReader.ReadLine() & vbNewLine
<strike>ligne = ligne + 1</strike>
Dim split As String() = line.Split(" ")
For Each s In split
<strike>x = x + 1</strike>
ligne = ligne + 1
matrix(ligne<strike>, x</strike>) = s
Next s
Loop
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--