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 :

[DELPHI] String contenant un pipe |


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2003
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 21
    Points : 16
    Points
    16
    Par défaut [DELPHI] String contenant un pipe |
    Bonjour,

    j'ai une string s (qui contient une ligne de commande) avec un pipe au milieu :

    du style : "c:\program files\toto.exe" - | "c:\aften.exe" ...

    Sauf que lorsque je stocke ma chaine dans une tstringlist en faisant list.add(s), et bien seule la prtie AVANT le | est stockée !!

    Comment remédier à ce problème ? J'ai l'impression que Delphi interprète le caractère | comme un retour à la ligne ou un truc du genre.

    Merci pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 665
    Points : 25 459
    Points
    25 459
    Par défaut
    Tu n'es pas obligé de taggé [DELPHI], c'est une section dédiée à Delphi
    Par contre, tu peux taggé avec la version [D7], [DXE2] ...

    J'ai testé en BCB2007
    Je n'ai aucun problème !
    Comme utilises-tu la chaine par la suite ?
    Pense que l'espace est considéré comme un Séparateur, mais je crois pas que cela affecte Add mais plutôt Text ou DelimitedText
    StrictDelimiter corrige ce problème à partir de 2005

    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    {
      TStringList *SL = new TStringList();
      SL->Add("\"c:\\program files\\toto.exe\" - | \"c:\\aften.exe\"");
      ShowMessage(SL->Strings[0]);
      ShowMessage(SL->Text);
      delete SL;
     
      SL = new TStringList();
      SL->Add("c:\\program files\\toto.exe - | c:\\aften.exe");
      ShowMessage(SL->Strings[0]);
      ShowMessage(SL->Text);
      delete SL;
    }

    Strings et Text contiennent tous les deux la chaine entière !

  3. #3
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    Non y'a pas de raison particulière, fait voir ton code..

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 298
    Points : 117
    Points
    117
    Par défaut
    Je crois que extractstrings avec comme séparateurs ' ' et '|' et refusant les strings nuls fera l'affaire. Il remplira les 2 premiers éléments de la stringliste

    Fred

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 665
    Points : 25 459
    Points
    25 459
    Par défaut
    Justement, il ne semble pas vouloir découper sinon il n'aurait pas utilisé Add, il a une perte de contenu (ou il est en [1] ou [2])

    Mais effectivement ExtractStrings a un comportement similaire à StrictDelimiter mais existe depuis longtemps !
    Cela comporte le défaut de gérer les guillemets double " comme un séparateur, du coup le problème de découpage se déplace !

    ExplodeLazy est strict de strict !

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/10/2007, 17h24
  2. Rech Fonction tri : String contenant lettre+chiffres[VB6]
    Par t'djinn dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 10/07/2006, 19h08
  3. Exécution d'une string contenant un caractère réservé
    Par thunderblade dans le forum Linux
    Réponses: 3
    Dernier message: 05/04/2006, 17h32
  4. [XSLT] Transformer un String contenant du xml
    Par VinceFromBcn dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 07/07/2004, 12h42
  5. [xsl java]Appliquer une XSL à un String contenant doc XML
    Par aldo047 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 03/04/2003, 15h46

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