IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Пересчет индексов записей, Типизированный файл
Lenn
сообщение 23.11.2009 20:28
Сообщение #1





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Программа создает(или добавляет записи в уже созданный) словарь-типизированный файл из пар слов(слово и его перевод)

Параллельно создаются 2 файла индексов соответствующих алфавитным упорядочениям записей в словаре по первой и второй компоненте.При добавлении очередной записи пересчитываются оба индекса.

Подскажите пожалуйста как сопаставить файлы с индексами с файлом записей и как пересчитать индекс


Заранее благодарен=)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Lenn
сообщение 29.11.2009 21:03
Сообщение #2





Группа: Пользователи
Сообщений: 3
Пол: Мужской

Репутация: -  0  +


Пока получилось только так:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Word: TEdit;
PWord: TEdit;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;


type
TMyRec = record
Word: String[50];
PWord: string[50];
index1,index2: integer;
end;

TMyRecArray = array[0..49] of TMyRec;

var
Form1: TForm1;
MyArray: TMyRecArray;
P: TMyRec;
F: file of TMyRec;
i:integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
for i := 0 to 49 do
begin
if MyArray[i].Word='' then
begin
MyArray[i].Word:=Word.Text;
MyArray[i].PWord:=PWord.Text;
MyArray[i].index1:=i;
MyArray[i].index2:=i;
break;
end;
end;

AssignFile(F,ExtractFilePath(Application.ExeName)+'main.dat');

Rewrite(F);
for i := 0 to 49 do
begin
if MyArray[i].Word<>'' then Write(F, MyArray[i]);
end;
CloseFile(F);

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Lines.Clear;
AssignFile(F,ExtractFilePath(Application.ExeName)+'main.dat');

reset(F);
while not Eof(F) do
begin
Read(F, P);
Memo1.Lines.Add(IntToStr(P.index1)+ ' ' + P.Word + ' ' + P.PWord + ' ' + IntToStr(P.index2));
end;
CloseFile(F);

end;


end.




А вот как записать тндексы в отдельные файлы и пересчитывать их не знаю wacko.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 14.07.2025 21:55
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"