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

Delphi Discussion :

afficher le premier mot d'une string


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 80
    Par défaut afficher le premier mot d'une string
    je récupère une chaine de caractères, et je souhaiterais afficher uniquement le premier mot dans un TEdit,soit s'arrêter au premier espace...quelqu'un saurait-il m'éclairer?
    merci,

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Salut,

    Afficher le premier mot d'une string :

    1) Avec la fonction Trim(const S: string): string; tu supprimes les espaces du début (et ceux de la fin) de la chaine.

    2) Avec la Pos(Substr: string; S: string): Integer; tu fais po:=Pos(' ',maStringSource); ce qui donne la position (po : integer) de l'espace suivant le 1er mot,

    3) Puis avec la function Copy(S; Index, Count: Integer): string; tu fais monPremierMot:=Copy(maStringSource,1,po);
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  3. #3
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 096
    Par défaut
    Par Exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function FirstWord(const S: string): string;
    var
      Idx: Integer;
    begin
      Idx := Pos(' ', S);
      if Idx > 0 then
        Result := Copy(S, 1, Idx)
      else
        Result := ''; // ou S;
    end;
    et si tu veux n'importe quel mot, le premier ayant l'index 0, le second 1 ...

    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
    function GetString(const DelimitedText: string; Delimiter: Char; Index: Integer = 0): string;
    var
      idtb, idte, occ: Integer;
    begin
      Inc(Index); // Paramètre de 0 à n-1, Algo en 1 à n
      if Index <= 0 then
        Index := 1;
     
      idtb := 0;
      idte := 1;
      occ := 0;
      while (idte <= Length(DelimitedText)) and (occ < Index) do
      begin
        if DelimitedText[idte] = Delimiter then
        begin
          Inc(occ);
          if occ < Index then
            idtb := idte;
        end;
        Inc(idte);
      end;
      if (occ > 0) and (idte >= Length(DelimitedText)) then
        Inc(Occ);
     
      if occ = 0 then
        Result := DelimitedText
      else
        if occ =  Index then
          if idte <= Length(DelimitedText) then
            Result := Copy(DelimitedText, idtb+1, idte-idtb-2)
          else
            Result := Copy(DelimitedText, idtb+1, idte-idtb-1)
        else
          Result := '';
    end;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Par défaut
    Re-Salut,

    Result := ''; // ou S;
    Cela m'évoque un oubli dans mon message précédent lorsque po=0 (ou Idx=0) le premier mot c'est évidemment la chaine-source dans sa totalité il vaut mieux Result := S que de placer S en commentaire.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 80
    Par défaut
    je vous remercie

Discussions similaires

  1. supprimer le premier caractere d'une string
    Par themulot dans le forum C++
    Réponses: 6
    Dernier message: 23/07/2007, 11h43
  2. afficher le premier mot d'une phrase.
    Par Empty_body dans le forum Langage
    Réponses: 3
    Dernier message: 12/06/2007, 17h55
  3. récuperer les mots d'une string
    Par kwafaa dans le forum VB.NET
    Réponses: 1
    Dernier message: 09/05/2007, 13h10
  4. Récupérer uniquement le premier mot d'une phrase
    Par joselito dans le forum Langage
    Réponses: 1
    Dernier message: 19/02/2007, 23h24
  5. [Tableaux] récuperer n premiers mots d'une chaine
    Par gibigue dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2006, 02h17

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