Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Загрузка текста из ресурсов

2.1K
26 октября 2002 года
Bel_Caesar
3 / / 05.10.2002
Может кто нибудь поможет разобраться мне разобраться с одной штукой?
Короче идет так .... ->

procedure TMainWnd.refrlist_aExecute(Sender: TObject); // вот тут все и начинается...
var li:TListItem;
f:TextFile;
s:string;
c:integer;
ResHandle : THandle;
MemHandle : THandle;
MemStream : TMemoryStream;
ResPtr : PByte;
ResSize : Longint;
begin
StatusBar.SimpleText := 'Сортирую список по фамилиям, адресам и телефонам...';
ResHandle := FindResource(hInstance, 'DBDATA', 'PHONEDB'); // получаем описатель ресурса
if ResHandle = 0 then showmessage('Вот хрень! Не могу найти свой ресурс...'+#13+'Кто-то вырезал их из выполняемого файла :(.');
MemHandle := LoadResource(hInstance, ResHandle);
ResPtr := LockResource(MemHandle);
MemStream := TMemoryStream.Create;
ResSize := SizeOfResource(hInstance, ResHandle);
MemStream.SetSize(ResSize);
MemStream.Write(ResPtr^, ResSize);
MemStream.Seek(0, 0);
MemStream.SaveToFile(GetMyTempFileName); // сохраняем поток памяти в файл. (блин, было бы неплохо читать файл прямо из памяти... но как ?)
FreeResource(MemHandle);
MemStream.Free;

AssignFile(f,GetMyTempFileName);
Reset(f);
c := 0;
while not eof(f) do begin // тут идет алгоритм сортировки инфы по листвьюшке
s := '';
readln(f,s);
inc(c);
li := List.Items.Add;
if length(s) <= 1 then begin
li.Caption := s;
li.SubItems.Add(s);
li.SubItems.Add(s);
li.SubItems.Add(s);
end else li.Caption := inttostr(c);
li.SubItems.Add(GetSurName(s)); // выделяем из строки фамилию
li.SubItems.Add(GetAdress(s)); // ... адрес
li.SubItems.Add(GetPhone(s)); // ... телефон
Application.ProcessMessages;
end;
CloseFile(f);
StatusBar.SimpleText := 'Сортировка завершена!';
end;

Написал я в общем прогу-телефонный справочник своего города.
Все работает заебись, но вот в чем
дело: у меня есть тхт файл - список всех телефонов и адресов. Я его
запихнул в ресурсы и пытаюсь почитать... в общем получается только так
как вышеприведенном коде (т.е. сохраняю этот список в текстовый файл,
а только потом читаю). А я хотел бы чтоб оно читалось как-бы сразу из
ресурса без всяких там ТЕМП файлов... Можешь помочь? А то так как-то
не по профессиональному :). Ресурс представляет собой обыкновенный
текстовый файл...

Заранее благодарен.
356
26 октября 2002 года
molnij
159 / / 20.06.2000
Не понял, ты что хочешь запихнуть весь справочник в exe-шник? Или что??? Если первое, то зачем? Потом придется при кажом добавлении номеров перекомпиливать прогу - глупо. Просто сделай файл с записями - телефонами и читай оттуда.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог