Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.25;
Скачать: CL | DM;

Вниз

V kakom file i kak hraniti peremennuyu tipa: TmyData=record...   Найти похожие ветки 

 
AndersoNRules   (2004-07-12 20:56) [0]

TmyData= record
   Address:String[15];
       ID:Integer;
     end;

Nujno v kakomto file hraniti permennuyu tipa TmyData, toesti ne odnu a mnogo ih, poryadka 1000.  Podskajite pls kak luchse(shtob mojno bilo schitivati kak mojno bistrey) hraniti takuyu peremennuyu i kakom file?


 
Anatoly Podgoretsky ©   (2004-07-12 21:07) [1]

В типизированом


 
Rem   (2004-07-12 21:08) [2]

var
 f: file of TMyData;
 MyData: TMyData;
begin
 AssignFile(f, "MyDataFile.ext");
 Rewrite(f);
 // or
 Reset(f);
 // ...
 Write(f, MyData);
 // ...
 Read(f, MyData);
 // ...
 CloseFile(f);
end;

См. информацию по работе с типизированными файлами.


 
AndersoNRules   (2004-07-12 21:17) [3]

>Rem   (12.07.04 21:08) [2]

gde mojno pochitati pro tipizirovanniye fili?  a help"a hvatit?


 
Anatoly Podgoretsky ©   (2004-07-12 21:35) [4]

http://podgoretsky.com/cgi-bin/dlcounter/npscnt?file=http://podgoretsky.com/ftp/Docs/Delphi/Podgoretsky/PasFiles.html&fi le_id=app-files


 
AndersoNRules   (2004-07-12 21:50) [5]

spasibo!


 
Delphin ©   (2004-07-12 23:19) [6]

Hi! Вот небольшой приемер, писал не давно. Говорю сразу, что код корявый, но работоспособный

type
TMember=Record
Nam,Fam,Phone,Nick:String[25];
End;
................

var
 Form4: TForm4;
 F,TF:File of TMember;
 I,C:Integer;
 Member:Tmember;

...............
//Save Record
Seek(F,I);
Inc(I);
member.Nam:=Edit1.Text;
Member.Fam:=Edit2.Text;
Member.Phone:=Edit3.Text;
Member.Nick:=Edit4.Text;
Write(F,Member);

//First Record
Seek(F,0);
IF Not EOF(F) Then
Read(F,Member);
Edit1.Text:=Member.Nam;
Edit2.Text:=Member.Fam;
Edit3.Text:=Member.Phone;
Edit4.Text:=Member.Nick;

//Prev. Record

IF EOF(F) Then
Dec(I);
Dec(I);
If I<0 Then I:=0;
Seek(F,I);
IF Not EOF(F) Then
Read(F,Member);
Edit1.Text:=Member.Nam;
Edit2.Text:=Member.Fam;
Edit3.Text:=Member.Phone;
Edit4.Text:=Member.Nick;

//Next Record
I:=FilePos(F);
IF Not Eof(F)
Then Begin
Seek(F,I);
Read(F,Member);
Inc(I);
Edit1.Text:=Member.Nam;
Edit2.Text:=Member.Fam;
Edit3.Text:=Member.Phone;
Edit4.Text:=Member.Nick;
End;

//Last Record
While Not EOF(F) Do  Begin
I:=FilePos(F);
Seek(F,I);
Read(F,Member);
Inc(I);
Edit1.Text:=Member.Nam;
Edit2.Text:=Member.Fam;
Edit3.Text:=Member.Phone;
Edit4.Text:=Member.Nick;
End;

//Delete record (тут ооочень коряво, но работает :)

Var
P,S,FS,FP:Integer;
begin
S:=0;
P:=I;
Seek(F,S);
AssignFile(TF,"Member.Tmp");
IF Not FileExists("Member.Tmp") Then
Rewrite (TF);

Seek(F,0);
While Not EOF(F) DO
Read(F,Member);
FP:=FilePos(F);
Seek(F,S);
IF FP<>I Then Begin
///Dec(P);  //For last P-1

While P>S Do Begin
Seek(F,S);
Seek(TF,S);
Read(F,Member);
Write(TF,Member);
Inc(S);
End;
I:=FilePos(TF);
FS:=S+1;
While Not EOF(F) Do Begin
Seek(TF,S);
Seek(F,FS);
IF Not EOF(F) Then
Read(F,Member);
Write(TF,Member);
Inc(FS);
Inc(S);
End;
end
Else
IF FP=I Then Begin
While P-1>S Do Begin
Seek(F,S);
Seek(TF,S);
Read(F,Member);
Write(TF,Member);
Inc(S);
End;
Edit1.Text:=EmptyStr;
Edit2.Text:=Emptystr;
Edit3.Text:=EmptyStr;
Edit4.Text:=EmptyStr;
End;  
CloseFile(F);
Erase(F);
CloseFile(TF);
Rename(TF,"Member.Dat");
AssignFile(F,"Member.Dat");
IF Not FileExists("Member.Dat") Then
Rewrite (F)
Else
Reset(F);
I:=FilePos(F);
While Not EOF(F) Do
Read(F,Member);
I:=FilePos(F);
Edit1.Text:=Member.Nam;
Edit2.Text:=Member.Fam;
Edit3.Text:=Member.Phone;
Edit4.Text:=Member.Nick;
IF I=0 Then Begin
Edit1.Text:=EmptyStr;
Edit2.Text:=Emptystr;
Edit3.Text:=EmptyStr;
Edit4.Text:=EmptyStr;
end;

//Search (По Полю "Member.Nam")

procedure TForm4.Edit7Change(Sender: TObject);
Var SearchResult,SS:String;
M,Sl:Integer;
begin
M:=0;
Seek(F,0);
SS:=Edit7.Text;
While (SS<>SearchResult)And(Not EOF(F)) Do  Begin
SL:=Length(SS);
Seek(F,M);
Read(F,Member);
SearchResult:=Copy(Member.Nam,1,Sl);
Inc(M);
End;
Edit1.Text:=Member.Nam;
Edit2.Text:=Member.Fam;
Edit3.Text:=Member.Phone;
Edit4.Text:=Member.Nick;
end;

З.Ы
Критика, комментарии, предложения - приветствуются



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

Текущий архив: 2004.07.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.034 c
1-1089266877
EvgeniyR
2004-07-08 10:07
2004.07.25
Форматированный текс


14-1089357104
Mim1
2004-07-09 11:11
2004.07.25
Как проверить качество зеркала?


1-1089176228
pupus
2004-07-07 08:57
2004.07.25
Лаба по искусственному интеллекту


6-1085369766
maDByte
2004-05-24 07:36
2004.07.25
Проверка состояния HTTP и FTP серверов


14-1089175737
Kerk
2004-07-07 08:48
2004.07.25
Про комбобоксы