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

C++Builder Discussion :

Avec TMemoryStream : remplacer.


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 2
    Par d�faut Avec TMemoryStream : remplacer.
    Bonjour et bonne ann�e,

    Pas tres cal� en TMemoryStream ! (Cbuilder) et apres une apres-midi de recherche, je rend la main.
    1) Pour changer tous les caract�re ";" par "," dans 1 gros fichier, je fais :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    int T;  
    char *C;
    char Ligne[545];
    TMemoryStream* MS = new TMemoryStream();
    MS->LoadFromFile("ESSAI.TXT");
     
    T = MS->Size; 
    C = new char[T];
    MS->Read(C+1,T);
     
    for (int I=0; I<T; I++)  {
       if  (C[I] == ';'    C[I]=',';            // Je change les ";" par des "," dans tout le texte.
    }
     
     MS->Position = 0;
     MS->Write(C,T);
     
    MS->SaveToFile("ESSAI2.CSV");
     
    delete MS;
     delete[] C;
    }
    Evidemment ca fonctionne imp�cable !...

    2) ce qui me plairait serait de pouvoir changer toutes les occurences ";;" par ",-,"
    (Autrement dit tout les endroits ou il y a un double point-virgule ins�rer un signe moins)
    Quelqu'un aurait-il la connaissance pour me mettre sur le "droit" chemin ?
    Merci par avance.

    jcsoft

  2. #2
    Membre Expert
    Avatar de Gilles Lou�se
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par d�faut
    Pour ma part, je passerais par des TStringList, par exemple ceci :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    int i;
    TStringList *SL1, *SL2;
     
    SL1=new TStringList;
    SL2=new TStringList;
    SL1->LoadFromFile("essai.txt");
    for(i=0;i<SL1->Count;i++) SL2->Add(TraiteLigne(SL1->Strings[i]));
    SL2->SaveToFile("modif.txt"); 
    delete SL1;
    delete SL2;
    }
    //------------------------------------------------
    AnsiString __fastcall TForm1::TraiteLigne(AnsiString A)
    {
    int i;
    AnsiString B;
     
    for(i=1;i<A.Length()+1;i++)
       {
       if(A[i]==';')
          {
          if(i<A.Length() && A[i+1]==';')
             {
             B+=',';
             B+='-';
             B+=',';
             i++;
             }
          else
             {
             B+=',';
             }
          }
       else
          {
          B+=A[i];
          }
       }
    return B;
    }
    � bient�t
    Gilles

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    2
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 2
    Par d�faut
    Effectivement, j'�tais peut-�tre trop omnubil� par le TMemoryStream,
    je n'ai m�me pas penser au TStringList, qui apparemment m'a l'air assez rapide.

    Ok pour ce rafra�chisement de "my Memory" et surtout pour la soluce,

    Merci encore Gilles et bonne fin de soir�e...
    jcsoft

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 3
    Dernier message: 12/01/2008, 23h16
  2. [Configuration] probleme avec le remplacement des accents
    Par xtaze dans le forum EDI, CMS, Outils, Scripts et API
    R�ponses: 12
    Dernier message: 17/12/2005, 19h16
  3. Soucis avec le remplacement de caract�res sp�ciaux
    Par Oluha dans le forum MS SQL Server
    R�ponses: 3
    Dernier message: 04/07/2005, 11h42
  4. requete select avec AS remplacement de valeur
    Par pi3141563 dans le forum Requ�tes
    R�ponses: 3
    Dernier message: 17/04/2004, 22h15
  5. Probl�me avec TMemoryStream + jpeg
    Par zymoplex dans le forum Langage
    R�ponses: 2
    Dernier message: 01/02/2004, 19h46

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