Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Manipulation de fichiers texte

3 réponses
Avatar
Georges Saunier
Bonjour,

Je débute largement en VB et, bien que je comprenne les principes de base de
la programmation, je butte sur deux problèmes (qui n'en forme qu'un seul),
ignorant en réalité les instructions à utiliser :
- dans un fichier texte ouvert via une macro excel, comment retourner le
numéro de la ligne dans laquelle on a trouvé une chaîne de caractères ?
- comment rechercher une autre chaîne de caractères dans les X lignes qui
suivent ou précèdent ?

Vos conseils me seraient très utiles.

Cordialement,

G. Saunier.

3 réponses

Avatar
LE TROLL
Salut,

Si tu veux une réponse "macro", faut voir dans le forum
Excel...

Si tu veux une réponse VB, ben quand tu lis ton fichier
txt, sauf disposition contraire, chaque enregistrement
correspond à une ligne, alors il suffit de numéroter avec
une variable à chaque fois que tu lis une ligne, et quand
c'est la bonne, tu peux ensuite conserver la valeur afin de
mémoriser les lignes proches de celle trouvée...

Par exemple:

dim i
i=0
lit_encore:
lecture...
i=i+1
si ligne ok(ligne = i) goto fin
si <> fin = goto lit_encore...
fin:
' désormais on va pouvoir retourner plus tard (ne pas
modifier "i"), à la ligne trouvée ok, et aux suivantes
(seconde lecture):
dim ligne as string
dim j
for j = 1 to i
lit ligne fichier = ligne
next i
ligne = ligne recherchée (i), etc...
---------------------
si tu veux un exemple avec la syntaxe exacte, demande :o)
---------------------


"Georges Saunier" a écrit dans
le message de news:
Bonjour,

Je débute largement en VB et, bien que je comprenne les
principes de base de la programmation, je butte sur deux
problèmes (qui n'en forme qu'un seul), ignorant en réalité
les instructions à utiliser :
- dans un fichier texte ouvert via une macro excel,
comment retourner le numéro de la ligne dans laquelle on a
trouvé une chaîne de caractères ?
- comment rechercher une autre chaîne de caractères dans
les X lignes qui suivent ou précèdent ?

Vos conseils me seraient très utiles.

Cordialement,

G. Saunier.



Avatar
Fred
Dans le message:,
Georges Saunier écrit:
Bonjour,

Je débute largement en VB et, bien que je comprenne les principes de
base de la programmation, je butte sur deux problèmes (qui n'en forme
qu'un seul), ignorant en réalité les instructions à utiliser :
- dans un fichier texte ouvert via une macro excel, comment retourner
le numéro de la ligne dans laquelle on a trouvé une chaîne de
caractères ? - comment rechercher une autre chaîne de caractères dans
les X lignes qui suivent ou précèdent ?



Bonjour,
L'idéal, du point de vue occupation mémoire, serait d'utiliser un buffer
circulaire de X lignes de texte qui te permettrait, à chaque nouvelle
ligne lue dans le fichier, d'avoir à disposition les X lignes
précédentes.
Pour la recherche dans les X lignes suivantes, il suffit de continuer à
lire le fichier (pas besoin de mémorisation).

Une ébauche :
8<---------------
Dim buffer() as string (global)
Dim ptr as Integer

Sub InitBuffer(taille as integer)
ReDim buffer(taille-1)
Dim Index as Integer
For Index=0 To taille - 1
buffer(Index)=""
Next
ptr=0
End Sub

Sub AjouterDansBuffer(chaine as string)
buffer(ptr) = chaine
ptr = (ptr+1) Mod (UBound(buffer, 0)+1) 'J'ai un doute sur la
syntaxe de UBound
End Sub
8<----------------------
Le tableau buffer contient les [taille] dernière ligne lues.
Si l'ordre à une importance, la plus ancienne des lignes est à l'indice
ptr et la plus récente est à l'indice ptr-1 (modulo la taille)


--
Fred
Avatar
Georges Saunier
Oups ! Je viens de lire votre réponse après un aller-retour en province.

Merci à tous les deux pour votre aide, je vais tenter de mettre tout cela en
pratique.

Cordialement,

GS.

"Georges Saunier" a écrit dans le message de
news:
Bonjour,

Je débute largement en VB et, bien que je comprenne les principes de base
de la programmation, je butte sur deux problèmes (qui n'en forme qu'un
seul), ignorant en réalité les instructions à utiliser :
- dans un fichier texte ouvert via une macro excel, comment retourner le
numéro de la ligne dans laquelle on a trouvé une chaîne de caractères ?
- comment rechercher une autre chaîne de caractères dans les X lignes qui
suivent ou précèdent ?

Vos conseils me seraient très utiles.

Cordialement,

G. Saunier.