Remplacer quelques caractères dans un fichier txt

z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 - 21 déc. 2003 à 23:31
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 22 déc. 2003 à 11:24
Salut

Je voudrais savoir comment remplacer la chaine "'" (sans les guillemets), par le caractère ' (apostrophe)
Tout ca dans un fichier texte, sans perdre la disposition du texte...

Merci.

6 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 déc. 2003 à 07:22
Tu charges ton fichier dans une variable String,
Tu utilises Replace sur cette même variable.
Tu replaces le tout dans ton fichier.......

By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 2
22 déc. 2003 à 09:20
Ouais, j'avais fais ca, mais apres, je perd la mise en forme du texte... C'est a dire que je perds les retours à la ligne etc...

Ah moins que je me sois gouré quelque part... Tu peux m'envoyer un code?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 déc. 2003 à 10:55
J'ai pas VB sous la main, mais ca dois donner quelque chose comme ca....

Dim Buffer As String, carac As String * 1
Dim Canal as byte
Dim i as integer

Canal = FreeFile
Open "CheminFichier" For Binary Access Read As #Canal
For i = 1 To LOF(1)
Get Canal, i, carac
Buffer = Buffer & carac
Next i
Close #Canal

Buffer = Replace ( Buffer , "a" , "z" )

Kill "CheminFichier"

Canal = Freefile
Open "CheminFichier" For Binary Access Write As #Canal
For i = 1 To Len(Buffer)
Put Canal, i, Mid$(Buffer, i, 1)
Next i
Close #Canal


By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
K@zuya Messages postés 306 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 15 février 2016
22 déc. 2003 à 11:10
moi je ne suis pas d'accord avec renfield, il y a une meilleur solution etant donné que la mise sous variable d'un fichier peut parfois creer des soucis si le fichier est trop gros, tu devrai faire ceci:

Private Sub FileReplace(File As String, Original_Char As String, New_Char As String)If Dir$(File) vbNullString Or File vbNullString Then Exit Sub
Dim Char As String * 1
Dim Pos As Long
Open File For Binary As #1
    Open File & "2" For Binary As #2
        Do While Not EOF(1)
            Pos = Pos + 1
            Get #1, Pos, Char            If Char Original_Char Then Char New_Char
            Put #2, Pos, Char
        Loop
    Close #2
Close #1
Kill File
FileCopy File & "2", File
Kill File & "2"
End Sub


K@zuya 8-)
0

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

Posez votre question
z980x Messages postés 897 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 26 juillet 2007 2
22 déc. 2003 à 11:14
Merci K@zuya Mais la solution de Renfield marche parfaitement et est plus simple à comprendre ! (Pour ce que je fais, c'est excellent, ca garde la mise en page, donc c'est très bien.)

Merci Renfield !
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 déc. 2003 à 11:24
Thanks.

Je suis assez d'accord avec Kazuya, sa méthode est pas mauvaise, et présente l'avantage d'être sous le forme d'une fonction. En fait, Kazuya lit le fichier1 caractere par caractere, s'il s'agit du caractere a remplecer, on le remplace par le caractere voulu. On ecrit alors le fichier2, caractere par caractere. Enfin, on efface le fichier 1, on renomme le fichier2 en fichier1.

Cette methode est assez bonne pour de gros fichiers, l'idéal serait de l'adapter pour pouvoir effecture des remplacements de plus d'un caractère.

By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
Rejoignez-nous