Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  117

•  TDictionary Custom Sort  3 306

•  Fast Watermark Sources  3 056

•  3D Designer  4 809

•  Sik Screen Capture  3 306

•  Patch Maker  3 523

•  Айболит (remote control)  3 624

•  ListBox Drag & Drop  2 984

•  Доска для игры Реверси  81 500

•  Графические эффекты  3 911

•  Рисование по маске  3 219

•  Перетаскивание изображений  2 603

•  Canvas Drawing  2 725

•  Рисование Луны  2 549

•  Поворот изображения  2 158

•  Рисование стержней  2 157

•  Paint on Shape  1 561

•  Генератор кроссвордов  2 220

•  Головоломка Paletto  1 761

•  Теорема Монжа об окружностях  2 205

•  Пазл Numbrix  1 678

•  Заборы и коммивояжеры  2 049

•  Игра HIP  1 274

•  Игра Go (Го)  1 220

•  Симулятор лифта  1 467

•  Программа укладки плитки  1 211

•  Генератор лабиринта  1 537

•  Проверка числового ввода  1 346

•  HEX View  1 485

•  Физический маятник  1 351

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Хранение данных в EXE-файле



Автор: Peter Below

Вы можете включить любой тип данных как RCDATA или пользовательских тип ресурса. Это очень просто. Данный совет покажет вам общую технику создания такого ресурса.


Type
  TStrItem = String[39];  { 39 символов + байт длины -> 40 байтов }
  TDataArray = Array [0..7, 0..24] of TStrItem;

Const
  Data: TDataArray = (
  ('..', ...., '..' ),  { 25 строк на строку }
  ...                   { 8 таких строк }
  ('..', ...., '..' )); { 25 строк на строку }

Данные размещаются в вашем сегменте данных и занимают в нем 8K. Если это слишком много для вашего приложения, поместите реальные данные в ресурс RCDATA. Следующие шаги демонстрируют данный подход. Создайте небольшую безоконную программку, объявляющую типизированную константу как показано выше, и запишите результат в файл на локальный диск:


program MakeData;
type
  TStrItem = string[39]; { 39 символов + байт длины -> 40 байтов }
  TDataArray = array[0..7, 0..24] of TStrItem;

const
  Data: TDataArray = (
    ('..', ...., '..'), { 25 строк на строку }
    ... { 8 таких строк }
    ('..', ...., '..')); { 25 строк на строку }

var
  F: file of TDataArray;
begin
  Assign(F, 'data.dat');
  Rewrite(F);
  Write(F, Data);
  Close(F);
end.

Теперь подготовьте файл ресурса и назовите его DATA.RC. Он должен содержать только следующую строчку:

 DATAARRAY RCDATA "data.dat"
Сохраните это, откройте сессию DOS, перейдите в каталог где вы сохранили data.rc (там же, где и data.dat!) и выполните следующую команду:
 brcc data.rc   (brcc32 для Delphi 2.0)

Теперь вы имеете файл data.res, который можете подключить к своему Delphi-проекту. Во время выполнения приложения вы можете генерировать указатель на данные этого ресурса и иметь к ним доступ, что и требовалось.


{ в секции interface модуля  }
type
  TStrItem = string[39]; { 39 символов + байт длины -> 40 байтов }
  TDataArray = array[0..7, 0..24] of TStrItem;
  PDataArray = ^TDataArray;
const
  pData: PDataArray = nil; { в Delphi 2.0 используем Var }

implementation
{$R DATA.RES}

procedure LoadDataResource;
var
  dHandle: THandle;
begin
  { pData := Nil; если pData - Var }
  dHandle := FindResource(hInstance, 'DATAARRAY', RT_RCDATA);
  if dHandle <> 0 then
  begin
    dhandle := LoadResource(hInstance, dHandle);
    if dHandle <> 0 then
      pData := LockResource(dHandle);
  end;
  if pData = nil then
    { неудача, получаем сообщение об ошибке с помощью
    WinProcs.MessageBox, без помощи VCL, поскольку здесь код
    выполняется как часть инициализации программы и VCL
    возможно еще не инициализирован! }
end;

initialization
  LoadDataResource;
end.

Теперь вы можете ссылаться на элементы массива с помощью синтаксиса pData^[i,j].





Похожие по теме исходники

Экспорт баз данных в Excel

База данных "Книжный магазин"

База данных Видеофильмов

База данных "Школа"

 

База данных без BDE

База данных студентов

Фильтрование данных

Pevrica (сжатие данных)

 

Erase self EXE

EXE/PE Properties

Binary Search Images in EXE

HWnd2EXE

 

Exec and Wait

Add Code to EXE

Executor

ExeFog (сжатие EXE)

 

PE EXE Coder




Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте