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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2011, 16:03   #1
Игорь0766
Новичок
Джуниор
 
Регистрация: 25.01.2011
Сообщений: 1
По умолчанию [Delphi], запись и чтение изображения в файл своего расширения

Добрый день, уважаемые программисты.
Столкнулся с такой проблемой: нужно в Delphi написать программу, которая бы записывала информацию в файл, своего расширения (под своим расширением я понимаю к примеру *.pg, *.sss ....); записываемая информация должна содержать цифровое поле и поле с изображением bmp. После записи даной инфрмации чтоб можна было легко считать необходимое поле.

Порылся немного в нете, нашел реализацию записи изображения в файл и как записать и считать данные с файла, но соединить их не могу...
(Не говорите только что это баян, то как этот баян я не нашел)
привожу пример записи/чтения нужного элемента из файла:
Код:
type  TMember = record
    name  : string[50];
    eMail : string[30];
    Posts : LongInt;
    end;
var
  Form1: TForm1;
  Members : array[1..50] of TMember;

procedure TForm1.Button1Click(Sender: TObject);// по нажатию кнопки идет запись информации в файл 'd:\MyDocument.pg'
var  F : file of TMember;
 i: integer;
begin
 Members[1].name:='___Nikolay';
  Members[1].eMail:='DelphiWorld@mail.ru';
  Members[1].Posts:=10;
  Members[2].name:='Sveta';
  Members[2].eMail:='sveta29@mail.ru';
  Members[2].Posts:=28;
  Members[3].name:='Elena';
  Members[3].eMail:='malisheva_e@rambler.ru';
  Members[3].Posts:=5;
AssignFile(F,'d:\MyDocument.pg');
Rewrite(F);
try    for i:= 1 to 50 do
write (F, Members[i]);
finally    CloseFile(F);
end;
end;

procedure TForm1.Button3Click(Sender: TObject);// здесь считуються нужная информация
var  ReadMembers: array[1..50] of TMember;
F: file of TMember;
i: integer;
begin
AssignFile(F,'d:\MyDocument.pg');
Reset(F);
try    i:=0;
while not Eof(F) do
begin      read (F, ReadMembers[i]);
       ////////////////////////
       StringGrid1.Cells[0,i]:=ReadMembers[i].name;// видно, что можно обратится к любому значению с файла
       StringGrid1.Cells[1,i]:=ReadMembers[i].eMail;
       StringGrid1.Cells[2,i]:=IntToStr(ReadMembers[i].Posts);
       ////////////////////////
       i:=i+1;
       end;
       finally
       CloseFile(F);
       end;
end;
как добавить сюда загрузку изображения?
подскажите плиз, а то препод убьет))
Игорь0766 вне форума Ответить с цитированием
Старый 31.01.2011, 16:41   #2
Cannibal
Форумчанин
 
Регистрация: 17.02.2008
Сообщений: 191
По умолчанию

Код:
type isobr=record
  hight:integer;
  width:integer
  bitmap:array[0..N] of byte;
  end;
var img:isibr;
i,j,k:inteder;
begin
//запись
k:=0
for i:=0 to pic.hight do
  for j:=0 to pic.width do begin
    img.bitmap[k]:=pic.canvas.pixels[i,j];
    inc(k);
  end;
img.width:=pic.width;
img.hight:=pic.hight;

//чтение
k:=0
for i:=0 to img.hight do
  for j:=0 to img.width do begin
    pic.canvas.pixels[i,j]:=img.bitmap[k];
    inc(k);
  end;
pic.width:=img.width;
pic.hight:=img.hight;
размер массива bitmap и тип элемента подбери эксперементально.

p.s. работу проги не проверял. тут только идея.
Mathematicians often mix up Christmas and Halloween, because Dec.25=Oct.31.
Cannibal вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение и запись из/в файл Pirotexnik Общие вопросы C/C++ 7 28.01.2011 16:54
Чтение и запись в файл Dycek Общие вопросы C/C++ 0 18.01.2011 15:04
Запись и чтение параметров изображения в текстовый файл Game1024 Общие вопросы .NET 1 14.01.2010 10:36
Чтение и запись в файл deagle05 Общие вопросы C/C++ 3 22.12.2009 00:11
проблемы с создание своего расширения! blackstersl Общие вопросы Delphi 32 04.08.2009 22:12