Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202172 13 févr. 2009 à 09:27
fort bien, si tu souhaites te contenter d'afficher ton tabeau dans une zone de texte, pas de souci
y'a t'il donc des points qui te coincent encore, dans la réalisation de ton programme ?
le code de Supra3000 me gène, personnellement. Il fonctionne, mais est maladroit.
- Il faut minimiser les accès au disque dur, et lire, si possible le fichier d'un coup, ou par passes de taille raisonnable. Line Input est même catastrophique en terme de performances, puisque VB cherche la fin des lignes lues.
- Il ne faut pas travailler en direct, dans le textbox. En effet, celui-ci va se redessiner pour chaque ligne ajouter. Il faut travailler avec une variable, et l'afficher une fois le chargement terminé
- Il faut éviter de mettre #1 pour le canal de fichier. Enfin, pas d'autorité. Il faut prendre l'habitude de demander un numéro de canal libre (fonction FreeFile)
- While...Wend est l'ancienne syntaxe de Do While...Loop ou Do Until...Loop, etc
Nouvelle syntaxe a privilégier.
une fois nettoyé, on obtient :
Dim iFile As Integer
Dim xsLignes() As String
Dim i As Long
Dim sBuffer As String
'# On demande un canal de fichier libre
iFile = FreeFile
'# On ouvre le fichier en lecture de texte
Open "C:\a.txt" For Input As iFile
'# On place tout le contenu du fichier dans un tableau de chaines
'# Le découpage (Split) sera opéré sur les sauts de lignes (vbNewLine)
xsLignes = Split(Input(LOF(iFile), iFile), vbNewLine)
Close iFile
'# On ne prend ni la ligne 0 ni la ligne 1
'# Ubound indique l'index max du tableau.
For i = 2 To UBound(xsLignes)
'# Si ma ligne est paire...
If (i And 1) = 0 Then
'# On ajoute la ligne dans le buffer
sBuffer = sBuffer & xsLignes(i) & vbNewLine
End If
Next i
Supra3000
Messages postés159Date d'inscriptionlundi 18 février 2008StatutMembreDernière intervention 8 janvier 20102 12 févr. 2009 à 22:19
Oui c'est très facile mais mais ton textbox est mieux d'être gros ou ton fichier texte très petit =p
Exemple:
chemin = "C:\lepath\de\ton\fichier.txt" 'chemin du fichier
estpaire = True 'savoir si une ligne est paire, par défault 0 est paire
Open chemin For Input As #1
While EOF(1) = False
Line Input #1, LigneSuivante ' la variable ligne suivante contient ta ligne
if estpaire = true then ' Si la ligne est paire
TextBox1.Text = TextBox1.Text & LigneSuivante
estpaire = false ' la prochaine ligne est inpaire
else
estpaire = true ' la prochaine ligne est paire
End if
Wend
Close #1
doum2009
Messages postés4Date d'inscriptionjeudi 12 février 2009StatutMembreDernière intervention13 février 2009 13 févr. 2009 à 01:20
Bonjour !
je tenais a vous remercier pour la réponse que vous m'avez fourni .
J'aurais par contre 2 autres petites question si cela ne vous pose pas problème.
C'est que je veux garder les 2 premieres lignes du texte et ensuite garder seulement les lignes paires...
et mon autre question serais:
Comment selectionner une colonne du texte(parce que mes données sont en colonne)
et dans ce cas ci je ne voudrais pas les 2 premieres lignes mais seulement ajouter une indication de la colonne( ex: température)
doum2009
Messages postés4Date d'inscriptionjeudi 12 février 2009StatutMembreDernière intervention13 février 2009 13 févr. 2009 à 08:59
ce sont des relevées météorologiques en colonne dans un fichier txt mais je vous dis que je lai fais avec un textbox avec la solution de supra3000( J'ai mis multiligne a enable alors tout rentre et sa marche super bien).
doum2009