Entwickler-Ecke
Dateizugriff - Grafikfehler nach Dateizugriff bei TP 5.5?
Bismarck - Fr 30.08.02 18:42
Titel: Grafikfehler nach Dateizugriff bei TP 5.5?
Moin,
so, ich feier meinen "Wiedereintritt" beim Delphi Board erst mal mit einer Frage, die nur Indirekt mit Delphi zu tun hat (Turbo Pascal ist doch der indirekte Verläufer von Delphi, oder?)
Mein Problem:
Ich habe einen großen Array am Anfang des Programms deklariert und will ihn dann in einer for-Schleife mit Daten Füllen. So weit, so gut...
Wenn ich die Schleife 100 mal durchlaufe geht alles gut. Durchlaufe ich sie 200 mal gehen einige Daten im Array verloren. Ab 300 Durchläufen bekomme ich Grafikfehler (Hintergrundfarbe bei der Anzeige ändert sich, Bildschirmausschnitt verschiebt sich etc...) Wenn die Schleife noch öfters durchlaufen wird kommt irgendwann der Fehler "Datei nicht geöffnet".
Könnt ihr damit was anfangen? Der Recher ist ein Escom Blackmate Laptop, 468er, 33 Mhz, 4 Mb RAM, ich benutze Turbo Pascal 5.5.
Wie kommen solche Feher zustande, was kann ich dagegen tun?
Vielen Dank im Vorraus, B.
Arakis - Fr 30.08.02 18:47
Jau, du seist uns willkommen :D
Andere Frage vorweg: Welches Betriebssystem hast du? Vielleicht verkraftet es das nicht. Denn normaler weise dürfte in einem richtigen 32-Bit-Betriebssystem ein Programm nicht so deartige Fehler auf dem Bildschirm hervorbringen.
Bis dann
Bismarck - Fr 30.08.02 18:52
Moin,
welche Betriebssystem? das "Dirty Operation System", knallhart DOS 6.22 genannt. Ist aber 16 Bit, oder?
Ich kann mir das nicht erklähren, der Speicherplatz wird doch schon beim Programmstart reserviert, oder?
Servus, B.
Arakis - Fr 30.08.02 18:57
Ach DOS, ja sag das doch gleich 8)
Höchstwahrscheinlich gerätst du in fremde Speicherbereiche. Benutzt du irgendeinen "wildgewordenen" Zeiger oder so? Poste die Schleife doch mal, wenn sich nicht zu groß ist.
Bis dann
Bismarck - Fr 30.08.02 19:14
Ok, hier ist die die Prozedur. Es wurden keine Pointer verwendet.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| rocedure Dateninit; var x: integer; var ZwischenVariable: RECNamenstruktur; begin
assign(Namendatei, 'C:\VfSNamen.bsp'); reset(Namendatei);
for x := 1 to 500 do NamenArray[x].MitgliedsNummer := 0; for x := 1 to 500 do SpeicherArray[x].existiert := false; for x := 1 to 500 do KommenGehenArray[x] := false; for x := 1 to 250 do (*Problem Schleife*) begin if eof(NamenDatei) = false then read(Namendatei, Zwischenvariable); if (Zwischenvariable.MitgliedsNummer <> 0) and (eof(NamenDatei) = false) then NamenArray[ZwischenVariable.Mitgliedsnummer] := Zwischenvariable; end;
close(NamenDatei);
end; |
Interesiern euch auch noch die Variablentypen + Deklarationen? Falls ja, hier sind sie:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| type
RECNamenstruktur = record Name: Array [1..20] of Char; Vorname: Array [1..15] of Char; Gruppe: integer; Mitgliedsnummer: integer; end;
RECSpeicherStruktur = record existiert: boolean; Ankunftszeit: Array [1..6] of Char; Ausgangszeit: Array [1..6] of Char; end;
RECSpeicherDateiInhalt = record Ankunftszeit: Array [1..6] of Char; Ausgangszeit: Array [1..6] of Char; Name: Array [1..20] of Char; Vorname: Array [1..15] of Char; Gruppe: Integer; Mitgliedsnummer: Integer; end;
var PruefVariable: integer; Ausstieg: boolean; SpeicherArray: Array[1..500] of RECSpeicherStruktur; NamenArray: Array[1..500] of RECNamenstruktur; NamenDatei: file of RECNamenstruktur; KommenGehenArray: Array[1..500] of boolean; ComPortptr: Serialptr; SerialErrorCode: SerialErr; |
Es sind keine Pointer dabei, ich bin mit meinem Latain am Ende...
Servus, B.
Bismarck - So 01.09.02 17:45
Moin,
sorry, das Ganze hat sich erledigt. Es war ein verschleppter Fehler aus nem anderen Programm, welches die .bsp Datei mit den Namen erstellt.
Das Problem ist zwar behoben, aber es erklärt immer noch nicht das Entstehen der Grafikfehle. Naja, wird wohl für immer ungeklärt bleiben...
Trotzdem danke für's Nachdenken,
Servus, B.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!