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

  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.

  7. #7
    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 OK...
    Bon, tout fonctionne sauf une chose.

    J'ai mis deux Edit pour remplacer les chaînes de son choix. Mais ce code là ne fonctionne pas, je ne sais pas pourquoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     if (CheckBox14->Checked == true)
    for(int j = 0; j < Memo->Lines->Count; j++)
        {
        Memo->Lines->Strings[j] = StringReplace(Memo->Lines->Strings[j],
        Edit1->Text, // ce qui doit être modifié
        Edit2->Text, // par ceci
        Flags);
        }
    Merci.

    rudy.

  8. #8
    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 ça marche...
    C'est idiot, je n'avais pas coché...

    Tout marche.

    Merci.

    Si ce programme de base intéresse quelqu'un je lui envoye.

    rudy.

  9. #9
    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 encore un petit problème
    C'était trop beau, encore un petit problème...

    Lorsque je vais dans le dossier de mon projet et que je clique sur l'éxécutable, je reçois un message d'erreur avec une Dll manquante...

    Comment faire pour que l'exe fonctionne sans builder ?

    Merci.

    rudy.

  10. #10
    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
    Dans la FAQ sur le site

  11. #11
    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 OK
    Merci à tous...

    rudy.

    ps : rudy est mon prénom, personnellement je ne vois pas l'intérêt de prendre un pseudo. On a un prénom et un nom, c'est pour s'en servir...

  12. #12
    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
    Si tout est resolu click sur le bouton resolu

  13. #13
    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 dll manquante
    Il manquait quand même bien :

    cp3240mt.dll

    Donc ! Encore mieux, est-il possible d'enregistrer la dll en question grâce au programme avant le message d'erreur au lancement ???

    Merci.

    rudy.

    ps : pourquoi windows ne met-il pas toutes les dll d'office dés son installation ? Ce sont des fichiers qui ne prennent pas trop de place, surtout que l'on a aujourd'hui des disques durs énormes en Go...

  14. #14
    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 Mon programme
    Pour ceux que ça intéresserait...

    rudy.
    Fichiers attachés Fichiers attachés

+ 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