AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Array Reset Probleme

Ein Thema von Georg25 · begonnen am 7. Jun 2011 · letzter Beitrag vom 12. Jun 2011
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#11

AW: Array Reset Probleme

  Alt 8. Jun 2011, 11:48
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 AFRExamen.Add(GetAExamName(b), GetAExamAnzahl(b)); oder gar nur AFRExamen.Add(GetAExam(b)); ist wohl weitaus besser zu nutzen.
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#12

AW: Array Reset Probleme

  Alt 8. Jun 2011, 14:06
   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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Georg25

Registriert seit: 9. Mai 2011
11 Beiträge
 
#13

AW: Array Reset Probleme

  Alt 9. Jun 2011, 13:51
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)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#14

AW: Array Reset Probleme

  Alt 9. Jun 2011, 14:38
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Array Reset Probleme

  Alt 9. Jun 2011, 15:53
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.
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: Array Reset Probleme

  Alt 9. Jun 2011, 16:44
wird in SetAFRExamName oder SetAFRExamAnzahl etwas erzeugt ?
  Mit Zitat antworten Zitat
Georg25

Registriert seit: 9. Mai 2011
11 Beiträge
 
#17

AW: Array Reset Probleme

  Alt 11. Jun 2011, 12:05
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;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#18

AW: Array Reset Probleme

  Alt 11. Jun 2011, 12:11
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#19

AW: Array Reset Probleme

  Alt 12. Jun 2011, 03:09
Georg,
wenn SetLength(Dingens, 0) nicht ausgeführt wird, dann wird wahrscheinlich bezüglich Dingens[i] etwas erzeugt.

Geändert von Bjoerk (12. Jun 2011 um 03:34 Uhr) Grund: wahrscheinlich
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz