![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
опять про Zlib. Отдельной темой. [D7, WinXP]
Ским © (2007-01-08 03:21:00)Уже 8й день воюю со злибом, кода исписал уже столько, что даже уже не помню как правильно =), так что не ругайтесь, плз, а укажите на ошибки :Р
procedure TForm1.Button3Click(Sender: TObject);
const
BUF_SIZE = 4098;
var
outbuf: array [0..BUF_SIZE - 1] of Byte; // массив работающий вместо буфера,
//т.е. в него должен распакованый контент возвращаться
input:TMemoryStream; // No comments.
begin
input:=tmemorystream.create;
input.LoadFromFile('c:\file.gz');
UnPackStream(input);
// вот тут должен быть код для вытаскивания из поинтера,
//который вернула unPackStream и его сохранения в файл, но в силу того, что
//я с поинтерами не работал, я не знаю каким образом это сделать.
end;
UnPackStream(); - процедура взята из предыдущего вопроса, но навсяк. случай код повторю.
procedure tform1.UnPackStream(var sSrc: TMemoryStream);
var
UnknownPtr: pointer;
NewSize: integer;
begin
unknownptr:=@outbuf;
sSrc.Position := 0;
try
DeCompressBuf(sSrc.Memory, sSrc.Size, 0, UnknownPtr, NewSize);
sSrc.clear;
sSrc.Position := 0;
sSrc.Write(UnknownPtr^, NewSize);
sSrc.Position := 0;
finally
FreeMem(UnknownPtr, NewSize);
end;
end;
koha (2007-01-08 09:39:00) [1]Здесь про то чем ты занимаешся....
Статья по твоей теме.
http://www.programmersclub.ru/ahillesarhiv
Anatoly Podgoretsky (2007-01-08 06:56:00) [2]> Германн (08.01.2007 03:40:02) [2]
Только в особых случаях
Германн (2007-01-08 03:40:00) [3]
> метод научного втыка
Это что-то новенькое, Анатолий! Или Вы принципиально против смайликов?
Anatoly Podgoretsky (2007-01-08 03:32:00) [4]> Ским (08.01.2007 03:21:00) [0]
Теперь стало еще хуже, пропал блок finally, не используемая переменная outbuf в первой процедура, во второй используется или глобальная или необъявленая переменная outbuf
Брось ты это дело, указатели многим не даются, тут надо учить теорию, метод научного втыка тут не эффективен.