Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TStringList, Delimiter='@' (https://www.delphipraxis.net/126184-tstringlist-delimiter%3D%40.html)

hoika 19. Dez 2008 15:39


TStringList, Delimiter='@'
 
Hallo,

ich will einen String auseinandernehmen.

Folgender String:
12345@Tricor Packaging & Logistics AG

Delimiter:= '@';
StrList.DelimitedText:= '12345@Tricor Packaging & Logistics AG';

Jetzt sollen ja nur 2 Strings rauskommen,
aber die Leerzeichen und & werden als zusätzlicher Trenner gewertet.

Wie löse ich das Problemchen ? ;)


Heiko

mirage228 19. Dez 2008 15:43

Re: TStringList, Delimiter='@'
 
Mit der ExplodeExplode aus der Code-Library ... oder Du fügst den String, der Leerzeichen enthält in Anführungszeichen " " ein ...

Viele Grüße

mkinzler 19. Dez 2008 15:44

Re: TStringList, Delimiter='@'
 
Setzt .StrictDelimiter auf True, sonst ist ein Leerzeichen ein zusätzlicher Trenner

mirage228 19. Dez 2008 15:46

Re: TStringList, Delimiter='@'
 
Zitat:

Zitat von mkinzler
Setzt .StrictDelimiter auf True, sonst ist ein Leerzeichen ein zusätzlicher Trenner

Also zumindest unter Delphi 7 gibt es diese Property nicht ... :gruebel:

mkinzler 19. Dez 2008 15:47

Re: TStringList, Delimiter='@'
 
Ich dachte, diese wurde mit D7 eingefüher, dann war es aber erst in D2006

Hawkeye219 19. Dez 2008 16:56

Re: TStringList, Delimiter='@'
 
Hallo Heiko,

für den Spezialfall der Trennung an einer Stelle hätte ich noch einen Vorschlag:

Delphi-Quellcode:
function SplitString (
           const aSource   : string;
           const aSeparator : string;
             var aBefore   : string;
             var aAfter    : string
         ) : Boolean;
var
  Position : Integer;
begin
  Position := Pos(aSeparator, aSource);
  Result := (Position > 0);

  if (not Result) then
    Position := Length(aSource) + 1;

  aBefore := Copy(aSource, 1, Position - 1);
  aAfter := Copy(aSource, Position + Length(aSeparator), MaxInt);
end;

// Anwendung

var
  sID, sName : string;
begin
  SplitString('12345@Tricor Packaging & Logistics AG', '@', sID, sName);
end;
Gruß Hawkeye

hoika 19. Dez 2008 17:42

Re: TStringList, Delimiter='@'
 
Hallo,

danke.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz