Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi [] werden weggelassen. (https://www.delphipraxis.net/49162-%5B%5D-werden-weggelassen.html)

Masterof 6. Jul 2005 12:09


[] 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:
for i:= 0 to memdaten.Lines.Count-1 do
begin
 zeichen:= memdaten.Lines.ValueFromIndex[i];
 zeig:= pos('[Pk]', zeichen);
MfG Master

marabu 6. Jul 2005 12:15

Re: [] werden weggelassen.
 
An deinem Code ist der vermeintliche Fehler nicht ablesbar. Eventuell passt deine Methode nicht zu den Daten.

marabu

sniper_w 6. Jul 2005 12:17

Re: [] werden weggelassen.
 
Der Fehler ist sehr wohl da. So dürfte es gehen (zumindest bei mir):
Delphi-Quellcode:
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;
[edit=alcaeus]quote- durch delphi-Tags ersetzt. In Zukunft bitte die richtigen Tags verwenden. Mfg, alcaeus[/edit]

Zettuu 6. Jul 2005 12:25

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.

barf00s 6. Jul 2005 12:42

Re: [] werden weggelassen.
 
kannst du nich einfach so tun?

wenn in deinem memo es wie folgt steht..

Key=Value

Delphi-Quellcode:
var
  xSL: TStringlist;

begin
  xSL := TStringlist.Create;
  xSL.Assign(Memo1.Lines);
  iValue := StrToIntDef(xSL.Values['Key'], 0);
  FreeAndNil(xSL);
end;
wenn Value ne zahl ist :)

Masterof 6. Jul 2005 12:45

Re: [] werden weggelassen.
 
Hallo!

danke, es hat funktioniert

MfG Master

barf00s 6. Jul 2005 12:48

Re: [] werden weggelassen.
 
welche der varianten hat jetz funktioniert? ~neugierig~ :)

marabu 6. Jul 2005 13:12

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:
memDaten.Lines[i] := 'key=abc[Pk]def';
zeichen := memdaten.Lines.ValueFromIndex[i]; // zeichen = 'abc[Pk]def';
zeig:= pos('[Pk]', zeichen);                 // zeig = 4;
Warum sollte ValueFromIndex nicht funktionieren?

marabu

Zettuu 6. Jul 2005 13:15

Re: [] werden weggelassen.
 
Wenn das [pk] am Anfang der Zeile steht gibt das ValueFromIndex nur ein pk] zurück

Masterof 6. Jul 2005 13:24

Re: [] werden weggelassen.
 
Hallo!!

Habe die Version von sniper_w verwendet.
Danke nochmal für die anderen Lösungen.

MfG Master

marabu 6. Jul 2005 13:33

Re: [] werden weggelassen.
 
Zwar weiß jetzt immer noch keiner, wie die Daten wirklich aussehen, aber ich muss schmunzeln bei dem Gedanken, es könnte sich um eine Datei mit dem Aufbau einer INI-Datei handeln...
Wenn ich dann noch an den anderen thread des Autors denke...

marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:08 Uhr.

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