![]() |
[] werden weggelassen.
Hallo!
Ich habe einen String eingelesen und suche jetzt nach '[Pk]', leider wird dieser Ausdruck beim lesen aus dem Memo weggelassen. Warum ist das so, und wie lese ich den String besser aus?
Delphi-Quellcode:
MfG Master
for i:= 0 to memdaten.Lines.Count-1 do
begin zeichen:= memdaten.Lines.ValueFromIndex[i]; zeig:= pos('[Pk]', zeichen); |
Re: [] werden weggelassen.
An deinem Code ist der vermeintliche Fehler nicht ablesbar. Eventuell passt deine Methode nicht zu den Daten.
marabu |
Re: [] werden weggelassen.
Der Fehler ist sehr wohl da. So dürfte es gehen (zumindest bei mir):
Delphi-Quellcode:
[edit=alcaeus]quote- durch delphi-Tags ersetzt. In Zukunft bitte die richtigen Tags verwenden. Mfg, alcaeus[/edit]
procedure TForm1.Button1Click(Sender: TObject);
var mys:string; i, d:Integer; begin for i:=0 to Memo1.Lines.Count-1 do begin mys := Memo1.Lines.Strings[i]; mys := LowerCase(mys); d := Pos('[pk]',mys); if d<>0 then begin Caption := 'Line:' + IntToStr(i+1) +' Position:'+IntToStr( d ); Break; end; end; end; |
Re: [] werden weggelassen.
Das Problem liegt bei dem ValueFromIndex, welches bewirkt, dass vermutlich die erste Klammer weggelassen wird. Benutze einfach das Strings[] wie in dem Beispiel von sniper_w und es sollte funktionieren.
|
Re: [] werden weggelassen.
kannst du nich einfach so tun?
wenn in deinem memo es wie folgt steht.. Key=Value
Delphi-Quellcode:
wenn Value ne zahl ist :)
var
xSL: TStringlist; begin xSL := TStringlist.Create; xSL.Assign(Memo1.Lines); iValue := StrToIntDef(xSL.Values['Key'], 0); FreeAndNil(xSL); end; |
Re: [] werden weggelassen.
Hallo!
danke, es hat funktioniert MfG Master |
Re: [] werden weggelassen.
welche der varianten hat jetz funktioniert? ~neugierig~ :)
|
Re: [] werden weggelassen.
Wenn die Daten nicht gezeigt werden, kann man keinen Fehler im Code erkennen. Dass der Code für sich genommen korrekt funktioniert zeigt folgender Test:
Delphi-Quellcode:
Warum sollte ValueFromIndex nicht funktionieren?
memDaten.Lines[i] := 'key=abc[Pk]def';
zeichen := memdaten.Lines.ValueFromIndex[i]; // zeichen = 'abc[Pk]def'; zeig:= pos('[Pk]', zeichen); // zeig = 4; marabu |
Re: [] werden weggelassen.
Wenn das [pk] am Anfang der Zeile steht gibt das ValueFromIndex nur ein pk] zurück
|
Re: [] werden weggelassen.
Hallo!!
Habe die Version von sniper_w verwendet. Danke nochmal für die anderen Lösungen. MfG Master |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:16 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