Prendre les informations d'un fichier texte vers un tableau

cs_Myron Messages postés 10 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 25 février 2008 - 27 oct. 2006 à 11:48
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 28 oct. 2006 à 15:46
Coucou tout le monde !! :)

Je vous explique mon probleme,

J'ai un fichier texte avec ce format la :
machin1 machin2 machin3
truc1 truc2 truc3

Et sur VB j'ai fait un list avec un tableau avec ce code la :

With Me.ListView1
.MousePointer = ccDefault
.View = lvwReport
.Arrange = lvwNone
.LabelEdit = lvwManual
.BorderStyle = ccFixedSingle
.Appearance = cc3D
.OLEDragMode = ccOLEDragManual
.OLEDropMode = ccOLEDropNone

.HideColumnHeaders = False
.HideSelection = False
.LabelWrap = False
.MultiSelect = False
.Enabled = True
.AllowColumnReorder = True
.Checkboxes = False
.FlatScrollBar = False
.FullRowSelect = True
.GridLines = True
.HotTracking = False
.HoverSelection = False

.Sorted = True
.SortKey = 0
.SortOrder = lvwAscending

.ColumnHeaders.Add , , "colonne1", 1500
.ColumnHeaders.Add , , "colonne2", 1800
.ColumnHeaders.Add , , "colonne3", 2500

Donc poru ajouter mes données manuellement je peut utiliser ce code la :

Set lItem = .ListItems.Add(, , "217.109.176.13")
lItem.ListSubItems.Add , , "---"
lItem.ListSubItems.Add , , "---"

Seulement, moi je souhaite que l'importation soit automatique a partir du fichier texte c'est a dire qu'il aille chercher les infos dedans et qu'il mette les elements dans les bonnes colonnes
Les infos sont toutes separées par un espace donc ce devrais etre possible mais je cherche un code en vain depuis plusieurs jours.

Donc il y aurais une touche "chercher les informations" et ca remplirais le tableau avec les infos du TXT :)

MErci d'avance a tous :)

Bizzzzzzzzzz

5 réponses

le cancre Messages postés 292 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 27 novembre 2009
27 oct. 2006 à 13:07
Lu
aide toi le ciel t'aidera!
tu as plus besoin d'un ptit cours que du code en lui même
va faire un tour ici http://www.pise.info/vb/partie8.htm

apres tu viens répondre à ta question
0
cs_Myron Messages postés 10 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 25 février 2008
27 oct. 2006 à 14:42
Je pense alors que le code devrais donner quelque chose du style :


Dim T() as string
With Me.ListView1
.MousePointer = ccDefault
.View = lvwReport
.Arrange = lvwNone
.LabelEdit = lvwManual
.BorderStyle = ccFixedSingle
.Appearance = cc3D
.OLEDragMode = ccOLEDragManual
.OLEDropMode = ccOLEDropNone

.HideColumnHeaders = False
.HideSelection = False
.LabelWrap = False
.MultiSelect = False
.Enabled = True
.AllowColumnReorder = True
.Checkboxes = False
.FlatScrollBar = False
.FullRowSelect = True
.GridLines = True
.HotTracking = False
.HoverSelection = False

.Sorted = True
.SortKey = 0
.SortOrder = lvwAscending

.ColumnHeaders.Add , , "colonne1", 1500
.ColumnHeaders.Add , , "colonne2", 1800
.ColumnHeaders.Add , , "colonne3", 2500

Open "C:\adresses.txt" For Input As #1

i = -1

While Not Eof(1)

  i = i + 1

  Redim Preserve T(i)

  Line Input #1, T(i)

Wend

la derniere partie prends chaque ligne, la decoupant en elements et chaque element vas dans une case du tableau mais je comprends pas comment lui dire d'aller se mettre dans le tableau en fait, la le script prends les infos, les decoupe mais on les met de quelle maniere dans un tableau ?

Merci d'avance !!

Bizzzzzzzz
0
le cancre Messages postés 292 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 27 novembre 2009
27 oct. 2006 à 15:52
un exemple  avec la listview seulement
Dim Titre as String
Dim Question as String
Dim Rubrique as string

Titre = "Probleme avec Listview"
Phrase = "Comment utiliser la listview"
Rubrique =  "Divers"

on ajoute les trois variables dans la listview
Set entrer = Listview1.ListItems.Add
entrer.Text = Rubrique  ' on ajoute dans la premiere colonne
entrer.SubItems(1) = Titre ' dans la deuxieme
entrer.Subitems(2) = Question ' dans la troisieme....etc
'########################################################################

apres le wend dans ton code, pense à mettre en dessous
Close #1

dans ton cas :
Open "C:\adresses.txt" For Input As #1
        i = -1
        While Not Eof(1)
          i = i + 1
          Redim Preserve T(i)
          Line Input #1, T(i)
        Wend
Close #1
..apres
For i = 0 to Ubound(T)  Step 3 <--- on avance par 3
Set entrer = Listview1.ListItems.Add
entrer.Text = T(i)  ' on ajoute dans la premiere colonne
entrer.SubItems(1) = T(i+1) ' dans la deuxieme
entrer.Subitems(2) = T(i+2) ' dans la troisieme....etc
Next i

tu as pas besoin d'utiliser un Tableau T pour stocker tes données

un code  moins gourmand  :

Dim Lecture as String
Open "C:\adresses.txt" For Input As #1
        While Not Eof(1)
Set entrer = Listview1.ListItems.Add
Line Input #1, Lecture
entrer.text = Lecture ' on ajoute dans la 1ere colonne
Line Input #1, Lecture
entrer.Subitems(1) = Lecture ' on ajoute dans la deuxieme colonne
Line Input #1, Lecture
entrer.Subitems(2) = Lecture ' on ajoute dans la troisieme colonne 
       Wend
Close #1
0
cs_Myron Messages postés 10 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 25 février 2008
27 oct. 2006 à 22:54
Merci ca marche impec, le script met bien tout dans le tableau mais il ne separe pas les elements

si mon fichier texte contient :

test1 test2 test3

il vas faire un tableau avec 3 cases qui contiendront toute "test1 test2 test3" et nno pas test1 dans la collonne 1, test2 dans la collonne 2 et test3 dans la collonne 3

Je crois qu'il faut decouper la ligne et que c'est possible mais je ne sais pas comment :/

Merci d'avance encore lol

Bizzzzzzzzz  
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
28 oct. 2006 à 15:46
Tu pourrais utiliser la fonction Split() pour déterminer chaque élément d'une ligne de ton fichier txt


Dim strTemp as string, T() as string


Do until EOF(1)

    line input #1,strTemp  'lecture d'une ligne

    T=Split(strTemp, " ")   'séparer les items de cette ligne dans un tableau

    code pour remplir la listview avec T(0), T(1), T(2)

Loop


close #1

MPi
0
Rejoignez-nous