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 :

comment copier une partie d'un String?


Sujet :

Delphi

  1. #1
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 77
    Points : 45
    Points
    45
    Par défaut comment copier une partie d'un String?
    Bonjour,

    je voudrais recuperer des parties de mon String pour les mettres dans un autre String, mais je ne sais pas comment faire, quelqu'un aurait-il une idée?

    MonString est de la forme suivante :

    c10 = titi, toto, tutu, tata, tyty

    je voudrait recuperer dans un premier temps ce qui est avant le '=', donc c10, puis ce qui est apres la 3eme virgule, donc tata.

    merci

  2. #2
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    Par défaut
    Regarde au niveau des méthodes Copy et Pos

  3. #3
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 77
    Points : 45
    Points
    45
    Par défaut
    ok, je vais regarder ca, merci
    en fait, j'ai regardé, et copy, je ne le trouve nullepart, et pos permet seulement de trouver l'indice du 1er caractere qu'il voit dans la chaine, donc je peux faire comment pour mes virgules?
    dsl je suis debutante en delphi..

  4. #4
    Membre éclairé Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Points : 789
    Points
    789
    Par défaut
    Citation Envoyé par barucca
    en fait, j'ai regardé, et copy, je ne le trouve nullepart,
    Dans mon aide de Delphi 7 (désolé c'est en anglais) :
    Copy function

    Returns a substring of a string or a segment of a dynamic array.

    Unit

    System

    Category

    string handling routines

    Delphi syntax:

    function Copy(S; Index, Count: Integer): string;
    function Copy(S; Index, Count: Integer): array;

    Description

    S is an expression of a string or dynamic-array type. Index and Count are integer-type expressions. Copy returns a substring or subarray containing Count characters or elements starting at S[Index]. The substring or subarray is a unique copy (that is, it does not share memory with S, although if the elements of the array are pointers or objects, these are not copied as well.)

    If Index is larger than the length of S, Copy returns an empty string or array.

    If Count specifies more characters or array elements than are available, only the characters or elements from S[Index] to the end of S are returned.

    Note: When S is a dynamic array, you can omit the Index and Count parameters and Copy copies the entire array.



    Citation Envoyé par barucca
    et pos permet seulement de trouver l'indice du 1er caractere qu'il voit dans la chaine, donc je peux faire comment pour mes virgules?
    Regarde sous PosEx alors . Y'a un param supplémentaire pour le début de la recherche.

    Aussi, je te suggère de consulter la section Chaînes de caractères de la FAQ. Tu y trouveras surement plein de réponses.

    Bon dev!

  5. #5
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 77
    Points : 45
    Points
    45
    Par défaut
    ok, merci bien, je vais regarder avec ce que tu me dis, et si ca marche pas, je regarderais mieux la FAQ :p.
    sinon, je ne sais pas pourquoi je ne l'ai pas dans l'aide moi copy... je vais essayer de voir si ca marche quand meme

    merci beaucoup

  6. #6
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    la méthode a appliquer dépend de la maniere coment vous voullez découpez la chaine

    vous pouvez gerer votre chaine comme un tableau et la parcourir carctere par caractere.

  7. #7
    Membre régulier
    Profil pro
    Directeur
    Inscrit en
    Juin 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Juin 2005
    Messages : 113
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par barucca
    ... et pos permet seulement de trouver l'indice du 1er caractere qu'il voit dans la chaine, donc je peux faire comment pour mes virgules?
    Perso, je passerait pas une chaine intermediaire, tu delete 2 fois la virgule avec un for et un chaine temporaire, puis tu prends ce qu'il y a apres la 3eme virgule (qui est devenu la premiere)

  8. #8
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    il y a également les tstringlist:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var
      LMots: TStringlist;
     
    begin
      LMots := TStringList.create;
      try
      LMots.Text := StringReplace ( Copy( Chaine, Pos( '=', Chaine ) + 1, Length( Chaine ) ), ',', #13, [ rfReplaceAll ] );
     
      // utilisation
      showmessage( LMots[ 2 ] ); // montre le 3eme mot
     
      finally LMots.Free; end;

  9. #9
    Membre du Club
    Inscrit en
    Mars 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 77
    Points : 45
    Points
    45
    Par défaut
    Merci a tous!!

    j'ai finalement reussi a utiliser la methode copy, et posEX, ca fonctionnem merci

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

Discussions similaires

  1. [C#] Comment copier une partie d'un texte ?
    Par zidenne dans le forum C#
    Réponses: 1
    Dernier message: 18/09/2006, 10h37
  2. comment copier une partie d'image
    Par mouchie82 dans le forum C++Builder
    Réponses: 1
    Dernier message: 24/06/2006, 14h43
  3. [C++] Comment copier une partie d'une chaine?
    Par irnbru dans le forum C++
    Réponses: 11
    Dernier message: 25/10/2005, 15h36
  4. comment remplacer une partie de texte dans un champs
    Par patlapi dans le forum Paradox
    Réponses: 4
    Dernier message: 20/11/2003, 14h38
  5. Comment copier une image dans le presse papier.
    Par cprogil dans le forum Langage
    Réponses: 7
    Dernier message: 09/09/2003, 15h54

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