Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2011, 12:22   #1
PavelDAS
 
Регистрация: 08.02.2011
Сообщений: 3
Радость типизированный файл в ресурсах

Есть типизированный файл baza.das.

Значения из файла в массив передаются так:
Код:
procedure TForm1.FormActivate(Sender: TObject);
begin
col_strok:=0;
AssignFile(f,'baza.das');
reset(f);
while not(eof(f)) do
begin
read(f,mas_id[col_strok]);
inc(col_strok);
end;
CloseFile(f);

Label1.Caption:=Label1.Caption+' '+IntToStr(col_strok);
end;
res.rc
Код:
;базы
izdateli RT_RCDATA "izdateli.das"
baza RT_RCDATA "baza.das"
=============
Код:
const col=1250;
type das_baza=record
      id: longint;
      id_game: string[35];
      name: string[100];
      izd: string[50];
      metka: string[16];
      date_f: string[9];
    end;

var
    f: file of das_baza;
    col_strok:longint;
    mas_id: array[0..col] of das_baza;
==========
А как сделать так, чтобы значения из файла ресурсов передавались в массив (res.RES)?

Код:
{$R .\Debug\Win32\res.RES}
Что дальше?
PavelDAS вне форума Ответить с цитированием
Старый 03.09.2011, 15:04   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

http://delphiworld.narod.ru/_all_articles_.html
раздел Ресурсы - [35]
Там есть загрузка файлов из ресурсов
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.09.2011, 16:55   #3
PavelDAS
 
Регистрация: 08.02.2011
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
http://delphiworld.narod.ru/_all_articles_.html
раздел Ресурсы - [35]
Там есть загрузка файлов из ресурсов
Посмотрел. Ближайшее по смыслу:
Загрузить RTF файл из ресурса своего EXE

Код:
procedure TForm1.BitBtn5Click(Sender: TObject);
 var
  rStream: TResourceStream;
begin
rStream := TResourceStream.Create(hInstance, 'baza', RT_RCDATA) ;
end;
а как перевести записи из файла в массив то?

Последний раз редактировалось PavelDAS; 03.09.2011 в 17:05.
PavelDAS вне форума Ответить с цитированием
Старый 04.09.2011, 09:22   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

PavelDAS
мне кажется, что я мог бы написать Вам рабочий пример.

Вот только я предварительно хотел бы уточнить, что Вы понимаете, что Вы собственно хотите сделать...

Почему Вы не хотите воспользовать ОТДЕЛЬНЫМ типизированным файлом, как это было задуманно разработчиками изначально?

Вы понимаете, что Вы автоматически теряете смысл использования типизированного файла (прямой доступ к любой записи файла, неограниченный свободной памятью размер типизированного файла, возможность изменить любую запись..) ?

Файл, находящийся в ресурсах будет представлять собой константу (изменить находящие в exe данные самому EXE крайне сложно и затруднительно), поэтому данные в Вашем типизированном ресурсном файле Вы изменить не сможете, это понятно?

Если Вы понимаете, что делаете, то я помогу написать Вам пример кода по чтению типизированного файла в массив записей (кстати, в Delphi для этого удобно будет воспользоваться динамическим массивом).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 04.09.2011, 10:32   #5
PavelDAS
 
Регистрация: 08.02.2011
Сообщений: 3
Радость

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Вот только я предварительно хотел бы уточнить, что Вы понимаете, что Вы собственно хотите сделать...

Почему Вы не хотите воспользовать ОТДЕЛЬНЫМ типизированным файлом, как это было задуманно разработчиками изначально?
Есть программа IDCheck Editor (только для меня) для редактирования базы (типизированных файлов baza.das и izdateli.das), а есть IDCheck Reader (для всех).
Мне бы хотелось чтобы IDCheck Reader состоял из 1 файла. Сейчас там 2 файла - IDCheck_Reader.exe и baza.das.

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Вы понимаете, что Вы автоматически теряете смысл использования типизированного файла (прямой доступ к любой записи файла, неограниченный свободной памятью размер типизированного файла, возможность изменить любую запись..) ?

Файл, находящийся в ресурсах будет представлять собой константу (изменить находящие в exe данные самому EXE крайне сложно и затруднительно), поэтому данные в Вашем типизированном ресурсном файле Вы изменить не сможете, это понятно?
В IDCheck Reader'е мне это как раз и нужно, чтобы нельзя было редактировать файл базы.

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Если Вы понимаете, что делаете, то я помогу написать Вам пример кода по чтению типизированного файла в массив записей (кстати, в Delphi для этого удобно будет воспользоваться динамическим массивом).
Помогли бы немного улучшить программу
Возможно, можно было IDCheck Reader сделать как-то по другому, но я решил сделать через типизированные файлы.
PavelDAS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Типизированный файл с натуральными числами. Числа, встречающиеся 1 раз переписать в другой файл [Паскаль] mifomen Помощь студентам 7 16.12.2010 22:00
Типизированный файл Юляшко Паскаль, Turbo Pascal, PascalABC.NET 5 02.05.2010 19:12
Типизированный файл Юляшко Паскаль, Turbo Pascal, PascalABC.NET 1 28.04.2010 16:15
Типизированный файл Лубышев Помощь студентам 2 11.10.2008 11:08