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

Line Input mais fichier texte codé

4 réponses
Avatar
déCalcoManiaque
bonjour aux habitants de ce forum usenet bien précieux ma foi

j'ai, avec excel97, un souci de lecture d'un fichier texte (volumineux)
au travers de VBA.
Le fichier est un fichier log de connexions réseau, la longueur
d'enreg. est variable.
Il est ouvert par :
"Open NomFichier For Input As #NumFichier"
et je le lis ensuite au travers de l'instruction classique :
"Line Input #NumFichier, LignetLue"

Mais là surprise ! L'enregistrement numéro 1 est l'intégralité du
fichier, d'où plantage mémoire dès que je veux recopier la variable
LigneLue dans une cellule. On dirait que les caractères de retour
chariot sont absents du fichier?
Or si j'ai préalablement ouvert le fichier texte dans Wordpad et
réenregistré au format "texte brut", tout fonctionne.

Je soupçonne le fichier d'être au format texte codé (unicode?).
Question : puis-je lire un fichier texte de ce format? dois-je sinon
faire dans ma macro la lecture-sauvegarde préalable par Wordpad (et si
oui ça se fait comment svp?)

Merci beaucoup si vous me lisez, merci encore plus si vous me répondez,
et de toutes façons bonne journée.

Amicalement
déCalcoManiaque

4 réponses

Avatar
déCalcoManiaque
Je précise (c'est utile) que je ne peux pas ouvrir directement dans
excel le fichier texte en question : il dépasse la limite des 65536
enregistrements et je dois le "splitter" en plusieurs feuilles. Mais ça
ne marche pas à cause du texte codé.

Amicalement
déCalcoManiaque

bonjour aux habitants de ce forum usenet bien précieux ma foi

j'ai, avec excel97, un souci de lecture d'un fichier texte (volumineux) au
travers de VBA.
Le fichier est un fichier log de connexions réseau, la longueur d'enreg. est
variable.
Il est ouvert par :
"Open NomFichier For Input As #NumFichier"
et je le lis ensuite au travers de l'instruction classique :
"Line Input #NumFichier, LignetLue"

Mais là surprise ! L'enregistrement numéro 1 est l'intégralité du fichier,
d'où plantage mémoire dès que je veux recopier la variable LigneLue dans une
cellule. On dirait que les caractères de retour chariot sont absents du
fichier?
Or si j'ai préalablement ouvert le fichier texte dans Wordpad et réenregistré
au format "texte brut", tout fonctionne.

Je soupçonne le fichier d'être au format texte codé (unicode?).
Question : puis-je lire un fichier texte de ce format? dois-je sinon faire
dans ma macro la lecture-sauvegarde préalable par Wordpad (et si oui ça se
fait comment svp?)

Merci beaucoup si vous me lisez, merci encore plus si vous me répondez, et de
toutes façons bonne journée.

Amicalement
déCalcoManiaque


Avatar
déCalcoManiaque
déCalcoManiaque avait énoncé :
Je précise (c'est utile) que je ne peux pas ouvrir directement dans excel le
fichier texte en question : il dépasse la limite des 65536 enregistrements et
je dois le "splitter" en plusieurs feuilles. Mais ça ne marche pas à cause du
texte codé.

Amicalement
déCalcoManiaque

bonjour aux habitants de ce forum usenet bien précieux ma foi

j'ai, avec excel97, un souci de lecture d'un fichier texte (volumineux) au
travers de VBA.
Le fichier est un fichier log de connexions réseau, la longueur d'enreg.
est variable.
Il est ouvert par :
"Open NomFichier For Input As #NumFichier"
et je le lis ensuite au travers de l'instruction classique :
"Line Input #NumFichier, LignetLue"

Mais là surprise ! L'enregistrement numéro 1 est l'intégralité du fichier,
d'où plantage mémoire dès que je veux recopier la variable LigneLue dans
une cellule. On dirait que les caractères de retour chariot sont absents du
fichier?
Or si j'ai préalablement ouvert le fichier texte dans Wordpad et
réenregistré au format "texte brut", tout fonctionne.

Je soupçonne le fichier d'être au format texte codé (unicode?).
Question : puis-je lire un fichier texte de ce format? dois-je sinon faire
dans ma macro la lecture-sauvegarde préalable par Wordpad (et si oui ça se
fait comment svp?)

Merci beaucoup si vous me lisez, merci encore plus si vous me répondez, et
de toutes façons bonne journée.

Amicalement
déCalcoManiaque



Un shell pour lancer wordpad n'aboutit qu'en erreur : apparemment le
chemin est trop long puisqu'il apparait tronqué sur le message
d'erreur. Grrr : si c'est ça c'est ennuyeux, je n'ai pas le droit de
toucher à la config du poste sur lequel la macro doit tourner.
Y a t'il moyen avec vba de convertir un fichier texte en unicode vers
un fichier texte en ansi normal? Merci


Avatar
Jacques93
Bonjour,

Si ton fichier texte est en Unicode, les deux premiers octets sont :

FF FE

Est le cas ? ce que tu décris ressemble plus à un fichier de type 'Unix'
avec uniquement LF (chr$(10)) comme caratère de changement de ligne au
lieu de CRLF (chr$(13) + chr$(10))

déCalcoManiaque wrote:
déCalcoManiaque avait énoncé :

Je précise (c'est utile) que je ne peux pas ouvrir directement dans
excel le fichier texte en question : il dépasse la limite des 65536
enregistrements et je dois le "splitter" en plusieurs feuilles. Mais
ça ne marche pas à cause du texte codé.

Amicalement
déCalcoManiaque


bonjour aux habitants de ce forum usenet bien précieux ma foi

j'ai, avec excel97, un souci de lecture d'un fichier texte
(volumineux) au travers de VBA.
Le fichier est un fichier log de connexions réseau, la longueur
d'enreg. est variable.
Il est ouvert par :
"Open NomFichier For Input As #NumFichier"
et je le lis ensuite au travers de l'instruction classique :
"Line Input #NumFichier, LignetLue"

Mais là surprise ! L'enregistrement numéro 1 est l'intégralité du
fichier, d'où plantage mémoire dès que je veux recopier la variable
LigneLue dans une cellule. On dirait que les caractères de retour
chariot sont absents du fichier?
Or si j'ai préalablement ouvert le fichier texte dans Wordpad et
réenregistré au format "texte brut", tout fonctionne.

Je soupçonne le fichier d'être au format texte codé (unicode?).
Question : puis-je lire un fichier texte de ce format? dois-je sinon
faire dans ma macro la lecture-sauvegarde préalable par Wordpad (et
si oui ça se fait comment svp?)

Merci beaucoup si vous me lisez, merci encore plus si vous me
répondez, et de toutes façons bonne journée.

Amicalement
déCalcoManiaque




Un shell pour lancer wordpad n'aboutit qu'en erreur : apparemment le
chemin est trop long puisqu'il apparait tronqué sur le message d'erreur.
Grrr : si c'est ça c'est ennuyeux, je n'ai pas le droit de toucher à la
config du poste sur lequel la macro doit tourner.
Y a t'il moyen avec vba de convertir un fichier texte en unicode vers un
fichier texte en ansi normal? Merci





--
Cordialement,

Jacques.



Avatar
déCalcoManiaque
Jacques93 a émis l'idée que voici :
Bonjour,

Si ton fichier texte est en Unicode, les deux premiers octets sont :

FF FE

Est le cas ? ce que tu décris ressemble plus à un fichier de type 'Unix'
avec uniquement LF (chr$(10)) comme caratère de changement de ligne au lieu
de CRLF (chr$(13) + chr$(10))



bonsoir
merci Jacques93 pour ta réponse !
c'est peut-être en effet un fichier unix à l'origine (c'est un log
transmis par france telecom)?
J'ai quand même réussi à l'ouvrir et lire ligne par ligne, en laissant
tomber "Open " et en optant pour "openasTextStream" car là je peux lui
indiquer que TriState est false....ouf, je ne me voyais pas ouvrir Word
pour cette conversion là.
Mais c'est bizarre quand même que "Open" ne marche pas

Merci beaucoup pour ton intérêt
Amicalement