|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.05.2008, 09:42 | #1 |
-=PriZraK=-
Форумчанин
Регистрация: 12.12.2007
Сообщений: 399
|
Запись файлов в файл...
Доброе время суток. У меня возник вопрос:
Как мне сохранить в один файл(при помощи blockread,blockwrite) несколько файлов(например jpg,exe,mp3)?? В самоучителях про blockread и blockwrite очень мало сказанно...Если не сложно,то дайте ссылку на материал или дайте пожалуйста код... |
11.05.2008, 12:35 | #2 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Делаите описатели для каждого файла, ну например, на быструю руку
Код:
Код:
|
11.05.2008, 12:37 | #3 |
Пользователь
Регистрация: 09.05.2008
Сообщений: 28
|
я этим тож занимался, вот написанный мной PocketMaker, разбирайсо
function getfsize(path: string): _BY_HANDLE_FILE_INFORMATION; var p: string; f: cardinal; i: _BY_HANDLE_FILE_INFORMATION; begin p := path; f := createfile(pchar(p), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, FILE_FLAG_RANDOM_ACCESS, 0); if f <> 0 then begin GetFileInformationByHandle(f, i); result := i; closehandle(f); end else result := i; end; procedure Fill(var a:array of char;s:string); var j:cardinal; begin for j:=1 to length(s) do begin a[j-1]:=(s[j]); end; end; procedure CreatePocket(s:string); var p,f:TFileStream; b:byte; cap:string; st:array[0..255]of char; ss:string; c,j:cardinal; begin cap:=form1.caption; p:=TFileStream.Create(s,fmCreate or fmOpenWrite); b:=0; p.Write(b,sizeof(b)); p.Position:=5; for j:=0 to form1.data.Items.Count-1 do begin ss:=extractfilename(form1.data.Item s[j]); b:=length(ss); p.Write(b,sizeof(b)); c:=getfsize(form1.data.Items[j]).nFileSizeLow; p.Write(c,sizeof(c)); fill(st,ss); p.Write(st,length(ss)); end; c:=p.Position-5; p.Position:=1; p.Write(c,sizeof(c)); p.Position:=c+5; for j:=0 to form1.data.Items.Count-1 do begin form1.caption:=inttostr(j+1)+'/'+inttostr(form1.data.items.count)+ ' '+extractfilename(form1.data.Items[j]); application.ProcessMessages; f:=TFilestream.Create(form1.data.It ems[j],fmOpenRead); p.CopyFrom(f,f.Size); f.Free; end;
отлаживание - процесс избавления программы от лажи
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запись в файл | Titan123 | Общие вопросы Delphi | 6 | 23.08.2008 01:12 |
Запись в файл | |{ot | Общие вопросы Delphi | 6 | 05.07.2008 02:24 |
Запись в файл | [Smarik] | Помощь студентам | 4 | 07.05.2008 23:26 |
Запись в файл С++ | Viteks | Общие вопросы C/C++ | 3 | 18.04.2008 13:18 |
запись в файл | Prisian | Общие вопросы Delphi | 6 | 24.07.2007 13:43 |