Lire et enregistrer une châine de caractères tous ça CARACTERE PAR CRACTERE [Résolu]

Signaler
Messages postés
69
Date d'inscription
mercredi 21 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2006
-
Messages postés
69
Date d'inscription
mercredi 21 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2006
-
Bonjour,

Je suis sur un ptit projet qui lit des fichiers html de haut en bas et qui après repérage de certains mots doit lire des chaînes de caractères et els stoker dans des celulles d'un fichier xls...
Ma question est très ciblée et porte sur le fait que ces châines de caractères ont une longeur variable et donc je voudrais les lire caractère par caractère jusqu'à une condition (ici, c'est quand ont rencontre le "<" de "" cf syntaxe html)...
Je pensais utiliser une variable temporellle dans laquelle serait stocker le caractère lu et si c'est pas "<" hop on peut la mettre dans la celulle cible et donc je me demande comemnt on fait pour ajouter tous ces caractères ensemble... (Pour ce qui est du reste, c'est bon, j'ai déjà la procédure de lecture du caractère et avec un Do While Loop pour la condition ça devrait aller non?)

Merci de m'éclairer!

6 réponses

Messages postés
69
Date d'inscription
mercredi 21 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2006

Bon, ben je me suis débrouillé tout seul...

Je disposais d'une fonction:

Private Function lirestr(linein1 As String, posdeb As Integer, lenstr As Integer) As String
lirestr = Left(Right(linein1, Len(linein1) - posdeb), lenstr)
End Function

Cette fonction lisait une longeur donnée de charactères... Moi je ne savais pas la longeur à lire à l'avance et je voulais pas me retrouver par exemple avec:
"Informations "Produit""
Donc je voulais lire charactère par charactère et m'arrêter avant le "<"...

J'ai donc fait une autre fonction qui lit un seukl charactère le tout dans un Do While avec condition et l'enchaînement des lignes dans le bon ordre:

Function CharByChar()
temp = ""
nomfin = temp
i = 0
Do While temp <> "<"
nomfin = nomfin + temp
temp = lirestr(linein, res + i, 1)
i = i + 1
Loop
CharByChar = nomfin
End Function

Voilà.... Merci qd même!
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Messages postés
92
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
16 janvier 2007

Bon alors a priori je crois avoir compris ce que tu veux faire, mais le truc c'est que j'ai pas trop réalisé ton vrai probleme.
Du coup je vais te donner des trucs mais je sais pas si c'est ce que tu recherche :

Pour enregistrer ton fichier dans un buffer (caractere par caractere) :

Dim Buffer() as Byte

Redim Buffer(1 to FileLen(f$))'ou f$ est le chemin du fichier HTML
ff=FreeFile

open f$ for binary access read as #ff
Get #ff,1,Buffer
close f$

pour tester une cellule du tableau Buffer en String c'est
Mid$(Buffer(i))
pour ajouter dans un String c'est
CellString=CellString & Mid$(Buffer(i))

Bon voila je sais pas si la dedans tu peux piocher une reponse à ta question.
Messages postés
92
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
16 janvier 2007

excuse c'etait pas close f$ mais close #ff
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
16
Salut,
Un fichier html, c'est quoi sinon que du texte ?
Et pour analyser du texte, rien qu'en vb6, les fonctions mid, instr, instrrev, replace, split ... et j'en passe sont là pour t'aider.
En plus de la MSDN, plein d'exemples dans le forum et les sources du site. Cherche un peu

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
92
Date d'inscription
jeudi 21 avril 2005
Statut
Membre
Dernière intervention
16 janvier 2007

Tout a fait daccord.
En fait je pige pas ou est le vrai probleme


Le Rasta fou rien, vous le savez bien
Messages postés
69
Date d'inscription
mercredi 21 septembre 2005
Statut
Membre
Dernière intervention
6 mars 2006

Je regarderais plus dans le détail ce que vous m'avez répondu... Merci de vos réponses déjà...