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 :

écriture avec C-builder 3


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 27
    Par défaut écriture avec C-builder 3
    Bonjour à tous,

    Je suis novice avec C-builder alors je vais peut-être raconter des âneries... Merci pour votre indulgence...

    J'ai C-builder 3 et je n'ai pas les moyens d'acheter la dernière version, surtout que c'est un usage personnel.

    Ma question est la suivante : je voudrais réaliser un changement automatisé de tous les caractères spéciaux pour des fichiers HTML.

    Je dois donc repérer certains caractères, les effacer et les remplacer.

    J'ai lu qu'il existait des fonctions toutes faites pour faire ceci dans C-builder 6, mais je ne l'ai pas...

    Alors dois-je utiliser FileWrite ? Je dois faire un changement de quel type ? Caractère, binaire, ASCII, AnsiString, octal ? Et comment effacer le caractère remplacé ?

    Merci pour votre éventuelle aide.

    rudy hadoux.

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut rudyhadoux:
    La fonction en BCB6 s'appelle " StringReplace ", verifie quelle n'existe pas dans ta version 3

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 27
    Par défaut merci
    Oui, elle existe effectivement. Il faut donc que je charge dans une chaîne AnsiString tout le texte d'un fichier texte ou HTML c'est ça ? Et StringReplace gère toutes les occurences, c'est bien ça ?

    Merci.

    rudy.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 27
    Par défaut ...
    J'ai trouvé ça sur le forum :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     String Source = "skdjhsd;;sdfsdf;;sdf";
     
    //remplace le ; par #
    String Str2 = StringReplace(Source,";","#';TReplaceFlags()<<rfReplaceAll);

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Je pense que tu devrais pouvoir te servir d'un TMemo (pour faire écho du contenu initial et des modifs) ou bien d'un TStringList (si l'écho n'est pas nécessaire).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AnsiString Filename = "....";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(FileExists(Filename))
        {
        Memo1->Lines->LoadFromFile(Filename);
        }
    Ou bien à l'aide d'un TOpenDialog :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(OpenDialog1->Execute())
        {
        Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
        }
    Pour la modification (donc ici avec le TMemo):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    TReplaceFlags Flags = Flags << rfReplaceAll;
    for(int j = 0; j < Memo1->Lines->Count; j++)
        {
        Memo1->Lines->Strings[j] = StringReplace(Memo1->Lines->Strings[j], 
        "....", // ce qui doit être modifié 
        "....", // par ceci
        Flags);
        }
    L'enregistrement devrait normalement se faire à l'aide de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Memo1->Lines->SaveToFile(....); // sous un autre nom sans doute ?
    Avec un TStringList :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    //Déclaré en global ?
    TStringList *Lines = new TStringList;
     
    //Modification
    Lines->Strings[j] = StringReplace(Lines->Strings[j], ..., ..., Flags);
     
    //Libérer le TStringList :
    Lines->Clear(); // peut-être pas utile
    delete Lines;
    A plus !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 27
    Par défaut MERCI
    Merci...

    Très sympa...

    Je suis en train d'essayer tout ça...

    rudy.

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

Discussions similaires

  1. Utiliser DirectX 9 avec C++Builder
    Par Olivier Constans dans le forum DirectX
    Réponses: 2
    Dernier message: 27/06/2005, 11h30
  2. erreur à l'écriture avec SQL
    Par Homer dans le forum ASP
    Réponses: 5
    Dernier message: 07/02/2005, 14h03
  3. Fonts avec c++ Builder
    Par Arnaud-h dans le forum C++Builder
    Réponses: 4
    Dernier message: 19/03/2004, 11h04
  4. LoadLibrary avec C++ Builder 6 sous Windows 2000
    Par tgempp dans le forum C++Builder
    Réponses: 15
    Dernier message: 13/11/2003, 19h19
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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