éclater des chaines de char sous delphi

polo021 -  
 caramidi -
Je cherche le moyen de pouvoir décomposer une chaîne de caractères en plusieurs autres séparées.

2 réponses

  1. nabzone
     
    declare ces variables
    tachaine : WideString;
    tachaine2 : array of string;

    SetLength(tachaine2, 1);
    tachaine := 'voila un exemple de découpage en fonction des espaces contenus dans une chaîne ';

    while Pos(' ', tachaine) > 0 do
    begin
    tachaine2[Length(tachaine2)-1] := trim(copy(tachaine,0, Pos(' ', tachaine))) ;

    delete (tachaine,1, length(copy(tachaine,0, Pos(' ', tachaine)) ));
    SetLength(tachaine2, length(tachaine2)+1);

    end;

    ##########################
    résultats:
    tachaine2[1]:='voila'
    tachaine2[2]:='un'
    tachaine2[3]:='exemple'
    tachaine2[4]:='de'
    ..
    ..
    ..

    tachaine2[12]:='chaîne'

    ##########################

    PS: ce n'est pas un exercice d'optimisation mais j'accepte les critiques (notamment sur le length(tachaine2)+1 qui modifie le tableau dynamique )

    @+
    0
  2. caramidi
     
    la fonction :

    copy('la chaine à décomposer',caractère début,nombre de caractères à garder);

    exemple:
    ma_chaine := copy('123456',2,3);

    renvoie: ma_chaine = 234 // la variable ma_chaine contient alors : 234

    tu peux décomposer ta chaine autant de fois que tu le désire ;)

    permet de tronquer une chaine de caractère.
    0