Autor Beitrag
Niko S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Sa 27.01.07 16:17 
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project1.exe ist eine Exception der Klasse EStackOverflow aufgetreten. Meldung: 'Stack-Überlauf'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure getresname(y1,count: Integer; substr,substr2: String);
begin
  INC(y1);
  if (Form1.StringGrid1.Cells[0,y1] = substr2) then Form1.StringGrid1.Cells[22,y1] := substr;
  if (Form1.StringGrid1.Cells[0,y1] <> substr2) then getresname(y1,count,substr,substr2);
end;


Markierte Zeile:
ausblenden Delphi-Quelltext
1:
if (Form1.StringGrid1.Cells[0,y1] = substr2) then Form1.StringGrid1.Cells[22,y1] := substr;					


So das ist nun mein Problem ich kreig das nicht weg die variablen stimmen irgendwann überein trozdem hört der nicht auf und erzeugtn n overflow :( Ich weis nid mehr weiter.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure getresname(y1,count: Integer; substr,substr2: String);
begin
  INC(y1);
  if (Form1.StringGrid1.Cells[0,y1] = substr2) then Form1.StringGrid1.Cells[22,y1] := substr;
  if (Form1.StringGrid1.Cells[0,y1] <> substr2) and (y1<count) then getresname(y1,count,substr,substr2);
end;

So funktioniert es das problem is nur das es relativ lange braucht .... (um eine größere datei zu zerlegenm und prüfen dauerts nicht mal ne halbe sekunde und heir 3 sekunden ...)

Moderiert von user profile iconGausi: Delphi-Tags repariert.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 27.01.07 16:41 
Für mich stellt sich hier die Frage, warum du das so umständlich machst? Ich meine, das geht doch mit einer Schleife viel effizienter.

Aber jedenfalls funktioniert es bei mir mit deinem ersten Quelltext, wenn der Eintrag existiert. Und egal ob er existiert oder nicht, geht es mit dem zweiten Quelltext...
Niko S. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Sa 27.01.07 17:17 
weil ich festgestellt hab das eine schleife mehr zeit braucht als eine rekursive fnuction oder procedure.
Bei mir geht der erste quellcode in eine endlosschleife ... und der zweite ist recht langsam :(
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 27.01.07 17:22 
Also dann stimmt da was nicht. Wenn das richtig geschrieben ist, dann ist eine Schleife auf jeden Fall schneller!

Die Geschwindigkeitsprobleme kann ich nicht nachvollziehen, bei mir gehts gut, dass es aber bei einer Rekursion schiefgehen kann, wenn du extrem viele Einträge hast, ist richtig...
Aber warum die Schleife bei dir langsamer war? Hmm... :nixweiss:

Es wäre wohl am einfachsten wenn du mal ein Beispielprojekt anhängst, wo auch so viele Daten drin sind, wie es bei dir sind. Und wo die Performanceprobleme/ Fehler zu spüren/vorhanden sind. Dann kann ich mal nachsehen, woran das liegt.
Niko S. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: Sa 27.01.07 19:22 
Ich habs so gelöst das Ich aus 2 daten eine gemacht hab und das halt vorher "convertiert" hab.
Nun geht es prima ladezeit kann man sagen gleich null bei 0,06~.
Da es über 2200 zeilen sind macht sich meine rekursive lösung viel schneller die andere würde ca ne sekunde oder 2 brauchen (for schleife) Nun passt aber alles Trozdem danke für deine mühe .