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: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68:
| type Tindex=record nr:integer; end; Ttest=record name:string[30]; end;
procedure TForm1.Button1Click(Sender: TObject); var test: file of Ttest; artikel1,artikel2:Ttest; index:file of Tindex; indexartikel:Tindex; i,erg,a:integer ;
begin assignfile(test,'test.dat'); assignfile(index,'index.idx');
if not fileexists('test.dat') then rewrite(test)else reset(test); if not fileexists('index.idx') then rewrite(index)else reset(index);
seek(test,filesize(test)); artikel1.name:=edit1.text; write(test,artikel1);
if filesize(index)=0 then begin indexartikel.nr:=0; write(index,indexartikel); end else begin
i:=0; repeat seek(index,i); read(index,indexartikel); seek(test,indexartikel.nr); read(test,artikel2); i:=i+1; erg := ansicomparestr(artikel1.name,artikel2.name); until (erg<=0) or (i=filesize(index));
if i=filesize(index) then begin seek(index,filesize(index)); indexartikel.nr:=filesize(test)-1; write(index,indexartikel); end else begin a:=filesize(index)-1; i:=i-1; repeat seek(index,a); read(index,indexartikel); write(index,indexartikel); a:=a-1; until a=i; seek(index,i); indexartikel.nr:=filesize(test)-1; write(index,indexartikel); end;
end;
closefile(index); closefile(test);
end; |