Einzelnen Beitrag anzeigen

Benutzerbild von Alexander Roth
Alexander Roth

Registriert seit: 17. Mai 2004
Ort: Kenn
574 Beiträge
 
Turbo Delphi für Win32
 
#19

Re: Textzeile in Txt auslesen

  Alt 20. Jul 2004, 09:00
Der code:
Code:
procedure TForm1.Button3Click(Sender: TObject);
const
  Pfad = 'E:\Delphi\Mathematik\Aufgelistete Primzahlen.txt';
var i,j,k : int64;
    primzahl:int64;
    sl: TStringList;
    f:textfile;
begin
assignfile(f,Pfad);
rewrite(f);
write(f, '2');
closefile(f);
zeit := time;
sl := TStringList.Create;
memo1.Clear;
abbruch := false;
aerg := 1;
j:=0;
nochr :=false;
if strtoint64(edit7.Text)<2 then exit else i:=3;
while i<strtoint64(edit7.Text)do
begin
  try
    while (j < aerg)and(j< sl.count) do
      begin
        sl.loadfromfile(pfad);
        primzahl:=strtoint64(sl[j]);
        if i mod primzahl > 0 then nochr:= true//primzahl noch ja
        else //keine Primzahl
            begin
              nochr:= false;
              j:= aerg;
            end;
        inc(j);
      end;
  finally
    sl.free;
  end;
//für das array und fürs weiterkommen und für die txt
    if (nochr=true)then
      begin
        inc(aerg);
        reset(f);
        writeln(i);
        closefile(f);
      end;
    statusbar1.Panels[4].Text:= 'Benötigte Zeit: ' + timetostr(time-zeit);
//    statusbar1.Panels[3].Text:= 'Dargest. Ergebnisse: '+inttostr(aserg);
    statusbar1.Panels[2].Text:= 'Ergebnisse: '+inttostr(aerg);
    statusbar1.Panels[1].Text:= 'Zahl: ' +inttostr(i);
    statusbar1.Panels[5].Text:= Format('%f', [aerg/i*100])+'% Erg.';
    application.ProcessMessages;
    if abbruch = true then
      begin
        statusbar1.Panels[5].Text:= Format('%f', [aerg/i*100])+'% Erg.';
        j:=aerg+1;
        i:=strtoint64(edit7.Text)+1;
      end;
  i:=i+2;
  j := 0;
end;
end;
Erklärungen: edit7 ist der Enwert
manche Variablen habe ich nicht als lokale Variable sondern als übergeordnete.


Zitat:
Gibt es einen Grund, warum du uns die genaue Fehlermeldung verschiegen hast?
Der Fehler wechselt machmal, wenn ich was verändere.
Zur Zeit gibt er diesen reizenden Fehler aus: (Wie bind ich denn hier Bilder ein, anscheinend granicht):
"Im Projekt mathematik.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Medlung: 'Zugriffsverletztung bei adresse 00000000. Lesen von Adresse 00000000'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzten."


Zitat:
Naja vermutlich ist es genau diese Schleife...
Ja vieleicht, aber letztens noch hat er bei der Exception immer die 2. Schleife mit dem j als Variable makiert. Jetzt makiert er nichts mehr.
Alexander Roth
Ich bin umgestiegen auf: Lazarus und Ubuntu! Alles OpenSource!

Besuch doch mal: www.roth.us.ms
  Mit Zitat antworten Zitat