Chercher un mot dans une string et prendre le(s) suivant(s) ...

bobalex19 Messages postés 3 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 27 octobre 2003 - 18 oct. 2003 à 00:30
bobalex19 Messages postés 3 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 27 octobre 2003 - 27 oct. 2003 à 11:39
Alors voila,
Deja bonjour ;)

Cela fait quelques jours que jesaye de trouver une solution a ce probleme mais je ny arrive pas ...

Alors voila ce que jaimerai faire :

Donc j'ai une chaine qui s'appelle par exemple: phrase , qui contiendrai la phrase:'LeMot secondMot'

JE voudrai verifier si cette chaine commence par le mot 'LeMot' (par exemple) et , ci elle commence bien par ce mot , passer a une autre étape :
c'est a dire je voudrai supprimer le mot 'LeMot' ou alors "sauter" ce mot et lespace qui le suit, pour ne prendre en compte que la suite c'est a dire 'SecondMot' , (et pourquoi pas metre ce secondMot dans une autre variable !) !

Voila j'en ai donc fini avec ma question ,
je ne sais pas si je me suis bien expliquer ou si jai oublier de dire queqlue chose mais dans ce cas nhesitez pas a me le dire ... (il est tard et je suis mort ce soir :sleepy) )
A voir également:

5 réponses

japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
18 oct. 2003 à 12:51
De manière simple (sans tenir compte des majuscules/minuscules, et en admettant que l'espace entre les deux mots soit constant), je ferais comme ça :
function ChercheSecondMot(Phrase, Mot: String): String;
begin
  if Pos(Mot, Phrase) = 1 then
    Delete(Phrase, 1, Length(Mot) + 1)
  else Phrase := '';
  Result := Phrase;
end;


que tu appelles ainsi :

SecondMot := ChercheSecondMot(LaPhrase, Lemot);


Bonne Prog' à toi :-p
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
18 oct. 2003 à 13:44
Mille excuses, ma fonction a un bug :
si les premiers caractères de LeMot sont les premiers caractères du premier mot de LaPrase, le résultat est erronné :-(
Voici un nouveau code en urgence, lol
On doit pouvoir l'optimiser, mais j'ai fait ça très vite.
En prime, pour me faire pardonner, mon code:
- néglige les différences Majuscule/minuscule entre le mot recherché et le mot trouvé avec la fonction AnsiUpperCase();
- autorise les erreurs de saisie des espaces entre les mots ave la fonction Trim();

function ChercheSecondMot(Phrase, Mot: String): String;
var PremierMotPhrase: String;
    PosPremierEspace: Integer;
begin
  PosPremierEspace := Pos(' ', Phrase);
  PremierMotPhrase := Copy(Phrase, 1, PosPremierEspace - 1);
     {
  if (Pos(AnsiUpperCase(Mot), AnsiUpperCase(Phrase)) = 1)
     and (Length(PremierMotPhrase) = Length(Mot)) then
     }
  // plus simple :
  if UpperCase(Mot) = UpperCase(PremierMotPhrase) then
    begin
      Delete(Phrase, 1, Length(Mot));
      Result := TrimLeft(Phrase);
    end
  else Phrase := '';
end;


Bonne prog', et pas de bug cette fois j'espère ! :blush)
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
18 oct. 2003 à 16:50
En fait, en relisant mon code, je m'aperçois que cette ligne n'a pas de sens :

else Phrase := '';


Bon, y'a des jours comme ça... :dissapprove)
Si l'on veut absolument initialiser le résultat, il faut dire :

else Result := '';


ou mettre au début du code :

Result := '';


Ce qui donne :

function ChercheSecondMot(Phrase, Mot: String): String;
var PremierMotPhrase: String;
    PosPremierEspace: Integer;
begin
  Result := '';
  PosPremierEspace := Pos(' ', Phrase);
  PremierMotPhrase := Copy(Phrase, 1, PosPremierEspace - 1);
  if UpperCase(Mot) = UpperCase(PremierMotPhrase) then
  begin
    Delete(Phrase, 1, Length(Mot));
    Result := TrimLeft(Phrase);
  end;
end;


Je vais finir par y arriver... :big)
0
bobalex19 Messages postés 3 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 27 octobre 2003
19 oct. 2003 à 12:08
Ok , Ben merci mille fois pour tes reponses japee!

Je vais tester ca mais je pense que ca devrai tout a fait me convenir :)

Des reponses comme ca donnent envie de plus participer a ce forum/site.

bon desoler jdoi y aller en vitesse alors @+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bobalex19 Messages postés 3 Date d'inscription jeudi 10 juillet 2003 Statut Membre Dernière intervention 27 octobre 2003
27 oct. 2003 à 11:39
oui c'est bon merci cela me va! 8-)

Merci poyur ta reponse!

@+
0
Rejoignez-nous