Lire ligne paire fichier texte pour le faire afficher dans textbox [Résolu]

doum2009 4 Messages postés jeudi 12 février 2009Date d'inscription 13 février 2009 Dernière intervention - 12 févr. 2009 à 20:39 - Dernière réponse : doum2009 4 Messages postés jeudi 12 février 2009Date d'inscription 13 février 2009 Dernière intervention
- 13 févr. 2009 à 17:33
Bonjour je cherche a faire afficher dans un textbox les lignes paires d'un fichier txt. es ce que quelqu'un peut m'aider svp?

merci

doum2009
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 13 févr. 2009 à 09:27
3
Merci
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

'# On affiche le buffer
Text1.Text = sBuffer

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de Renfield
Supra3000 160 Messages postés lundi 18 février 2008Date d'inscription 8 janvier 2010 Dernière intervention - 12 févr. 2009 à 22:19
0
Merci
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
Commenter la réponse de Supra3000
doum2009 4 Messages postés jeudi 12 février 2009Date d'inscription 13 février 2009 Dernière intervention - 13 févr. 2009 à 01:20
0
Merci
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)
Commenter la réponse de doum2009
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 13 févr. 2009 à 08:54
0
Merci
"selectionner une colonne de texte"

impossible, faut passer par une grille.

un MsFlexgrid
un listView en mode report
un datagrid
...

mais certainement pas un textbox.

ca n'a rien de compliquer à mettre en place, suffit de se relever un minimume les manches.

a quoi ressemblent tes données ?
Commenter la réponse de Renfield
doum2009 4 Messages postés jeudi 12 février 2009Date d'inscription 13 février 2009 Dernière intervention - 13 févr. 2009 à 08:59
0
Merci
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
Commenter la réponse de doum2009
jmf0 1566 Messages postés mardi 26 décembre 2000Date d'inscription 5 avril 2013 Dernière intervention - 13 févr. 2009 à 10:21
0
Merci
Bonjour, Renfield,

Tu ne crois pas qu'un step 2 te permettrait d'éviter le contrôle de parité ?
Commenter la réponse de jmf0
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 13 févr. 2009 à 10:31
0
Merci
certes ^^

j'avais pas songé a cela, honte sur moi

donc:

For i = 2 To UBound(xsLignes) Step 2
'# On ajoute la ligne dans le buffer
sBuffer = sBuffer & xsLignes(i) & vbNewLine
Next i
Commenter la réponse de Renfield
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 13 févr. 2009 à 16:44
0
Merci
Ouuhhhh !
(ptdr, amicalement)
Commenter la réponse de cs_Jack
doum2009 4 Messages postés jeudi 12 février 2009Date d'inscription 13 février 2009 Dernière intervention - 13 févr. 2009 à 17:33
0
Merci
merci renfield!

doum2009
Commenter la réponse de doum2009

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.