Charger un fichier .dat dans une Listview

Bogorno Messages postés 16 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 19 avril 2007 - 18 avril 2007 à 03:57
Bogorno Messages postés 16 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 19 avril 2007 - 19 avril 2007 à 16:32
Bonjour à tous,

Voici mon fichier .dat :
"CG"
3
10
"Babar"
15
"Robert"
22
"Salamandar"

Les 2 premières lignes ne sont pas à afficher dans ma Listview LV: la première ligne c'est le nom de mon prog afin de tester si quand je charge le fichier c'est bien un fichier .dat créer avec mon prog et la deuxième ligne c'est le nom de ligne dans ma LV.  À chaque nouvelle personne entrée il vient s'incrémenter.  Dans l'exemple il n'y a  que 3 personnes donc la deuxième ligne est 3.

Je n'y arrive tout simplement pas...

Toute aide serat très appréciée.
Merci beaucoup.

Rita.

5 réponses

raffmarseille Messages postés 11 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 22 avril 2008
18 avril 2007 à 17:23
Bon, je n'ai pas codé le test du fichier, mais il doit se situer environ quelquepart entre le else et le end if dans le while. Attention, le danger d'une lecture double dans le while est que si ton fichier est mal construit, tu te retrouves en fin de fichier avant la fin de la boucle, donc en erreur.
Si je suis trop flou, demandes moi, je recoderai (ce sera peut être plus explicite pour toi en code)

Pour le code suivant, il te faut une form, un bouton et une listView. Et un fichier "monfichier.dat" à l'endroit d'où l'exe sera lancé (répertoire bin/debug de la solution lorsque tu es en mode debug en prog.

Private
Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click

Dim FNum
As
Integer

Dim Filename
As
String = Application.StartupPath &
"\monfichier.dat"
'va chercher le fichier dans le répertoire de démarrage de l'exe

Dim I
As
Long = 0

Dim PoubelleLigne
As
StringFNum = FreeFile()

FileOpen(FNum, Filename, OpenMode.Input)

While
Not EOF(FNum)I = I + 1

If I > 2
ThenListView1.Items.Add(LineInput(FNum) &

"-" & LineInput(FNum))

ElsePoubelleLigne = LineInput(FNum)

End
If

End
WhileFileClose(FNum)

End
Sub
GeekCoder
RaffMarseille
0
Bogorno Messages postés 16 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 19 avril 2007
19 avril 2007 à 02:51
Ah merci beaucoup pour ton aide.
Cependant j'ai oublié de mentionner que je dois récuper:
- 10, 15 et 22 dans la 1ère colonne de LV
- "Babar" , "Robert" et "Salamandar" dans la 2ème colonne 
Soit 3 lignes:
10   "Babar"
15   "Robert"
22   "Salamandar"

Je rame à fond...
Rita
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
19 avril 2007 à 08:26
Bonjour,

Excusez-moi...

L'examen de ce qu'a écrit Bogorno dans son 1er message montre que le fihier .dat traité est un fichier texte écrit avec la méthode Write et non la méthode Print.


Il devrait alors être écrit (command1) et  lu (command2) ainsi, tout simplement (ici je l'ai fait en VB6... à transposer donc en VB.Net)


Private Sub Command1_Click()
  Open "d:\voilouu" For Output As #1
    Write #1, "CG", 3, 10, "Babar", 15, "Robert", 22, "salamandar"
    Write #1, 2
  Close #1
End Sub


Private Sub Command2_Click()
  Open "d:\voilouu" For Input As #1
   Input #1, montitre, monnombre
   For i = 0 To monnombre - 1
     Input #1, toto1, toto2
     MsgBox toto1 & "  " & toto2
   Next
  Close
End Sub
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
19 avril 2007 à 08:35
ärdon : ligne Write #1, 2 à supprimer, bien sur
0

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

Posez votre question
Bogorno Messages postés 16 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 19 avril 2007
19 avril 2007 à 16:32
Bonjour Jmfmarques,
Merci pour l'aide.
C'est bien cela, ton analyse est bonne.
Mais comment charger le fichier dans la listview de facon à ce que tout se retrouve dans la bonne colonne?
0
Rejoignez-nous