AGB  ·  Datenschutz  ·  Impressum  







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

Exeption - Woher?

Ein Thema von fortuneNext · begonnen am 16. Aug 2008 · letzter Beitrag vom 20. Aug 2008
 
fortuneNext

Registriert seit: 11. Aug 2007
Ort: Neuss
133 Beiträge
 
Delphi 7 Enterprise
 
#1

Exeption - Woher?

  Alt 16. Aug 2008, 16:40
Hi,
in der Schule programmieren wir aktuell ein kleines Übungsprojekt, das eine Buchliste (Datenstruktur siehe Anhang) auslesen und ein TBuch schreiben soll.
Wir benutzen übrigens Delphi 6.

Ein Buch ist als folgendes deklariert (in eigener Unit mBuch):
Delphi-Quellcode:
unit mBuch;

interface

type
   TBuch = class(TObject)
   private
   {}
   public
   ID: integer;
        Thema: string;
        Autor: string;
        Titel: string;
        Ort: string;
        Erscheinungsjahr: integer;
        Verlag: string;
   end;

implementation

end.
Der Quellcode des restlichen Projekts:

Delphi-Quellcode:
unit mBuchliste;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, mBuch, StdCtrls;

type
  TfMain = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
  {}
  protected
    procedure LineExtract;
  public
    Buchliste: Array[1..1602] of TBuch;
  end;

var
  fMain: TfMain;
  s: string;
  z: integer;

const
  MyDat ='Buecher.txt';


implementation

{$R *.dfm}

function PosEx(const Substr: string; const S: string; Offset: Integer): Integer;
begin
  if Offset <= 0 then Result := 0
  else
    Result := Pos(Substr, Copy(S, Offset, Length(S)));

  if Result <> 0 then
    Result := Result + Offset - 1;
end;

procedure TfMain.LineExtract;
var
  x,y: integer;
begin
  x := 0;
  y := 1;
  For x := 1 to 7 do
  begin
    If x <> 7 then
    begin
      Case x of
      1: Buchliste[z].ID := StrToInt(Copy(s, y, PosEx(';', s, y) - y));
      2: Buchliste[z].Thema := Copy(s, y, PosEx(';', s, y) - y);
      3: Buchliste[z].Autor := Copy(s, y, PosEx(';', s, y) - y);
      4: Buchliste[z].Titel := Copy(s, y, PosEx(';', s, y) - y);
      5: Buchliste[z].Ort := Copy(s, y, PosEx(';', s, y) - y);
      6: begin
           If Copy(s, y, PosEx(';', s, y) - y) <> 'then
             Buchliste[z].Erscheinungsjahr := StrToInt(Copy(s, y, PosEx(';', s, y) - y))
           Else if Copy(s, y, PosEx(';', s, y) - y) = 'then
             Buchliste[z].Erscheinungsjahr := 0;
         end;
      end;
      y := PosEx(';', s, y) + 1;
    end
    Else if x = 7 then
    begin
      Buchliste[z].Verlag := Copy(s, y, Length(s) - y + 1);
    end;
  end;
end;

procedure ReadIn;
var
  datei: Textfile;
begin
  z := 0;
  assignfile(datei,MyDat);
  reset(datei);
  while not EOF(datei) do
  begin
    readln(datei,s);
    z := z + 1;
    fMain.LineExtract;
  end;
  closefile(datei);
end;

procedure TfMain.FormCreate(Sender: TObject);
begin
  ReadIn;
end;

end.
Beim ausführen von LineExtract gibts dann leider immer eine Exception der Klasse EAccessViolation (Zugriffsverletzung).
Keiner - nichtmal der Lehrer - weiss woher die kommmt. Hat jemand eine Idee?
mfg
fortuneNext
Angehängte Dateien
Dateityp: txt buecher_110.txt (120,2 KB, 7x aufgerufen)
Tim
"Hilfe & Support konnte nicht geöffnet werden. Bitte öffnen sie Hilfe & Support, um das Problem zu beheben."
"No Keyboard found. Press F1 to continue."
  Mit Zitat antworten Zitat
 


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 08:46 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