IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Modification de caractère à partir d'une position


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 85
    Par défaut Modification de caractère à partir d'une position
    bonjour,

    je souhaite modifier une chaine de caractère à partir d'une position sur chaque ligne d'un fichier text.

    je sais modifier et rechercher les carcatères sur l'ensemble du fichier mais pas sur une seule position.

    Quelqu'un peut m'aider?

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Avec le peu d'information que tu nous donne sur le contenu de ta chaine et la nature des caractères à modifier (position dans la ligne toujours la même pi âs ? nombre de caractères toujours le même ou pas ...)

    essai de voir si la solution n'est pas la :

    Manipulation des chaînes de caractères



  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 85
    Par défaut
    ok, je suis un peu juste en explication donc je reprends.

    voici le code utilisé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Dim fso, f
    Dim st 
    Set fso = CreateObject("Scripting.FileSystemObject")
     
    'Ouverture et lecture du fichier à modifier
    Set f = fso.OpenTextFile("c:\temp\test.txt", ForReading)
    st = readAll.f
    f.Close
     
    'ecriture du fichier modifier... aprés avoir remplacer "00000" par "CBMTZ"..
    Set f = fso.OpenTextFile("c:\temp\test.txt", ForWriting)
    f.Write replace(st,"00000","CBMTZ")
    f.close
    Comme on peut le voir il doit remplacer les 00000 par CBMTZ .

    Sachant que cette chaine de caractère se trouve sur plusieurs positions, je cherche à les remplacer uniquement sur la position [428,432] de mon fichier txt.

    voir pièce jointe.

  4. #4
    Membre chevronné Avatar de pitchalov
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Par défaut
    moi je dirais de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Right(Left(st,432),5) = "00000"
      f.Write Left(st,428) & "CBMTZ" & Right(st,Len(st) - 432) 'nombres à réajuster peut être - sûrement
    End If
    C'est de la bidouille, mais ça devrait marcher...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 85
    Par défaut
    je te remercie pour l'info sauf que maintenant il ne modifie que la première ligne et c'est tout.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Set f = fso.OpenTextFile("c:\temp\test.txt", ForWriting)
    If Right(Left(st,432),5) = "00000" Then
    f.Write Left(st,427) & "CBMTZ" & Right(st,Len(st) - 432)
    End If
    f.close

  6. #6
    Membre chevronné Avatar de pitchalov
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 340
    Par défaut
    ah oui, alors dans ce cas il faut lire le fichier ligne par ligne avec la méthode ReadLine de opentextefile (en mode lecture) et écrire en parralèle dans un fichier temporaire avec la méthode WriteLine de opentextefile (en mode écriture)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment ouvrir un FileStream à partir d'une position choisie
    Par ryoussef19 dans le forum VC++ .NET
    Réponses: 2
    Dernier message: 19/06/2007, 13h58
  2. Réponses: 4
    Dernier message: 08/01/2007, 23h38
  3. [XSLT] [JavaScript] tri + affichage à partir d'une position
    Par Fabouney dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 21/11/2006, 08h46
  4. extraction caractère à partir d'une table
    Par By-nôm dans le forum Access
    Réponses: 6
    Dernier message: 04/08/2006, 15h13
  5. Réponses: 4
    Dernier message: 07/01/2006, 18h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo