Einzelnen Beitrag anzeigen

PhöniX

Registriert seit: 24. Jan 2004
Ort: Marienfeld
149 Beiträge
 
Delphi 5 Professional
 
#8

Re: Bestimmte Stellen aus String List lesen

  Alt 31. Jan 2004, 23:01
wenn ich mit exceptions mache, immer noch der gleicher fehler..
wenn ich ohne mache, läd er 5 sekunden und dann is nichts mehr...
hier mal der ganze code:
Delphi-Quellcode:
unit main_u;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Grids, Menus, Buttons, ExtCtrls, TeeProcs, TeEngine, Chart,
  ImgList, DXDraws;

type
  TMain = class(TForm)
    NutzerEingabe: TEdit;
    version: TLabel;
    VKCoach: TLabel;
    MainMenu: TMainMenu;
    Datei: TMenuItem;
    BeendenMenu: TMenuItem;
    voka: TLabel;
    ausgabelabel: TLabel;
    eingabelabel: TLabel;
    OK: TBitBtn;
    YesOrNo: TImage;
    TextRight: TLabel;
    antwort: TLabel;
    answer: TLabel;
    Beenden: TBitBtn;
    art: TLabel;
    Info: TMenuItem;
    Auswertung: TButton;
    procedure BeendenMenuClick(Sender: TObject);
    procedure BeendenClick(Sender: TObject);
    procedure OKClick(Sender: TObject);
    procedure InfoClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure AuswertungClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

type TEintrag = record
  englisch,
  deutsch: string[255];
end;

var
  Main: TMain;
  F: textfile;
  a: string[255];
  liste: Array of TEintrag;
  Gesamt: Integer;
  Richtig: Integer;
  Falsch: Integer;

implementation

{$R *.DFM}
procedure readinifile(dateiname: string);
begin
assignfile(F, dateiname);
reset(F);
while not EOF(F) do
begin
try
setlength(liste, length(liste) +1 );
readln(a);
readln(a);
liste[high(liste)].deutsch := a;
readln(a);
liste[high(liste)].englisch := a;
except
setlength(liste, length(liste) -1 );
end;
end;
closefile(F);


end;

function getrandomitem: TEintrag;
begin
  if length(liste) <>0 then
  Result := liste[round(high(liste)* random)];
end;
//END!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
procedure TMain.BeendenMenuClick(Sender: TObject);
begin
 Close;
end;

procedure TMain.BeendenClick(Sender: TObject);
begin
 Close;
end;


procedure TMain.OKClick(Sender: TObject);
var
 puffer: TEintrag;
begin
 if ansilowercase(NutzerEingabe.Text) = puffer.englisch then
  begin
   TextRight.Caption := 'Richtig';
   YesOrNo.Picture.LoadFromFile('Graphics/yes.bmp');
   NutzerEingabe.SetFocus;
   puffer :=getrandomitem;
   readinifile('d-e.ini');
   voka.Caption := puffer.deutsch;
   Auswertung.Enabled := True;
   Gesamt := Gesamt + 1;
   Richtig := Richtig + 1;
  end
 else
  begin
   TextRight.Caption := 'Falsch';
   YesOrNo.Picture.LoadFromFile('Graphics/no.bmp');
   answer.Visible := true;
   antwort.Caption := puffer.englisch;
   NutzerEingabe.SetFocus;
   puffer :=getrandomitem;
   readinifile('d-e.ini');
   voka.Caption := puffer.deutsch;
   Auswertung.Enabled := True;
   Gesamt := Gesamt + 1;
   Falsch := Falsch + 1;
  end;
end;

procedure TMain.InfoClick(Sender: TObject);
begin
 Info.Visible := True;
end;

procedure TMain.FormCreate(Sender: TObject);
var
 puffer: TEintrag;
begin
 puffer :=getrandomitem;
  readinifile('d-e.ini');
  voka.Caption := puffer.deutsch;
  Gesamt := 0;
  Richtig := 0;
  Falsch := 0;
end;

procedure TMain.AuswertungClick(Sender: TObject);
var
 Ergebnis: Integer;
begin
 Ergebnis := Gesamt div Richtig * 100;
   TextRight.Caption := IntToStr(Ergebnis) + '% richtig';
   YesOrNo.Visible := False;
   answer.Visible := False;
   antwort.Visible := False;
end;

end.
Vielleicht hilft das..

[edit]Fataler Fehler: Ausgabedatei:'F:\Dokumente und Einstellungen\...\vkcoach.exe' kann nicht erstellt werden[/edit]
cya PhöniX
besucht www.lycoweb.de
  Mit Zitat antworten Zitat