Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Array Reset Probleme (https://www.delphipraxis.net/160914-array-reset-probleme.html)

Deep-Sea 8. Jun 2011 11:48

AW: Array Reset Probleme
 
Wie sieht die Funktion HighAFRExamen aus?

Wieso wird überhaupt eine globale Variable angelegt, sogar noch in einer anderen Unit, die nur lokal in einer Prozedur Verwendung findet?
Und das:
Delphi-Quellcode:
SetLengthAFRExamen(c+1);
SetAFRExamName(c, GetAExamName(b));
SetAFRExamAnzahl(c, GetAExamAnzahl(b));
schreit irgendwie nach einer Liste. Denn ein Aufruf à la
Delphi-Quellcode:
AFRExamen.Add(GetAExamName(b), GetAExamAnzahl(b));
oder gar nur
Delphi-Quellcode:
AFRExamen.Add(GetAExam(b));
ist wohl weitaus besser zu nutzen. :stupid:

himitsu 8. Jun 2011 14:06

AW: Array Reset Probleme
 
   Fehlermeldung angeguckt.
+ wissen, daß SetLength+0 und nil funktionieren
= Fazit: Du hast das Array zerschossen oder zumindestens enthaltetne gemanagte Felder (wie z.B. Strings)

z.B. Buffer Overrun und Co.

Georg25 9. Jun 2011 13:51

AW: Array Reset Probleme
 
Code:
function HighAFRExamen:Integer;
begin
  Result := High(AFRExamen);
end;
Eine Liste brauch ich imho nicht, da ich einen eigenen Type dafür hab

Code:
   TFRExam = record
     Name           : string;
     Anzahl         : integer;
   end;
Code:
AFRExamen    : Array of TFRExam;

das ist ja schön, dass ICH nen Fehler gemacht habe, nur ich finde einfach nicht wo, deswegen bat ich um Hilfe. Manchmal sehen 100 Augen mehr als zwei.

Die Arrays sind in einer Unit drin, wo ich von anderen drauf zugreif. Ich greife von mehrere Units drauf zu, die ich ja nach Funktion geordnet habe. (Verschiedene Sortierungsverfahren)

p80286 9. Jun 2011 14:38

AW: Array Reset Probleme
 
Hierzu Meine Standardfrage, was sagt der Debugger dazu?
Ich blicke nämlich durch Deine "..Examen.." nicht so richtig durch.
Und den schrei nach einer Liste kann ich gut verstehen, Da kann man übrigens mehrere Sortiermöglichkeiten implementieren.

Gruß
K-H

Blup 9. Jun 2011 15:53

AW: Array Reset Probleme
 
Die Fehlerursache liegt scheinbar nicht in den geposteten Zeilen (so unschön diese auch sind).
Ich würde erst einmal die Bereichsprüfung anschalten und das Projekt neu übersetzen.

Bjoerk 9. Jun 2011 16:44

AW: Array Reset Probleme
 
wird in SetAFRExamName oder SetAFRExamAnzahl etwas erzeugt ?

Georg25 11. Jun 2011 12:05

AW: Array Reset Probleme
 
Zitat:

Da kann man übrigens mehrere Sortiermöglichkeiten implementieren.
Um sortieren gehts nicht so richtig, denn die "Sortierung" ist ziemlich kompliziert (z.b. Greedy) und nicht nach z.b. Größe

Zitat:

wird in SetAFRExamName oder SetAFRExamAnzahl etwas erzeugt ?
Nein, das sind "nur" zuweisungen (Halt "normale" Get/Set Methoden)

Code:
procedure SetAFRExamName(ItemID:Integer; Value:String);
begin
  AFRExamen[ItemID].Name := Value;
end;
Code:
procedure SetAFRExamAnzahl(ItemID:Integer; Value:Integer);
begin
  AFRExamen[ItemID].Anzahl := Value;
end;

himitsu 11. Jun 2011 12:11

AW: Array Reset Probleme
 
Hast du die Überlauf- und Bereichsprüfung in den Projektoptionen aktiviert?


Ansonsten schreit der Code förmlich danach, um OOP-mäßig in eine Klasse verpackt zu werden.

Bjoerk 12. Jun 2011 03:09

AW: Array Reset Probleme
 
Georg,
wenn SetLength(Dingens, 0) nicht ausgeführt wird, dann wird wahrscheinlich bezüglich Dingens[i] etwas erzeugt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:47 Uhr.
Seite 2 von 2     12   

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