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 :

Problème de split avec #13#10 ?


Sujet :

Langage Delphi

  1. #1
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut Problème de split avec #13#10 ?
    Bonjour,

    J'utilise la procédure suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    procedure Split(const Delimiter: Char; Input: string; const Strings: TStrings);
    begin
         Assert(Assigned(Strings));
         Strings.Clear;
         Strings.Delimiter := Delimiter;
         Strings.DelimitedText := Input;
    end;
    Dans le code suivant :
    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
     
    var
         MyRec     : TSearchRec;
         i,j,k     : integer;
         Liste     : TStringList;
         Temp      : string;
    begin
     
    [...]
     
    except
         on E : Exception do
         begin
              Log('SQL : ' + IBQuery1.SQL.Text);
              Log('Erreur : ' + E.Message);
              Temp := E.Message;
              Temp := StringReplace(Temp,#$D#$A,'|',[rfReplaceAll]);
              Split('|',Temp,Liste);
              k := 0;
              for k:=0 to Liste.Count-1 do
              begin
                   IdIRC1.Say(ANicknameFrom,'4' + Liste[k] + '');
              end;
         end;
    end;
    Le problème que je rencontre est le découpage de ma ligne en plusieurs bouts à chaque espace. Je pense que le problème est causé par les #13#10 mais je ne sais pas comment le contourner...

    Merci,
    Mathieu

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 859
    Points : 11 303
    Points
    11 303
    Billets dans le blog
    6
    Par défaut
    si Liste est un TStringList, faire Liste.Text:=Temp; va séparer les chaînes selon les #10#13 et t'éviter le Split(...) mais tu en as pê besoin pour autre chose
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    Bonjour,

    Votre solution marche à merveille !

    Merci,
    Mathieu

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 460
    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 460
    Points : 24 874
    Points
    24 874
    Par défaut
    ce Sujet "Construire un tableau à partir d'une chaine (Spliter)" devrait t'interresser !
    Ainsi que "Récupérer chaque chaine séparé par un séparateur", mais sinon, comme le dit tourlourou, la TStringList gère très bien le #13#10, d'ailleurs, ça pose souvent moins de problème que via DelimitedText, j'ai eu des effets de bord étrange avec sur l'espace qu'il considère comme un séparateur sans raison (il considère tout caractère inférieur à 32 comme séparateur par défaut, ce n'est pas expliqué dans l'aide !), c'est ce qui m'a poussé à remplacer ça par un Explode (split) à ma façon
    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

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

Discussions similaires

  1. Problème sur split avec regex
    Par fr1man dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 07/05/2009, 13h46
  2. Réponses: 1
    Dernier message: 09/04/2009, 09h36
  3. problème de virgules avec "Split"
    Par Amiral19 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/07/2007, 07h29
  4. Problème pour utiliser split avec "\"
    Par Nicolas_555 dans le forum Langage
    Réponses: 6
    Dernier message: 03/08/2006, 14h42
  5. Problèmes de versions avec Xalan, Xerces et Java
    Par honeyz dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 05/06/2003, 10h18

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