![]() |
Die Zeit stoppen ohne Gettickcount
Moin Leute,
ich stehe wieder vor einem Problem. Wie kann ich die Zeit einer Function stoppen ohne die Function GetTickCount? Wenn ich GetTickCount aufrufe, bringt der Rechner immer die Fehlermeldung "ungültiger Zeigeroperation". |
Re: Die Zeit stoppen ohne Gettickcount
Hast du mal etwas Code, wie du GetTickCOunt aufgerufen hast?
|
Re: Die Zeit stoppen ohne Gettickcount
Zitat:
MfG Binärbaum |
Re: Die Zeit stoppen ohne Gettickcount
Ein bisschen Quelltext:
Delphi-Quellcode:
In diesem Programm soll der Sortieralgorithmus "Insert-Sort" aufgerufen werden.
procedure TForm1.InsertButtonClick(Sender: TObject);
var a:array of integer; var voninsert, bisinsert:cardinal; begin laenge:=memo1.lines.count; setlength(a,laenge); ein(a); voninsert:=GetTickCount; insert(a); bisinsert:=GetTickCount; aus(a); summe:=bisinsert-voninsert; InsertLabel.Caption:=''; if (summe>1000) then InsertLabel.Caption:=floattostr(summe/1000)+' s' else InsertLabel.Caption:=floattostr(summe)+' ms'; 1) Zahlen einlesen mit der Funktion "ein(a)" 2) Zeit nehmen 3) Sortieren mit der Funktion "insert(a)" 4) Zeit nehmen 5) Zahlen ausgeben mit der Funktion 6) Differenz aus zweiter Zeit und erster Zeit Aber wo soll der Fehler sein? :gruebel: |
Re: Die Zeit stoppen ohne Gettickcount
Was tut denn die Funktion "ein"?
|
Re: Die Zeit stoppen ohne Gettickcount
Tritt der Fehler auch auf, wenn du anstelle von "GetTickCount" Zahlen einsetzt?
Teste das bitte mal, denn es könnte an den aufzurufenden Funktionen liegen. |
Re: Die Zeit stoppen ohne Gettickcount
@Dax: Die Zahlen aus einer MemoBox einlesen.
@Matze: der gleiche Fehler kommt auch, wenn ich Zahlen einsetze. |
Re: Die Zeit stoppen ohne Gettickcount
Zitat:
|
Re: Die Zeit stoppen ohne Gettickcount
Delphi-Quellcode:
function bubble (var a:array of integer):integer;
var j,w,laenge:integer; begin laenge:=form1.Memo1.Lines.Count; //setlength(a, laenge); for j:=laenge downto 1 do begin for w:=2 to j do begin if (a[w-1]>a[w]) then vertausch(a[w-1],a[w]); end;// end of w-for-schleife end; // end of j-for-schleife end; // end of function bubble
Delphi-Quellcode:
Das ist einmal die Funktion "Bubble-Sort", die Funktion "einlesen(ein)" und die Funktion "Ausgeben(aus)".
function ein (var a:array of integer):integer;
var i:integer; begin laenge:=form1.Memo1.Lines.Count; for i:=1 to laenge do begin a[i]:=strtoint(form1.memo1.lines[i-1]); end; end; // end of function ein function aus (var a:array of integer) :integer; var j:integer; begin laenge:=form1.Memo1.Lines.Count; for j:=1 to laenge do begin form1.memo2.Lines.Add(inttostr(a[j])); end; end; // end of function aus Irgendwo dort ist der Fehler! |
Re: Die Zeit stoppen ohne Gettickcount
Ich hab mir jetzt nicht alles angeschaut aber
Delphi-Quellcode:
muss zu einem Fehler führen, da Memo.Lines von 0 bis Memo.Lines.Count - 1 geht...
laenge:=form1.Memo1.Lines.Count;
//setlength(a, laenge); for j:=laenge downto 1 do Vielleicht liegts ja daran (Zugriff auf nicht reservierten Speicher). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:29 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