string zerlegen ('d:\test\test2\test3\test4') result:=test3
guten morgen leute...
ich würde gerne nen string zerlege, der so aussieht: ('d:\test\test2\test3\test4') jetzt möchte ich zB nur test3 als result bekommen...habe mal im forum geschaut und auch tips gefunden aber zB die stringlist geht leider nicht bei mir, weil ich delphi 5 benutze und dort haben die stringlists noch keinen delimeter. jetzt wollte ich euch mal um gute ideen bitte...thx cu |
Re: string zerlegen ('d:\test\test2\test3\test4') result:=t
|
Re: string zerlegen ('d:\test\test2\test3\test4') result:=t
|
Re: string zerlegen ('d:\test\test2\test3\test4') result:=t
Delphi-Quellcode:
und dann einfach:
function Tokenize(const S: string; const C: Char): TStringDynArray;
var SLen, SIdx, NTok, TokStart, TokLen: Integer; begin if S <> '' then begin SLen := Length(S); SetLength(Result, SLen); TokStart := 0; NTok := 0; TokLen := 0; for SIdx := 1 to SLen do begin if S[SIdx] <> C then begin if TokStart = 0 then TokStart := SIdx; Inc(TokLen); end; if ((SIdx = SLen) or (S[SIdx] = C)) and (TokStart > 0) then begin Inc(NTok); Result[NTok-1] := Copy(S, TokStart, TokLen); TokStart := 0; TokLen := 0; end; end; SetLength(Result, NTok); end else SetLength(Result, 0); end;
Delphi-Quellcode:
MfG
var
Arr: TStringDynArray; I: Integer; begin Arr := Tokenize('d:\test\test2\test3\test4', '\'); for I := 0 to High(Arr) do ShowMessage(Arr[I]); end; |
Re: string zerlegen ('d:\test\test2\test3\test4') result:=t
Mein Scherflein:
Delphi-Quellcode:
Grüße vom marabu
function ExtractParentDir(dir: string; noPath: boolean): string;
begin dir := ExtractFilePath(ExcludeTrailingBackslash(dir)); if noPath then Result := ExtractFileName(ExcludeTrailingBackslash(dir)) else Result := dir; end; |
Re: string zerlegen ('d:\test\test2\test3\test4') result:=t
danke euch allen ..aber marabu rockt das haus ! danke, einfach und effektive ! habt dank ihr treuen delphi fans !
cu |
Re: string zerlegen ('d:\test\test2\test3\test4') result:=t
marabu noch eine frage ...
[Warnung] Unit1.pas(116): Symbol 'ExcludeTrailingBackslash' ist plattformspezifisch heisst das: auf manchen rechner ist ExcludeTrailingBackslash kein '\' ? und wie kann man das auf alle rechner übertragen ? |
Re: string zerlegen ('d:\test\test2\test3\test4') result:=t
Ja, bei Linux z.b ist es "/" statt "\"
|
Re: string zerlegen ('d:\test\test2\test3\test4') result:=t
Das heißt, dass du diesen Code nicht ohne Änderungen nach Linux portieren kannst. In den neueren Delphi-Versionen gibt es die portierbare Funktion ExcludeTrailingPathDelimiter().
marabu |
Re: string zerlegen ('d:\test\test2\test3\test4') result:=t
aber auf den windows plattformen , egal welches land, sollte es laufen ?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 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