![]() |
String parsen ?
guten morgen dp, hat jemand einen vorschlag wie ich am besten solch einen string parse:
>>3<<,>>9<<,>>10<<,>>11<<,>>25<<,>>28<<,>>30<<,>>3 5<< so dass ich nur noch die zahlen habe ? |
Re: String parsen ?
|
Re: String parsen ?
Hi,
durchlaufe den string und suche mit Pos() jeweils nach der Position von '>>' und '<<' und kopiere dir mit Copy() den Teilstring zwischen '>>' und '<<'. |
Re: String parsen ?
habt ihr da mal nen source bespiel ? wäre echt sau cool
|
Re: String parsen ?
Oder mit regulären Ausdrücken. :-)
Folgender Code zerlegt Dir Deinen String und zupft Dir die Zahlen raus:
Delphi-Quellcode:
procedure TForm33.btn_DoNowClick(Sender: TObject);
var reg : TPerlRegEx; begin Memo1.Clear; reg:= TPerlRegEx.Create( NIL ); TRY reg.Subject:= edt_SourceString.Text; reg.RegEx:= '([0-9])+'; if reg.Match then begin Memo1.Lines.Add( reg.MatchedExpression ); while reg.MatchAgain do begin Memo1.Lines.Add( reg.MatchedExpression ); end; end else Memo1.Lines.Add( 'nichts gefunden' ); FINALLY reg.Free; END; end; Die Klasse TPersRegEx gibt's hier: ![]() |
Re: String parsen ?
danke dir !
|
Re: String parsen ?
Aber aufpassen: Dieser reguläre Ausdruck zuppelt Dir nur alle Zahlen raus. Ob da wirklich spitze Klammern drum herum sind, interessiert ihn nicht. Wenn Du das auch noch prüfen möchtest, so wird's etwas aufwändiger, weil man dann mit den Sub-Expressions arbeiten müsste und die hab' ich gerade nicht im Kopf.
|
Re: String parsen ?
nein, danke ich denke das reicht !
|
Re: String parsen ?
Der thread ist zwar schon fast geschlossen aber warum will das parsen niemand mit einem TString objekt machen
etwa so
Delphi-Quellcode:
das result sieht dann so aus procedure TForm1.Button1Click(Sender: TObject); var s : string; begin s :='>>3<<,>>9<<,>>10<<,>>11<<,>>25<<,>>28<<,>>30<<,>>35<<'; memo1.Lines.AddStrings(parse(s)); end; function parse(s: string):TStringList; begin result := TstringList.Create; result.CommaText := s; end; >>3<< >>9<< >>10<< >>11<< >>25<< >>28<< >>30<< >>35<< jetzt müssen nur noch die >> und << eliminiert werden. Gruß Stefan |
Re: String parsen ?
Zitat:
Wieso nicht einfach
Delphi-Quellcode:
Memo1.Lines.Commatext := s;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:05 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