![]() |
nur bestimmten teil eines Strings auslesen.
Hallo,
wie kann ich aus einen string nur einen bestimmten bereich auslesen??? Bsp.: hier_ist_der_string{234234}und_so_gehts_weiter jetzt will ich nur das was in geschweiften klammern steht haben. wie kann ich das machen??? also ich will nur diesen teil haben: 234234 MFG Christian18 |
Re: nur bestimmten teil eines Strings auslesen.
such mit dem befehl pos nach der ersten klammer. dann merkst du dir die position und suchst wieder mit pos die nächste klammer.
mit diesen zwei zurückgegebenen werten kannst du via copy den rest abschneiden. zu jedem befehl gibts hier im forum oder in der delphi hilfe infos. edit: hab dir mal ein beispiel gemacht wie ich das meine.
Delphi-Quellcode:
var
I, F: Integer; begin // erste Klammer suchen. I := Pos('{', E_Str.Text); // Wenn gefunden weiter if I > 0 then begin // nächste Klammer suchen (dazu den String ab der Position I bis zum Ende // verwenden. F := Pos('}', Copy(E_Str.Text, I, Length(E_Str.Text))); // Wenn gefunden weiter if F > 0 then begin // Ausgabe von Start I bis Ende F // + 1 um das { zu überspringen und - 2 um das } wegzulassen E_Output.Text := Copy(E_Str.Text, I + 1, F - 2); end; end; |
Re: nur bestimmten teil eines Strings auslesen.
Oder falls komplizierter ist:
![]() |
Re: nur bestimmten teil eines Strings auslesen.
Hallo,
und was mache ich, wenn der string so aussieht!!! hier_ist_der_string{234234}und_so_gehts_weiterhier _ist_der_string{234234}und_so_gehts_weiter also, wenn ich 2 klammern drinn habe??? dann hilft mir pos doch auch nicht weiter oder??? ich habe es mit pos auch schon mal versucht hier:
Delphi-Quellcode:
var m1, m2 : Integer;
r : String; begin m1:=Pos('{', s); m2:=Pos('}', s); r:=Copy(s, m1, m2 - m1); Result:=r; |
Re: nur bestimmten teil eines Strings auslesen.
dann machst du das halt mit einer for oder while schleife.
|
Re: nur bestimmten teil eines Strings auslesen.
Funzt perfekt:
Delphi-Quellcode:
function GetBracketContent(str: String): TStringList;
begin result:=TStringList.create; while pos('{',str)>0 do begin result.add(copy(str,pos('{',str)+1,pos('}',str)-pos('{',str)-1)); str:=copy(str,pos('}',str)+1,length(str)-pos('}',str)); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:51 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-2025 by Thomas Breitkreuz