MSFlexgrid

manud31 Messages postés 81 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 16 mai 2006 - 21 janv. 2006 à 12:34
FaroukVazaha Messages postés 42 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 11 septembre 2010 - 22 janv. 2006 à 18:47
bonjour!

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 !!!!

@+

3 réponses

jannoman Messages postés 256 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 20 février 2008 1
21 janv. 2006 à 12:39
salut

en fait, je pense que dans ton fichier txt tu sauvegardes sur une ligne (du fichier) le contenu d'une ligne (de la msflexgrid) !


il faut que tu ne mettes dans ton fichier que le contenu d'une cellule (de msflex) par ligne (de fichier texte)

A+.
Thomas.
0
manud31 Messages postés 81 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 16 mai 2006
21 janv. 2006 à 13:01
hello


l'explication etait un peu longue donc je n'ai peut etre pas été clair mais ce que je veux c'est recuperer les données du fichier texte vers la MSFlexgrid
apparemment ceque tu m'expliques c'est l'inverse ... ou j'ai mal compris !!
et donc dans le sens texte-->MSFlexgrid quelqu'un saurait faire ????

@+
0
FaroukVazaha Messages postés 42 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 11 septembre 2010
22 janv. 2006 à 18:47
Chaque ligne de texte est terminée par un CR/LF dans ton fichier.
Le principe est de récuperer chaque ligne une à une et de traiter chaque champ de ta ligne .

Dim TexteLine
Dim Champ_Fe
Dim Champ_Q1
Dim Champ_Q2
Dim Champ_Mb1
Dim Champ-Mb2

Open "Fichier" For Input As #1 ' Ouvre le fichier.
Do While Not EOF(1) ' Effectue la boucle jusqu'à la fin du fichier.
Line Input #1, TexteLine ' Lit la ligne dans la variable.

"ICI TU DOIS DECOMPOSER TA LIGNE TexteLine ET EFFECTUER LE TRAITEMENT DE CHAQUE CHAMP DE TA LIGNE PUISQUE TU CONNAIS LA LONGUEUR DES CHAMP"

Champ_Fe = Mid(TexteLine, NumeroCaractereDebut, NombreDeCaracteres)
Champ_Q1 = Mid(TexteLine, NumeroCaractereDebut, NombreDeCaracteres)

etc

Loop
Close #1 ' Ferme le fichier.

Je te conseille de positionner ton programme dans le répertoire du fichier texte car il faur faire attention au nombre de caractères du chemin.

Bien sur tu peux ranger directement tes valeurs dans les cellules à partir de la lecture de la ligne d'enregistrement. Mais si tu ne connais pas très bien le déroulement de ces instructions je te conseille de les décomposer en opérations élémentaires et de faire du "pas à pas" avec VB ou VBA et de visualiser ce qui se passe pour bien comprendre le système.

Bon courage
0
Rejoignez-nous