unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
Tsprueche=record
spruch:string[200];
autor:string[50];
end;
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
datei: file of Tsprueche;
implementation
{$R *.lfm}
{ TForm1 }
procedure txttodb(uebergabe:string);
var s:Tsprueche; //variable für datei:file of Tsprueche
spruch:string; //das was vorm ; steht
autor:string; //das was nach ; steht
posi:integer; //position im string
f:textfile; //var für den textfile quelle.txt
datei:file of Tsprueche; //var für den data base file ziel.db
begin
assignfile(f,'quelle.txt'); //Eingabe öffnen
reset(f);
assignfile(datei,'ziel.db'); //Ausgabe öffnen
rewrite(datei);
posi:=0;
while not eof(f) do
begin
readln(f,uebergabe); //liest in f und schreibt in den string uebergabe
posi:=pos(';',uebergabe); //Position von ; in uebergabe
s.spruch:=copy(uebergabe,1,posi-1); //das vorm ;
s.autor:=copy(uebergabe, posi+ 1, MAXINT); //nach ;
write(datei,s);
end;
closefile(f);
closefile(datei);
end;
procedure readRandomDataset(fileName: TFilename; var dataSet: TSprueche);
var
datei : file of TSprueche;
idx : longInt;
begin
assignFile(datei,'ziel.db');
if FileExists('ziel.db')
then ReSet(datei)
else ReWrite(datei);
idx := random(sizeOf(datei));
seek(datei,idx);
read(datei,dataSet);
[COLOR="Red"] closefile(datei); [/COLOR] *//Zeile 76: hier hab ich den RunError
end;
procedure TForm1.Button1Click(Sender: TObject);
var
dataSet : TSprueche;
spruch, autor:string;
begin
readRandomDataSet('ziel.db',dataSet);
spruch:= dataSet.spruch;
autor:= dataSet.autor;
memo1.Lines.Add(spruch+'von'+autor);
end;
end.