Hej
Hvordan gør man at hvis man f.eks har en tekst som hedder: hej|xxxxkloi|dddd . Hvordan gør man så den skal læse det først indtil | og efter følgene det der står mellem | | og efter skal den læse det sidste |???
Med venlig hilsen
Frede_Manden
Under type skal du tilføje:
TExplodedString = array of String;
Og så har du flg. kode:
function Explode(Text: String; Seperator: String; DiscardNoneText: Boolean = False): TExplodedString;
var
I: Integer;
Tmp: String;
begin
if (Length(Text) or Length(Seperator)) = 0 then Exit;
if Length(Seperator) = 1 then begin
if Copy(Text, Length(Text)-Length(Seperator), Length(Seperator)) <> Seperator then
Text := Text + Seperator + Seperator;
end else begin
if Copy(Text, Length(Text)-Length(Seperator), Length(Seperator)) <> Seperator then
Text := Text + Seperator;
end;
I := 1;
while I < Length(Text) do begin
if Copy(Text, I, Length(Seperator)) = Seperator then begin
if DiscardNoneText then begin
if Tmp <> '' then begin
SetLength(Result, High(Result)+2);
Result[High(Result)] := Tmp;
Tmp := '';
Inc(I, Length(Seperator));
end;
Inc(I);
end else begin
SetLength(Result, High(Result)+2);
Result[High(Result)] := Tmp;
Tmp := '';
Inc(I, Length(Seperator));
end;
end else begin
Tmp := Tmp + Text[I];
Inc(I);
end;
end;
end;
Så bruger du det sådan her:
var
Ord: TExplodedString;
begin
Ord := Explode("Teksten|Som|Du|Vil|Explode", '|');
end;
Så vil Ord indeholde "Teksten", "Som", "Du", "Vil" og "Explode".
Btw. jeg har selv skrevet hele Explode, så du kan bruge den, og distribuere den frit. Dog ville det ikke gøre noget med en note i en about box
. Happy Coding
MH.
The-Freak
Livet er for kort til at kede sig.