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 :

supprimer des mots d'un taille définite dans un memo


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2009
    Messages : 61
    Par défaut supprimer des mots d'un taille définite dans un memo
    Salut à tous, on a un memo qui contient un texte (plusieurs lignes), je veux la suppression des mots qui ont une taille donnée par l'utilisateur.
    Exemple:
    "Pour toutes les malformations congénitables, problèmes respiratoires, insuffisances cardiaques ou ambiguité génitales,tous les parents de nouveaux-nés atteints par ces pathologie étaient obligés de s'adresser à ces cliniques privées, où les tarifs ne sont pas à la portée de toutes les familles."

    taille=3 donc on aura : Pour toutes malformations congénitables, problèmes respiratoires, insuffisances cardiaques ou ambiguité génitales,tous parents de nouveaux-nés atteints pathologie étaient obligés de s'adresser à cliniques privées, où tarifs ne sont à la portée de toutes familles.

    Merci bien

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Par défaut
    salut,
    le plus simple c'est de parcourir ton fichier (ou ta source de donnée), d'ouvrir un autre pour écrire le nouveau texte; et pour chaque mot que tu lis du premier tu vérifies sa taille si c'est superieur à 3 alors tu l'écris sur le 2° ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //lecture de ton texte mot par mot et mettre chaque tocken dans une chaine 'mot'
     
    ....
     
     
    if(mot.Length()>3){fprintf(fichier_out,mot);)}
     
    .....

  3. #3
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Sérieusement farid0031, c'est ton quatrième messages sur comment faire pour calculer la grandeur d'une String.

    Il y a eu:


    SVP, va faire un tour dans les tutoriels et dans la FAQ car tes questions son souvent très simple résoudre.

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2009
    Messages : 61
    Par défaut
    merci a tousse, j'ai trouver la solution voila le code:
    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
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    int i=1;
    static int line=0; int k=0;int log_mot;
    AnsiString chaine,nam;
    int j; int taille=StrToInt(Form1->Edit1->Text);
    if(line < Memo1->Lines->Count)
                                 {
    chaine=Memo1->Lines->Strings[line];
    while(k!=chaine.Length()){
    while(chaine[i]==' ') i++;
     j=i;
    while(chaine[j]!=' ') j++;
      if(chaine[j-1]==',') {log_mot=(j-i)-1;nam=Memo1->Lines->Strings[line].SubString(i,log_mot+2);}
        else {log_mot=j-i;nam=Memo1->Lines->Strings[line].SubString(i,log_mot+1);}
     if(log_mot==taille){
     
    int position=Memo1->Lines->Text.Pos(nam);//indique l'index de chaine
    if (position!=0)
      {
     Memo1->SetFocus();
     Memo1->SelStart=position-1;
     Memo1->SelLength=nam.Length();
     Memo1->ClearSelection();
      }
             }
    else {i=j+1;k=k+nam.Length();}
    chaine=Memo1->Lines->Strings[line];
     
                        }
    line++;
    Button1Click(Sender);
     
     
    }
     
    else {ShowMessage("l'operation est terminer");
     line=0;Form1->Edit1->Clear(); }
    }

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

Discussions similaires

  1. Supprimer des mots dans un champ
    Par bellybello dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 16/06/2011, 15h13
  2. Supprimer des mots dans une chaine de mots clés
    Par Generation-Web dans le forum Langage
    Réponses: 4
    Dernier message: 03/01/2011, 15h31
  3. supprimer des mots dans un fichier
    Par belgariel dans le forum Administration système
    Réponses: 1
    Dernier message: 30/10/2009, 12h01
  4. Supprimer des mots dans une chaine de caractères
    Par Sanceray3 dans le forum Langage
    Réponses: 3
    Dernier message: 31/08/2009, 11h04
  5. [RegEx] supprimer des mots dans une phrase
    Par anarchoi dans le forum Langage
    Réponses: 6
    Dernier message: 10/05/2007, 09h44

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