Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Strings trennen (https://www.delphipraxis.net/81554-strings-trennen.html)

marabu 29. Nov 2006 20:25

Re: Strings trennen
 
Hallo,

und wieder sind die Anforderungen nicht klar definiert - aber trotzdem:

Delphi-Quellcode:
function CapoStr(const s: String): String;
var
  iLen, iPos: Integer;
begin
  iLen := Pos('-', s);
  iPos := PosEx('-', s, Succ(iLen));
  Result := Copy(s, 1, iLen) + Copy(s, Succ(iPos), MaxInt);
end;

// Test
procedure TDemoForm.MergeButtonClick(Sender: TObject);
begin
  ShowMessage(CapoStr('0141-123456 -98765'));
end;
Gute Nacht

capo 29. Nov 2006 21:59

Re: Strings trennen
 
Hallo Marabu,

Zitat:

und wieder sind die Anforderungen nicht klar definiert - aber trotzdem:
stimmt,ich habe manchmal schon so meine Formulierungsprobleme. Danke dir für deine Hilfe und Hellsichtigkeit.

So hab ich es nun gemacht.
Danke an alle nochmal.
Delphi-Quellcode:

function PosEx(const Substr: string; const S: string; Offset: Integer): Integer;
begin
  if Offset <= 0 then Result := 0
  else
    Result := Pos(Substr, Copy(S, Offset, Length(S)));

  if Result <> 0 then
    Result := Result + Offset - 1;
end;

function CapoStr(const s: string): string;
var
  iLen, iPos: Integer;
begin
  iLen := Pos('-', s);
  iPos := PosEx('-', s, Succ(iLen));
  Result := Copy(s, 1, iLen) + Copy(s, Succ(iPos), MaxInt);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to Memo1.Lines.Count - 1 do
    memo2.Lines.Add(CapoStr(Memo1.Lines[i]))
end;

Ines 30. Nov 2006 06:23

Re: Strings trennen
 
Hallo capo,

hier nur noch eine Erklärung zu LeftStr + RightStr (gibt es in Delphi7):

Die Funktion gibt einen Teilstring der angegebenen Länge zurück, der am Anfang des Strings beginnt.
function LeftStr(const AText: AnsiString; const ACount: Integer): AnsiString; overload;

Die Funktion gibt einen Teilstring mit einer bestimmten Länge zurück, der sich am Ende des angegebenen Strings befindet.
function RightStr(const AText: AnsiString; const ACount: Integer): AnsiString; overload

beide definiert in StrUtils


Gruß Ines

oldmax 30. Nov 2006 08:31

Re: Strings trennen
 
hi
Zitat:

ne du machst keinen Fehler, in der Funktion wurde lediglich eine Kleinigkeit vergessen. Hab ich mal schnell korrigiert:
Gut, ich will noch einmal ergänzend etwas zugeben:
Vergessen hab ich, den RefStr zuzuweisen.
Delphi-Quellcode:
...
RefStr:=MeinText;
Ausg:='';
...
Ok, passiert, wenn man den Code nicht prüft. Die Funktion aber ist etwas mehr als nur erster und letzter Textteil, es ist auch eine Möglichkeit, beliebig viele Textelemente mit Separatoren zusammen zu setzen und hinterher wieder zu zerlegen.
Aber es gibt ja viele Wege nach Rom..... :zwinker:
Gruß oldmax

capo 30. Nov 2006 08:56

Re: Strings trennen
 
Danke Ines und oldmax :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:28 Uhr.
Seite 2 von 2     12   

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