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

Langage Delphi Discussion :

Récupérer texte dans des variables


Sujet :

Langage Delphi

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut Récupérer texte dans des variables
    salut

    j'expose mon problème avec un exemple :

    dans edit1.text il y a : aaaa|u|xxxxxxx|ggggggg

    jaimerais qu'en apuyant sur bouton1 :

    variable 1 = aaaa

    variable 2 = u

    variable 3 = xxxxxxx

    variable 4 = ggggggg

    jai mis 4 variable mais il se peut que j'utilise que 2 ou alors 6 ...
    donc il faudrait que ce soit général

    jai mis : aaaa|u|xxxxxxx|ggggggg
    mais si vous trouvez (selon votre code) que c'est plus facile de faire aaaa|u|xxxxxxx|ggggggg| ou alors |aaaa|u|xxxxxxx|ggggggg| ou autres ... et bien ya pas de prob, c'est juste qu'il faut que je sélectionne le tesxte

    merci d'avance

  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    Alors, je pense que la première chose à faire est de formater le texte à ta convenance:
    Si tu as un premier caractère = '|' alors l'enlever ( Delete(s,1,1) )
    S'il y a ce caractère à la fin, l'enlever (s:=Copy(s,1,(Length(s)-1));
    Enuiste, avec Pos et Copy, tu nécupères chaque bloc de ta string

  3. #3
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    Citation Envoyé par Pedro204
    Salut
    Alors, je pense que la première chose à faire est de formater le texte à ta convenance:
    Si tu as un premier caractère = '|' alors l'enlever ( Delete(s,1,1) )
    S'il y a ce caractère à la fin, l'enlever (s:=Copy(s,1,(Length(s)-1));
    Enuiste, avec Pos et Copy, tu nécupères chaque bloc de ta string
    le texte sera affiché comme je veux donc pas besoin de delete, jai di sa pour si sa genai certaine personne

    avec copy et post jse po sa marche po
    seulement pour le 1er caractere :s

    var1 := copy(edit1.text,1,posex('|',edit1.text)-1);
    var2 := copy(edit1.text,1,pos('|',edit1.text)-2);
    var3 := copy(edit1.text,1,pos('|',edit1.text)-3);
    var4 := copy(edit1.text,1,pos('|',edit1.text)-4);

  4. #4
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Eh oui c'est normal, A chaque fois que tu récupères un bloc, il faut supprimer le bloc dans la string, sinon, Pos va tout le temps renvoyer la même position...
    Pour cela, utilise Delete et la longueur de la chaine que tu as extrait juste avant +1 pour enlever le caractère '|'
    Et enlève les -1,-2, etc... Ils ne servent à rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    s:=Edit1.text;
    var1 := copy(s,1,pos('|',edit1.text));
    Delete(s,1,Length(s)+1); //Je ne suis pas sur que ça marche avec une variable... A tester
    var2 := copy(s,1,pos('|',edit1.text));
    Delete(s,1,Length(s)+1);
    var3 := copy(s,1,pos('|',edit1.text));
    Delete(s,1,Length(s)+1);
    var4 := s;

  5. #5
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    merci de ton aide mais ton code n'a pas fonctionné

    mais je viens tout juste de trouver la solution en utilisant ces 2 fonctions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function droite(substr: string; s: string): string;
    begin
      if pos(substr,s)=0 then result:='' else
        result:=copy(s, pos(substr, s)+length(substr), length(s)-pos(substr, s)+length(substr));
    end;
     
    function gauche(substr: string; s: string): string;
    begin
      result:=copy(s, 1, pos(substr, s)-1);
    end;

  6. #6
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Ah bon? Ca n'a pas marché? C'est sur Delete c'est ça?

  7. #7
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut
    rien ne s'est passé

  8. #8
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    C'est parce que je me suis trompé:
    Bon tu as trouvé mais je mets quand même le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    s:=Edit1.text;
    var1 := copy(s,1,pos('|',s));
    Delete(s,1,Length(s)+1); //Je ne suis pas sur que ça marche avec une variable... A tester
    var2 := copy(s,1,pos('|',s));
    Delete(s,1,Length(s)+1);
    var3 := copy(s,1,pos('|',s));
    Delete(s,1,Length(s)+1);
    var4 := s;

  9. #9
    Débutant
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    886
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 886
    Points : 330
    Points
    330
    Par défaut

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 19/12/2013, 14h25
  2. Réponses: 2
    Dernier message: 22/06/2008, 15h41
  3. Récupérer le contenu d'un fichier texte dans une variable
    Par heureactuelle dans le forum MATLAB
    Réponses: 2
    Dernier message: 17/05/2008, 15h10
  4. récupérer une partie d'un texte dans une variable
    Par Bubale dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/05/2008, 11h18
  5. Récupérer des données javascript dans des variables php
    Par TigerWolf dans le forum Général JavaScript
    Réponses: 21
    Dernier message: 25/06/2007, 10h03

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