Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.01.13;
Скачать: [xml.tar.bz2];

Вниз

PostGluk   Найти похожие ветки 

 
Fuinadan   (2002-12-18 18:11) [0]

Для Alx2
unit CBaseClass;
interface

const DBlockSize=512;
DBlockCount=12;

type TBirthDay = string[10];

TRecType = record
Mark: shortstring;
Model: shortstring;
Producer: shortstring;
BirthDay: TBirthDay;
BestBefore: Word;
Price: Currency;
Diagon: word;
Used: Boolean;
end;
const EmptyRec: TRecType=(Mark: "";Model: ""; Producer: ""; BirthDay: ""; BestBefore: 0;
Price: 0;Diagon: 0; Used: false);
type Plist=^list;
list = record
pos: LongInt;
R: TRecType;
pNext: plist;
pPrev: plist;
end;
TIDT = class
public
FileName: String;
FOpened: Boolean;
BlockSize, BlockCount: Word;
constructor Create;
function ReadOne(var pos_: LongInt): TRecType;
procedure EraseOne(R: TRecType);
procedure AddOne(R: TRecType);
procedure FindOne(R: TRecType; head: Plist);
procedure EditOne(R,R1: TRecType);
procedure CreateFile();
procedure OpenFile();
procedure CloseFile();
procedure EraseFile();
function Hash( HModel: shortstring ): Word;
private
F: File of TRecType;
function Move(var R: TRecType): Boolean;
end;

implementation
uses SysUtils;

constructor TIDT.Create;
begin
BlockSize:=DBlockSize;
BlockCount:=DBlockCount;
FOpened:=false;
FileName:="";
end;

function TIDT.ReadOne(var pos_: LongInt): TRecType;
var R: TRecType;
begin
R:=EmptyRec; //перебор
if FOpened then begin
if pos_ > -1 then begin
if pos_ < FileSize(F) then begin
seek(F, pos_); read(F, R); Inc(pos_);
end
else begin
pos_:=-1
end
end
end
else begin pos_:=-2 end;
ReadOne:=R;
end;


procedure TIDT.CreateFile();
var INI: TextFile;
S: String;
i: LongInt;
begin if FOpened then CloseFile(); //In case of fire...
S := FileName; SetLength(S,Length(S)-3); S:=S+"ini";
AssignFile(F, FileName); Rewrite(F);
AssignFile(INI,S); Rewrite(INI);
Writeln(INI,BlockSize); Writeln(INI,BlockCount);
System.CloseFile(INI);
for i:=1 to BlockSize*BlockCount do write(F, EmptyRec);
FOpened:=true;
end;

procedure TIDT.OpenFile();
var INI: TextFile;
S: String;
begin
if FOpened then CloseFile(); // на всякий пожврный...
S := FileName; SetLength(S,Length(S)-3); S:=S+"ini";
AssignFile(F, FileName); Reset(F);
AssignFile(INI,S); Reset(INI);
Readln (INI, BlockSize);
Readln (INI, BlockCount);
System.CloseFile(INI);
FOpened:=true;
end;


 
Fuinadan   (2002-12-18 18:20) [1]

Да,все молчат...А мне курсач сдавать, м/ду прочим...:((


 
FreeLancer   (2002-12-18 18:23) [2]


> Fuinadan © (18.12.02 18:20)
> Да,все молчат...А мне курсач сдавать, м/ду прочим...:((

Счастливый...
А нам домой пора :-)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.01.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.009 c
1-37142
smok_er
2002-12-28 14:34
2003.01.13
TWebBrowser & GoggleToolbar: Возможно ли?


4-37441
Urn
2002-11-24 19:49
2003.01.13
Сворачивание окон


1-37105
Алексей П
2003-01-03 08:05
2003.01.13
TQuickRep вызвать


7-37397
sural
2002-11-02 03:37
2003.01.13
Как узнать, какой пиксель экрана светиться каким цветом?


3-36950
vitnt
2002-12-18 11:50
2003.01.13
Interbase 5+6





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский