Главная страница
    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.008 c
1-37210
delfer.ru
2002-12-31 05:20
2003.01.13
У меня вопрос?????????????????


1-37104
Алексей П
2003-01-03 14:10
2003.01.13
Классы


1-37082
qwerty2
2003-01-03 16:32
2003.01.13
Как управлять с клавиатуры компонентом TRadioGroup?


14-37344
Сатир
2002-12-21 21:04
2003.01.13
А кто бреет бороду?


3-36913
tomat
2002-12-17 05:52
2003.01.13
InterBase, Trigger





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский