Acces direct dans fichier text

cs_samy56 Messages postés 39 Date d'inscription vendredi 17 janvier 2003 Statut Membre Dernière intervention 27 janvier 2005 - 16 déc. 2004 à 15:18
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 - 17 déc. 2004 à 23:17
salut à tous

J'aimerai savoir s'il y a un moyen d'accéder directement a une ligne dans un fichier texte.

merci d'avance

samy56

6 réponses

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
16 déc. 2004 à 15:24
Sauf à ruser en l'ouvrant en mode binaire et en ayant au préalable constituer un index des retour chariot ... non.

Christophe R.
0
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
16 déc. 2004 à 20:27
labout

La solution est de mettre un compteur dans la boucle de lecture ligne à ligne

dim lhandle as long
dim i as integer
dim svar as string
lhandle=freefile
i=1
Open fichier For Input As #lHandle

Do While Not EOF(1)

Line Input #lHandle, svar
if i=noligne
exit do
endif
i=i+1
loop

@+
0
barley Messages postés 107 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 28 janvier 2010
17 déc. 2004 à 02:08
labout, je suis d'accord concernant le fait que cette technique te permette de sortir une fois arrivé a la ligne que tu souhaite, mais tu es quand même obligé de scruter les lignes précédentes avec cette technique...
autrement dit, si ton fichier contient 100 lignes et que tu souhaite lire le contenu de la ligne 98, tu gagne 2 lignes de scrutation, pas très efficace...
je me trompe peut etre...
la technique que tu décris permet effectivement de gagner du temps, mais elle ne permet pas d'aller directement a la ligne désirée comme cela était demandé.
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
17 déc. 2004 à 08:49
D'ou mon idée de constituer un fichier index des lignes dans le fichier !!
Cela oblige à lire une première fois le fichier pour repérer tous les retour-chariot et noter leur offset. Ensuite, si tu veux aller à la ligne 98, tu lit le 98ieme enregistrement du ficheir index, tu obtient l'offset dans le fichier d'origine, et tu n'as plus qu'à lire dasn ce ficheir à partir de cet offset, jusqu'au prochain retour-chariot pour avoir la 98ieme ligne.
La création de l'index est pénalisante, mais ensuite elle permet un accès très rapide à n'importe quelle ligne du fichier !

Christophe R.
0

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

Posez votre question
barley Messages postés 107 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 28 janvier 2010
17 déc. 2004 à 16:34
Ca c'est bien joué, mais bon, ce n'est valable que si tu as a retourner encore dans le fichier.
ca m'interesse quand meme ton idee, tu peux montrer un petit exemple de cette appli, si tu en as un sous la main biensur, sinon, te prends pas la tete...
Merci crenaud pour tes indications precieuses
a plus
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
17 déc. 2004 à 23:17
Ben j'ai pas de code tout fait, en fait, cette idée m'est venu en lisant cette question !
Mais ce n'est vraiment pas bien compliqué ! A vue d'oeil, je dirais que sans compter tout ce quiet gestion des cas particulier ou des erreur possible, c'est une source de 50 lignes de code au grand maximum.Si vraiment cela vous intéresse ....

Christophe R.
0
Rejoignez-nous