J'arrive pas avec les MSFlexgrid

Résolu
manud31 Messages postés 81 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 16 mai 2006 - 21 janv. 2006 à 19:00
manud31 Messages postés 81 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 16 mai 2006 - 23 janv. 2006 à 13:48
bonsoir !

je souhaite recuperer, dans une MSFlexgrid, des données d'un fichier texte qui sont présentées entre la ligne 54 et la ligne 66, sous la forme :

Efforts en [N] et moments en [N.mm] appliqués aux vis 1 et 2:


i Fe q1 q2 mb1 mb2
0 0.000000 11592.219727 11592.220703 -5.925808 -10.161422
1 1500.000000 11724.924805 11511.783203 299.094604 -0.084669
2 3000.000000 12510.312500 11362.174805 815.524414 -34.197327
3 4500.000000 13973.162109 11155.344727 1556.191284 -58.979328
4 6000.000000 15694.170898 10940.443359 2349.290527 -75.520203
5 7500.000000 17699.304688 10712.090820 3185.675293 -85.139069
6 9000.000000 19906.230469 10516.958984 4037.600098 -71.520195
7 10500.000000 22109.472656 10321.558594 4889.264648 -57.962730
8 12000.000000 24574.062500 10164.595703 5758.148438 -18.965878
9 13500.000000 27043.787109 10018.149414 6624.459961 23.973532
10 15000.000000 29502.431641 9869.218750 7490.105957 65.135223

voici mon code :

Private Sub efforts_moments_Click()
'Ecriture des données dans un tableau
'Affichage des entêtes de ligne et de colonne


For i = 1 To 14
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = i
Next i
For i = 1 To 9
MSFlexGrid1.Row = 0
MSFlexGrid1.Col = i
MSFlexGrid1.Text = Chr(64 + i)
Next i


'Définition de la largeur des colonnes


MSFlexGrid1.ColWidth(1) = 1000
For i = 2 To 9
MSFlexGrid1.ColWidth(i) = 700
Next i


'Définition de l'alignement des colonnes


For i = 2 To 9
MSFlexGrid1.ColAlignment(i) = 1
Next i


'Lecture des données à afficher et affichage


Open "C:\Documents and Settings\Doriane\Bureau\alex\cinquieme_année\PFE\PFE_total\Output_MS_2b_CHAKHARI.txt" For Input As #1
For i = 54 To 66
MSFlexGrid1.Row = i
For j = 1 To 6
MSFlexGrid1.Col = j
Input #1, a
MSFlexGrid1.Text = a
Next j
Next i


Close #1


End Sub

En resultat ma MSflexgrid me donne dans chaque cellule le contenu complet d'une ligne ex ma ligne 1 (dont je n'ai pas besoin d'ailleurs car elle ne contient que du texte!) est stockée dans la cellule A1 ... et ainsi de suite..

si quelqu'un connait comment faire pour obtenir que les valeurs de mes lignes 54 à 66 comme enoncé si dessus !!!!

@+

2 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 25
21 janv. 2006 à 22:49
Déjà, il ne faut pas faire Input#1,a

mais

Line Input#1,a



ce qui te permet de récupérer dans a une ligne complète de ton fichier texte.

Ensuite, il faut séparer tes données, car elles sont toutes les unes derrière les autres, séparées par des espaces



Dim tablo() as string



tablo=split(a," ",,vbTextCompare)



tablo est alors un tableau (eh eh) contenant toutes les valeurs d'une
ligne de ton fichier texte, de tablo(0) à tablo(nbElements-1)

=======================================





Dim tablo() As String



[...]

Open "C:\Documents and Settings\Doriane\Bureau\alex\cinquieme_année\PFE\PFE_total\Output_MS_2b_CHAKHARI.txt" For Input As #1



' On lit les 53 premières lignes et on les ignore.

For i=1 to 53

Line Input#1,a

Next i



For i = 1 to 13 (13 lignes : de la 54ème à la 66ème)


Line Input#1,a

tablo = Split(a," ",,vbTextCompare)



MSFlexGrid1.Row = i
For j = 1 to 6
MSFlexGrid1.Col = j
MSFlexGrid1.Text = tablo(j-1)
Next j
Next i



Close #1







Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
3
manud31 Messages postés 81 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 16 mai 2006
23 janv. 2006 à 13:48
la fonction au dessus m'a convenu

j'ai juste eu une petite modif qui se trouve dans un question appelé pb fonction split



merci a econs
0
Rejoignez-nous