Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi fehler beim einlesen in label (https://www.delphipraxis.net/57215-fehler-beim-einlesen-label.html)

Tigermoon 17. Nov 2005 11:13


fehler beim einlesen in label
 
Hallo

ich raffe das hier ned
ich bekomme immer den fehler bei dem <--- hier

er sagt er kann auf eine adresse nicht zugreifen
das macht er aber erst seit dem die abfrage drin ist

hat jemand von euch eine idee as da falsch ist

Ich lese eine datei ein
auf die ich dann die abfrage mache
und dann eine bestimmte zeile auslesen

Delphi-Quellcode:
var
  FMain: TFMain;
  my_File: TStringList;

  LDatum_out, LHandling_out, Lcodeletter_out, Lreturncode_out: array[1..10] of TLabel;
  Sauswahl: array[1..10] of TImage;

  file_used: boolean;
  // Ausgabe Strings
  Shandling, Suser_time, Scode_letter, Sreturn_code, sfehler: string;
  found:integer;

implementation
Delphi-Quellcode:
procedure TFMain.Datei_durchsuchen;
var
  zaehlen, top, j,i,ende:integer;
  temp, temp1, temp2: string;
  go: boolean;
begin

  zaehlen := 1;
  top := 60;
  go:= false;

  for i := 1 to my_file.Count -1 do
  begin

      //Abfrage auf richtige ziele
      temp := my_file.Strings[i];
      for J := 1 to length(temp) do temp1 := temp1 + Temp[J];

      if temp1 = 'java.lang.String userName="'+EUsername.Text+'",' then
      begin
          // Zeile des Benutzernamen merken
          found := my_file.IndexOf(my_file.Strings[i]);

          // auf Handling zeil prüfen
          Temp := my_file.Strings[found - 3];
          for J := 1 to 36 do temp2 := temp2 + Temp[J];

          if temp2 = '(userHandling) userHandlingImpl.java' then
          begin
            go := true;
          end;
      end;

      temp1 := '';
      temp2 := '';

      // verarbeitung der zeile
      if go then
      begin

            // Zeit eintragen
            Temp := my_file.Strings[found - 32];
            for J := 1 to 19 do Suser_time := Suser_time + Temp[J];
            Ldatum_out[zaehlen].Caption := Suser_time;
            Ldatum_out[zaehlen].Top := top;   <--- hier
            Ldatum_out[zaehlen].Width := 130;
            Ldatum_out[zaehlen].left := Ldatum.left;
           
         go := false;

      end;

      top := top + 40;
      zaehlen := zaehlen + 1;
                 
      Shandling := '';
      Suser_time := '';
      Scode_letter:= '';
      Sreturn_code := '';
   end;
end;
Tigermoon

Thanatos81 17. Nov 2005 12:29

Re: Warum ist mein Fehler da wo er ist?
 
Passiert das auch schon beim ersten Durchlauf oder erst bei späteren Durchläufen? Du überprüfst nämlich nicht ob zaehlen auch innerhalb deiner Array-Grenzen liegt, deswegen könnte es da knallen.

//Edit
Schlechtschreibfehler behoben

Und was soll dieses Konstrukt?
Delphi-Quellcode:
for J := 1 to length(temp) do temp1 := temp1 + Temp[J];
Ich seh nämlich keinen Unterschied zu
Delphi-Quellcode:
temp1 := temp;
Und diesen hier
Delphi-Quellcode:
found := my_file.IndexOf(my_file.Strings[i]);
müsstest du eigentlich in
Delphi-Quellcode:
found := i;
verkürzen können, da my_file.Strings[i] bereits über den Index zugreift, du ermittelst also quasi den Index eines Index ;-)

Luckie 17. Nov 2005 12:31

Re: Warum ist mein Fehler da wo er ist?
 
Bitte editier deinen ersten Beitrag und wähle ein aussagekräftigeres Topic, danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:52 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