Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - EAccessViolation wenn ich Funktion verlasse
Bronstein - Fr 30.03.07 16:06
Titel: EAccessViolation wenn ich Funktion verlasse
Habe ein Problem,
ich Werte Daten aus verschiedenen TXT-Dateien aus.
Funktioniert auch alles wunderbar.
Werte ich z.B. die Daten vom 01.03 – 20.03 aus bekomme ich keinen Fehler.
Werte ich z.B. die Daten vom 20.03 – 30.03 aus bekomme ich ebenfalls keinen Fehler.
Werte ich jedoch die Daten vom 01.03-30.03 aus bekomme ich einen Fehler:
Im Projekt MDE.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 00404A7E in Modul 'MDE.exe'. Lesen von Adresse 72754B0E'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
Die Daten hat er aber alle richtig ausgewertet, denn nachdem ich bei der Fehlermeldung auf ok gedrückt habe, werden meine ausgewerteten daten auch angezeigt.
Habe jetzt schon meine arrays am Ende der Auswertung freigegeben
Der Fehler tritt auch erst auf, wenn ich die Funktion verlasse.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TfrmAOI.Button1Click(Sender: TObject); var FruehBauteil, SpaetBauteil, NachtBauteil: array[0..1000] of String; begin [...] ZeroMemory(@FruehBauteil,SizeOf(FruehBauteil)); ZeroMemory(@SpaetBauteil,SizeOf(SpaetBauteil)); ZeroMemory(@NachtBauteil,SizeOf(NachtBauteil)); end; |
Sprich der Fehler tritt nach dieser Zeile auf:
ZeroMemory(@NachtBauteil,SizeOf(NachtBauteil));
HelgeLange - Fr 30.03.07 16:42
ich glaube nicht, dass man ein Array of String mit ZeroMemory leeren sollte...
Ich denke, wenn Du die letzte Zeile
Delphi-Quelltext
1:
| ZeroMemory(@NachtBauteil,SizeOf(NachtBauteil)); |
weglässt, dann tritt der Fehler trotzdem auf.
Bronstein - Sa 31.03.07 12:40
Ja, das tut er auch, aber woran kann es dann liegen.
Das war nur ein Versuch, da ich dachte, dass es daran liegen könnte
Andidreas - Sa 31.03.07 13:08
Könntest Du eventuell den Sourcecode zur verfügungung stellen, damit man den Fehler nach volziehen kann?
Bronstein - Sa 31.03.07 13:42
Hab ihn jetzt gerade nicht zur Hand, da ich das Progrann im Geschäft mache.
Ich werde es aber am Montag versuchen.
Versuchen sage ich deshalb, da in dem Programm meher Datenbanken benötig werden.
HelgeLange - Sa 31.03.07 14:12
Dann lösch mal deine Array anstatt mit ZeroMemeory mit einer Schleife, in welcher Du die Strings aus EmptyStr setzt.
ZeroMemory nimmt an, dass du n-btes zusammenhängenden Speicher hast und füllt den mit Nullen. Strings sind aber andere Konstrukte
Bronstein - Mo 02.04.07 08:45
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!