Récuperation d'infos dans un txt pour création dynamique

  • Initiateur de la discussion Creepy
  • Date de début
C

Creepy

Guest
Bonjour le forum,

Je dois créer un treeview different en fonction de l'utilisateur.

Je sais créer la treeview, mais je voudrais mettre les informations de celle-ci dans un fichier TXT sous la forme :

Dada;tvwchild;"user1";"Michele",image1,image2

J'aurais un nombre de ligne variable en fonction de l'utilisateur. Comme chaque parametre est entre ";", je voudrais faire une macro qui boucle en fonction du nombre de ligne du fichier texte, qui récupere chaque parametre à chaque passage pour les appliquer à ma commande :

treeview.nodes.add param1, param2, "param3", etc ...

en faites je cale sur la partie ouverture du fchier, determination du nombre de ligne, recuperation de chaque parametre de la ligne pour le coller dans la variable qui va bien et ensuite l'appliquer.

Pouvez-vous m'aider ?

Merci d'avance

Creepy
 
M

michel

Guest
bonjour Creepy

ce n'est pas la premiere fois que tu viens sur le forum . tu connais donc les regles de bases : cela ne sert à rien de doubler les questions ...

Lien supprimé

de plus avant de multiplier les fils tu pourrais prendre le temps de lire les reponses à tes anciennes questions et au moins dire si cela te convient ou pas

Lien supprimé


bonne journee
michel
 
C

Creepy

Guest
Bonjour à tous,

Michel,

1 - J'estime ne pas avoir doublé les messaeges, car j'avance sur le projet et mes questions sont plus precises. Je n'ai pas eu de reponse dans le premier fil que tu mentionnes, car je pense que je devais être trop brouillon.

2 - Le deuxième fil m'a papporté une partie de la réponses effectivement, quand à l'ouverture et l(importation des données. Je te rassure j'ai bien pris le temps de le lire.

3 - Maintenant j'aimerais bien arriver à compter le nombre de ligne dans ce .txt et recuperer dans chaque ligne les valeurs qui sont entre ";"

Toutefois je m'excuse si effectivement vous pensez qu'il s'agit d'un doublons, ce n'est effectivement pas dans mes habitudes.

Merci de vos reponses sur le comptage et recuperation des infos dans le .txt

++

Creepy
 
C

Creepy

Guest
Salut all,

J'ai un bout de solution pour recuperer les infos entre ";"

la commande SPLIT permet de decouper une chaine de caractere en fonction d'une symbole.

Par exemple :

Split ("c:\dede\dada\dudu","\") donne :
dede
dada
dudu

Voila je cherche toujours de l'aide sur comment determiner le nombre de ligne de mon .txt

++

Creepy
 
M

michel

Guest
bonjour Creepy

j'espere que la macro ci dessous repondra à ta demande ( adapté d'une procedure de Frederic Sigonneau )

Sub NbLignesFichierTexte()
'adapté d'une procedure de fs
Dim Fso As Object, Fichier As Object
Dim NbLignes As Integer
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Fichier = Fso_OpenTextFile("C:\MonFichier.txt", 8)
NbLignes = Fichier.Line
Fichier.Close
MsgBox "Il y a " & NbLignes & " lignes dans les fichier txt "
End Sub


bonne journee
michel
 
@

@+Thierry

Guest
Bonjour Michel, Creepy, le Forum

Ben tu as été plus rapide que moi Michel mais j'avais aussi pratiquement l'équivalent, en partie de Clément Marcotte :

Sub TxtLineCountMethodOne()
Dim Chemin As String, Fichier As String
Dim FSO As Object, TXT As Object
Dim Nbr As Long

Chemin = ThisWorkbook.Path & "\"
Fichier = "UpTo20040102.txt"

Set FSO = CreateObject("Scripting.FileSystemObject")
Set TXT = FSO.OpenTextFile(Chemin & Fichier, 8, False)
Nbr = TXT.Line - 1
MsgBox "le Fichier " & Fichier & " contient " & Nbr & " lignes "
TXT.Close

Set FSO = Nothing
Set TXT = Nothing
End Sub

Par contre on notera, Michel, que lorsque l'on fait un Set d'Object il est toujours préfarable et recommandé de songer à le(les) vider à "Nothing" en sortie de procédure.

Sinon, vu que Creepy utilise "Split" pour récupérer ces champs, il peut aussi faire un truc comme ceci :

Sub TxtLinesCountMethodTwo()
Dim Chemin As String, Fichier As String
Dim Nbr As Long
Dim i As Integer, ii As Long, iii As Integer
Dim Record As String
Dim Container As Variant


Chemin = ThisWorkbook.Path & "\"
Fichier = "UpTo20040102.txt"

ii = 1

Open Chemin & Fichier For Input As #1
Do While Not EOF(1)

Line Input #1, Record
Nbr = Nbr + 1
Container = Split(Record, Chr(59))
For i = 1 To UBound(Container)
iii = i - 1
Cells(ii, i) = Container(iii)

Next
ii = ii + 1
Loop
Close #1

MsgBox "le Fichier " & Fichier & " contient " & Nbr & " lignes" & vbCrLf & _
"reportée jusqu'en ligne " & Range("A65536").End(xlUp).Row

End Sub

Bonne Journée à Tous et Toutes
@+Thierry
 
M

michel

Guest
bonjour @+Thierry , rebonjour Creepy

@+Thierry , merci pour le conseil du "Nothing"

peux tu me preciser pourquoi dans ta version tu utilises Nbr = TXT.Line - 1 , ce qui enleve une ligne dans le decompte du nombre de lignes du fichier texte


bonne journee
michel
 
@

@+Thierry

Guest
Re salut Michel, Creepy

Pour le TXT.Line - 1 c'est pour la bonne et simple raison que le mode "8" signifie que l'on "Append" le fichier.txt et que, par conséquent, le FileSystemObject va chercher la première ligne vide. Etant donné que dans le cas présent on veut compter les lignes pleines, il faut soustraire un pour avoir réélement le nombre de lignes du txt...

Bon Après Midi
@+Thierry
 
L

LaurentTBT

Guest
Bonjour à tous,

Petite question au passage à Thierry sur son conseil:

Si la variable object est de portée procédure, pourquoi faut-il la remettre à Nothing à la fin? N'est-elle pas perdue à la fin de la procédure (end sub)?
Y a-t-il un détail qui m'échappe?

Merci d'éclairer ma lanterne.

Laurent.
 
C

Creepy

Guest
Re all,

J'ai fait un essai mais cela ne marche pas je ne sais pas trop pourquoi

KK1 pourrait m'aider ?

En PJ y'a le fichier XL et le .txt qui va bien

Merci d'avance

++

Creepy
 

Pièces jointes

  • essaitreview.zip
    14 KB · Affichages: 39
C

Creepy

Guest
Pfffff decidement je ne comprends pas !!

Mes variables sont bien attribuées, c'est au niveau de la creation du treeview !!

Bon Ok le code est pas super propre, mais bon pour faire un essai et voir si ca marche c'etait suffisant !!!

J'ai même essayé avec des & avant les , des variables mais sans effet

Vous auriez une idée ?

++

Creepy
 
M

michel

Guest
bonjour Creepy

j'espere que l'exemple joint pourra t'aider
apres plusieurs tests infructueux , j'ai été forcé de remettre en forme ton fichier texte pour que cela puisse fonctionner . tu pourras modifier cette mise en forme selon tes besoins .
dans l'exemple je n'ai pas pris en compte l'eventualité des parametres 5(image) et 6(selectedimage) dans le fichier texte


bonne soiree
michel
 

Pièces jointes

  • EssaiTreeview_V02.zip
    18.8 KB · Affichages: 23

Discussions similaires

Statistiques des forums

Discussions
312 184
Messages
2 086 006
Membres
103 088
dernier inscrit
Psodam