Comment scinder une chaîne par multi-caractère délimiteur?
Est-il un Delphi fonction pour séparer une chaîne par multi-caractère délimiteur plutôt que d'un seul caractère ?
Par exemple lorsque j'utilise la fonction de cette façon:
SplitString('Whale<->Mammal<->Ocean', '<->')
Je voudrais obtenir un résultat de ces 3 chaînes:
'Whale', 'Mammal', 'Ocean'
Est-il une telle fonction dans Delphi pour cela ?
Pour tous vous fermez les électeurs: veuillez lire les questions. Ce n'est manifestement pas un dupe de stackoverflow.com/questions/2625707/...
OriginalL'auteur awmross | 2013-03-15
Vous devez vous connecter pour publier un commentaire.
Il y a un autre assez simple solution à l'aide de TStringList. Changer le saut de ligne:
+1 j'aime beaucoup.
Si vous utilisez 'StrictDelimiter'? Ou n'est-il pas question dans ce cas?
comme nous n'utilisons pas de DelimitedText voici l'état de StrictDelimiter n'a pas d'importance du tout.
OriginalL'auteur Uwe Raabe
Vous pouvez consulter mon StringUtils.pas d'unité qui fait partie de Cromis Bibliothèque
Il y a un texte simple générateur de jetons. Mais il est probablement juste ce dont vous avez besoin. L'interface est comme ça
Suports chaînes de caractères comme des délimiteurs et aussi plus d'un délimiteur.
Ses une bibliothèque que j'utilise dans beaucoup de code de production et de les partager pour les autres si ils le souhaitent. J'en ai encore pour couvrir certaines unités avec des tests. Pour la plupart des morceaux que j'ai la démo de programmes qui couvrent la plupart des fonctionnalités. Je vais étendre la couverture de test et de faire le SVN public. Mais la documentation sera probablement très tard que je n'ai pas beaucoup de temps ces jours-ci. Certains composants sont très utilisé par beaucoup de gens, surtout de la CIB et le Planificateur.
faire confiance aux sources que vous avez posté dans une autre Réponse, il ne tokenizes une fois pour toutes sur les séparateurs, ni sur eux tous) dans n'importe quel ordre elles sont respectées.
OriginalL'auteur Runner
Si vous avez JCL installé ensuite dans le
jclStrings
appareil, il estStrToStrings
procédure:OriginalL'auteur ain
Il n'y a pas une telle fonction "de boîte". Si vos chaînes contiennent régulièrement des "bonnes" de texte, vous pouvez utiliser StringReplace exotiques symbole, sinon il n'est pas difficile d'écrire propre fonction de répartition à l'aide de Pos ou IdStrings.SplitString (si elle est disponible dans D2010)
Vous pouvez généralement trouver un "exotiques symbole" qui n'est pas utilisé dans les chaînes quelque part dans la zone non imprimable parties de l'ASCII, par exemple #13 (retour chariot) ou n ° 8 (bell).
OriginalL'auteur MBo
Je ne sais pas si Delphi a un standart split procédure qui utilise une chaîne de caractères comme un délimiteur. Mais vous pouvez écrire votre propre, soit qu'elle a ou non:
Espère que cela aide..
OriginalL'auteur The_aLiEn