AGB  ·  Datenschutz  ·  Impressum  







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

readln wirft mit fehlern

Ein Thema von katz0r · begonnen am 20. Okt 2005 · letzter Beitrag vom 21. Okt 2005
Antwort Antwort
katz0r

Registriert seit: 20. Okt 2005
2 Beiträge
 
#1

readln wirft mit fehlern

  Alt 20. Okt 2005, 20:31
Hallo Leute,

ich bin neu hier, hab mich grad angemeldet, weil ich echt nimmer weiter weiss mit meinem Programm! Ich hab schon mehrere Stunden gegoogelt und finde einfach nix. So, genug geweint hier das Problem :

Die folgende Prozedur spuckt "Invalid Pointer Operation" wenn das readln() gleich vor dem letzten end; aufgerufen wird.

Delphi-Quellcode:

procedure tdxffile.parsetext;
var s : String; i : integer;
begin
  i := length(texts);
  inc(i);
  setlength(texts, i);

  readln(datei, s);
  while(s) <> ' 0do
  begin
    if strtoint(s) = 1 then
    begin
      readln(datei, s);
      texts[i].text := s;
    end
    else if strtoint(s) = 10 then
    begin
      readln(datei, s);
      texts[i].x1 := strtofloat(s);
    end
    else if strtoint(s) = 20 then
    begin
      readln(datei, s);
      texts[i].y1 := strtofloat(s);
    end
    else if strtoint(s) = 30 then begin
      readln(datei, s);
      texts[i].z1 := strtofloat(s);
    end
    else readln(datei, s);
   // s := '';
    readln(datei, s);
  end;
  readln(datei, s); //hier wird die Exception geworfen
  if s = 'LINEthen parseline else if s = 'TEXTthen parsetext else fakeparseentity;
end;
Aber seltsamerweise erst wenn s einmal 10 war...das heisst, die schleife läuft einmal mit s=7 und einmal mit s=8 durch ohne was zu tun, dann kommt s=10, der wert wird in mein array gespeichert und beim nächsten readln kackt er mir ab!
  Mit Zitat antworten Zitat
Benutzerbild von Grishnak
Grishnak

Registriert seit: 15. Sep 2005
Ort: Neu-Ulm
111 Beiträge
 
RAD-Studio 2009 Arc
 
#2

Re: readln wirft mit fehlern

  Alt 20. Okt 2005, 20:48
Ist dein "texts" ein "array of integer"? Mit "SetLength(texts, i)" bekommt es zwar i Einträge, aber von 0 bis i-1! Innerhalb der while-Schleife wird aber "texts[i]" ein Wert zugewiesen! (Außerdem wird innerhalb der while-Schleife das i auch nicht mehr hochgezählt bzw. das Array vergrößert!)
Mach' etwas idiotensicher und irgendjemand erfindet einen besseren Idioten!
  Mit Zitat antworten Zitat
katz0r

Registriert seit: 20. Okt 2005
2 Beiträge
 
#3

Re: readln wirft mit fehlern

  Alt 20. Okt 2005, 20:58
texts ist ein array of ttext .

Die while schleife soll nur ein Element des Arrays bearbeiten. Aber du hattest trotzdem Recht. Ich wollte die ganze zeit "ins leere" schreiben. Nur seltsam ist, dass der Debugger mir erst beim nächsten readln nen Fehler ausspuckt!

vielen Dank auf jeden Fall erstmal!

grüße, MArtin
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: readln wirft mit fehlern

  Alt 20. Okt 2005, 23:56
Guck dir mal Case an ! Dann wirds einfacher. 8)
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: readln wirft mit fehlern

  Alt 21. Okt 2005, 00:05
Zitat von katz0r:
Nur seltsam ist, dass der Debugger mir erst beim nächsten readln nen Fehler ausspuckt!
In den Optionen einfach mal die Bereichsprüfung aktivieren. Kostet zwar ein paar wenige CPU-Cycles, aber dann wird zur Laufzeit auf das Über-/Unterschreiten von Arraygrenzen geprüft, und sofort und adequat gemeckert. Zumindest währed das Programm in der Entwicklung ist, ist diese Option oftmals recht hilfreich . (Im Release u.U. auch, wenn es nicht grad zeitkritische Teile betrifft.)

\Edits: Eieiei, die Rechtschreibung...
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: readln wirft mit fehlern

  Alt 21. Okt 2005, 06:59
Willkommen in der Delphi-PRAXiS, Martin.

Ich habe dir ein Demo-Projekt erstellt, welches dir vielleicht ein paar Anregungen für dein Projekt gibt. Dabei wird eine DXF-Datei zwar in einem Baum visualisiert, allerdings ohne Hierarchie.

Grüße vom marabu
Angehängte Dateien
Dateityp: zip dxf_176.zip (14,9 KB, 4x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:07 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