Ecrire dans fichier texte

Résolu
Roussetj Messages postés 52 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 2 octobre 2008 - 21 août 2008 à 16:50
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 22 août 2008 à 08:46
Bonjour,

à partir de mon classeur excel initial, j'ouvre un fichier texte. Dans ce fichier texte, je voudrais remplacer certains caractères.

je m'explique: voila par exemple les 2 premières lignes de mon fichier texte:

:10057000073C073C0C0A1E07010000010071030044
:1005800002030000000101010000000000FA010068

j'ai en parallele une variable dim Nouvel as integer, tel que ici, Nouvel = 22

je veux remplacer les caractères en rouge de mon fichier texte par la valeur de la variable Nouvel.

plus clairement je veux obtenir un fichier texte tel que celui ci:
:10057000073C073C0C0A1E07012200010071030044
:1005800002030000022101010000000000FA010068

j'espere que j'ai reussi à me faire comprendre,

merci d'avance

4 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
22 août 2008 à 08:46
... alors ce code + exemple devrait te servir de bonne piste :

http://www.codyx.org/snippet_remplacer-chaine-autre-dans-fichier_187.aspx

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
3
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
21 août 2008 à 17:16
A ce que je sache le seul moyen de faire sa c'est de re-crée un fichier.
Donc tu lit le fichier initial
Tu modif ce qu'il y a à modif ( logique pas le reste )
Tu écrit dans un nouveau fichier
Une fois ton nouveau fichier écrit tu supprime le vieux et renomme le nouveau avec le nom du vieux

Perso je ne sait pas faire autrement

Amicalement
Pensez "Réponse acceptée"
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
21 août 2008 à 17:16
salut,

comment est déterminé l'emplacement de tes double 0 ?
et toujours la même position en fonction de la ligne?
tâche sur plusieurs fichiers?

la fonction MID te permettra de faire ce que tu désires

mid$(tachaine, position_des_00,2)=nouvel

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
Roussetj Messages postés 52 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 2 octobre 2008
22 août 2008 à 08:33
d'un fichier à l'autre les positions des caractères à modifier n'est pas la même et il ne s'agit pas de double zéro non plus.

en ce qui concerne je la connais, je l'est rentré dans une variable Position.

oui je connais lz fonction mid et je sais comment l'utilisé.

mon problème se situe plus au niveau de l'écriture dans le fichier texte.
voici mon code (un peu simplifié):

Open Fichier For Input As #2
    Do
        Do While Not EOF(2)
            Line Input #2, LaLigne
            If InStr(1, Mid(LaLigne, 4, 3), Famille,vbTextCompare) <> 0 Then 
                Mid(LaLigne, Position,2) = Nouvel  ' c'est ici que mon problème apparait
            End If
        Loop
    Loop Until .....

Je sais qu'il manque des opérations, maisen fait je ne maitrise pas les opérations input, output, write, print, ...
et là je n'arrive pas à écrire dans mon fichier texte.

merci
0
Rejoignez-nous