![]() |
String nach einem Substring herausnehmen
Hey leute,
ich bin noch etwas unerfahren in Delphi und komme grad nicht weiter. ich habe zb.
Delphi-Quellcode:
und jetz möchte ich das wort nach dem 'ist' kopieren.
string1:=('Dies ist ein String');
Mit der Pos funktion hat es auch erst gut geklappt nur als ich dort einen anderen String einfüge nichtmehr so gut. Hoffe auf hilfe |
Re: String nach einem Substring herausnehmen
also mittels posex die position von 'ist' bestimmen und dann in einer schleife z.b. und dann den string in mehreren schritten bearbeiten:
Delphi-Quellcode:
s := 'das ist mein string';
s := copy(s,posex('ist',s),length(s)); s := copy(s,pos(' ',s) + 1 , length(s)); // nun ist s ==> 'mein string'; |
Re: String nach einem Substring herausnehmen
Vielen Dank SimStar001
Und wie bekomme ich das hin, das er nur 1 wort nimmt? zb. wenn der string länger ist möchte ich ja nicht das komplette ende sondern nur einen teil, ein wort. Oder so, dass es von dem zeichen " bis zum nächten " geht. Danke |
Re: String nach einem Substring herausnehmen
So könntest du es z.B. machen:
Delphi-Quellcode:
Und dann eben so aufrufen:
function FindNextWord(const AText, APrevWord: string): string;
var CurPos: PChar; begin CurPos := PChar(Integer(PChar(AText) + Pos(APrevWord + ' ', AText) + Length(APrevWord))); SetString(Result, CurPos, Pos(' ', CurPos) - 1); end;
Delphi-Quellcode:
FindNextWord('Das ist ein Test!', 'ist')
|
Re: String nach einem Substring herausnehmen
Vielleicht sollte man die Funktion für einen Anfänger etwas übersichtlicher gestalten und die Sonderfälle (nächstes Wort ab 'Test') absturzsicher berücksichtigen.
|
Re: String nach einem Substring herausnehmen
Kann man alles machen:
Delphi-Quellcode:
function FindNextWord(const AText, APrevWord: string): string;
var CurPos: PChar; TempPos: Integer; begin Result := ''; TempPos := Pos(APrevWord + ' ', AText); if TempPos = 0 then Exit; CurPos := PChar(Integer(PChar(AText) + TempPos + Length(APrevWord))); // Beim Zeichen hinter dem gesuchten Wort weitermachen TempPos := Pos(' ', CurPos); if TempPos = 0 then Exit; SetString(Result, CurPos, TempPos - 1); // Als Ergebnis den Text von der ersten Position bis zum Zeichen vor // dem Leerzeichen zurückgeben end; |
Re: String nach einem Substring herausnehmen
Vorbildlich! Danke. :thumb:
|
Re: String nach einem Substring herausnehmen
Danke an alle!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 Uhr. |
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 by Thomas Breitkreuz