Delphi-PRAXiS
Seite 1 von 2  1 2      

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:56 Uhr.
Seite 1 von 2  1 2      

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