Transférer le contenu d'un fichier texte vers une ListView [Résolu]

DarkKnight1418 3 Messages postés dimanche 28 février 2016Date d'inscription 29 février 2016 Dernière intervention - 28 févr. 2016 à 02:07 - Dernière réponse : cs_Le Pivert 5065 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 avril 2018 Dernière intervention
- 1 mars 2016 à 09:24
Bonjour tout le monde,

Je me suis récemment lancé dans le Visual Basic et je me retrouve avec un soucis: J'ai ajouté une ressource à mon projet(fichier texte) et je souhaite pouvoir utiliser son texte dans une ListView.

Mon fichier serait structuré comme suit:
"Item"|"SubItem1"|"SubItem2"
"Item"|"SubItem1"|"SubItem2"
[...]

Bien sûr, chaque ligne est une ligne différente dans la ListView.

Et tant qu'à être là, comment écrire du texte ligne par ligne dans le style plus haut?

En espérant avoir été clair....
Merci d'avance!
Afficher la suite 

9 réponses

Répondre au sujet
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 28/02/2016 à 05:19
0
Utile
Bonjour,

Cette discussion a été ouverte dans le forum général de Visual Basic, qui comprend les sous-forums VB.Net, VB6, VBA et VBS.
Il se trouve que la réponse à la question posée est très différente selon que l'on développe sous VB6, VB.Net ou VBA.
En l'état, donc, la seule réponse possible est celle du mécanisme de la démarche !
- ouverture en lecture du fichier texte
- lecture ligne par ligne (une boucle While)
--- éclatement (méthode Split) de chaque ligne lue par rapport au caractère |
---- insertion dans la listview des articles ainsi obtenu
- fermeture du fichier texte

EDIT : Quoi qu'il en soit (quel que puisse être ton outil de développement VB), tu trouveras sur le présent site, qui dispose d'un moteur de recherche à utiliser sans modération avant toute question, une foultitude de discussions ouvertes et sources déposées concernant la lecture et l'écriture dans un fichier Texte.
Je pense que le reste (ajouts à la listview) est une chose que tu maîtrises déjà. Dans le cas contraire, cela signifierait que tu es venu chercher du "tout-cuit" (la totalité de ta démarche) sur ce forum dont telle n'est pas la vocation fondamentale.
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Commenter la réponse de ucfoutu
cs_Le Pivert 5065 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 avril 2018 Dernière intervention - 28 févr. 2016 à 07:47
0
Utile
2
Bonjour,

Voir cette discution:


http://codes-sources.commentcamarche.net/forum/affich-10057095-importer-fichier-texte-listview

un bonjour matinal à ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 28 févr. 2016 à 10:14
Bonjour, Le Pivert,
Trop d'interrogations pour répondre valablement à ce stade :
- version de VB encore inconnue
- structure exacte du fichier texte "floue". Ce qu'il nous en montre pose questions :
--- les guillemets que l'on y voit sont-ils également présents dans le fichier ou ne les a-t-il mis ici que pour "tendre à dire" que les articles sont des chaines de caractères ? (ce n'est bien évidemment pas la même chose)
--- les | qu'il montre sont-ils des | présents dans son fichiers texte ou ne les a-t-il mis ici que pour "tendre à dire" qu'il s'agit de colonnes séparées (et par quoi, dans son fichier ?) ? (ce n'est évidemment pas la même chose non plus)
pour mieux comprendre le doute résultant de ce "flou" : ===>> 4 doutes :

"Item"|"SubItem1"|"SubItem2"
"Item"|"SubItem1"|"SubItem2"

Item|SubItem1SubItem2
Item|SubItem1|SubItem2

Item SubItem SubItem2
Item SubItem1 SubItem2

"Item" "SubItem1" "SubItem2"
"Item" "SubItem1" "SubItem2"

Il lèverait ces incertitudes en montrant ici un copier/coller pur de 2 ou 3 lignes de son fichier texte
DarkKnight1418 3 Messages postés dimanche 28 février 2016Date d'inscription 29 février 2016 Dernière intervention > ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 28 févr. 2016 à 22:06
Bonjour ucfoutu,
En fait, mon fichier texte est structuré comme suit, copié collé:

Item|SubItem1|SubItem2

les "|" sont juste là pour séparer chaque élément.
Je peux très facilement changer ma structure pour faciliter le tout

Merci
Commenter la réponse de cs_Le Pivert
vb95 1501 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 28 févr. 2016 à 23:29
0
Utile
bonjour à tous
Pour DarKnight1418
1) Sous quoi développes-tu ?
2) Est-ce si dur de dire par exemple que ton fichier contient en paramètre 1 un nom, en paramètre 2 un prénom et en paramètre 3 l'age de cette personne par exemple !
3) C'est cela le structure d'un fichier texte telle que l'attend ucfoutu !
4) Maintenant reste à savoir si ces 3 informations sont sur la même ligne du fichier texte ( et dans ce cas comment elles sont séparées) ou sont regroupées par bloc de 3 lignes dans le fichier texte !
Regarde le devise de ucfoutu et mets la en pratique ! Ce serait déjà un pas de géant de fait à ton niveau !
Commenter la réponse de vb95
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 29/02/2016 à 07:31
0
Utile
Nous en sommes au 6ème message, DarkKnight1, et nous ignorons ENCORE ta version de Visual Basic !
Est-ce une plaisanterie ?

Et puis tiens, puisque nous en sommes à trainailler par ta faute ===>>
Voilà un exemple en VB6
Private Sub Command1_Click()
Dim FF As Integer, tablgen, tabligne, sep As String, i as Long, j as Long
sep = "|"
With ListView1
.View = lvwReport
.Width = Me.Width
.Left = 0
.ColumnHeaders.Add , , "noms", .Width / 3
.ColumnHeaders.Add , , "prénoms", .Width / 3
.ColumnHeaders.Add , , "âge", .Width / 3
FF = FreeFile
Open "d:\essai.txt" For Input As #FF
strtext = Input(LOF(FF), #FF)
Close #FF
tablgen = Split(strtext, vbCrLf)
Dim itmX As ListItem
For i = 0 To UBound(tablgen)
tabligne = Split(tablgen(i), sep)
Set itmX = .ListItems.Add(, , tabligne(0))
For j = 1 To UBound(tabligne)
itmX.SubItems(j) = tabligne(j)
Next
Next
End With
End Sub

cet exemple VB6 traite un fichier "D:\essai.txt" ainsi écrit :
DUPONT|Jean|25
DURAND|Pierre|31
DARKNIGHT|Benoit|10
Voilà ...
Et ne viens pas pleurer si, développant finalement sous autre chose que VB6, cela ne "marche" pas pour toi. Ce ne sera pas faute de t'en avoir fait la remarque en vain !
Mon exemple (VB6, donc) a été testé et est sans faille.
Je ne reviendrai plus dans cette discussion.


________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
Commenter la réponse de ucfoutu
DarkKnight1418 3 Messages postés dimanche 28 février 2016Date d'inscription 29 février 2016 Dernière intervention - 29 févr. 2016 à 21:21
0
Utile
2
Désolé du retard....

Je suis sur Visual Basic 2010 Express, mais j'ai trouvé la réponse à ma question en cherchant et testant plusieurs choses.

Merci quand même...
vb95 1501 Messages postés samedi 11 janvier 2014Date d'inscriptionContributeurStatut 19 avril 2018 Dernière intervention - 1 mars 2016 à 00:04
sur un forum on partage à mon avis !
cs_Le Pivert 5065 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 avril 2018 Dernière intervention - 1 mars 2016 à 09:24
Commenter la réponse de DarkKnight1418

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.