Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

опять про 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

Брось ты это дело, указатели многим не даются, тут надо учить теорию, метод научного втыка тут не эффективен.


Наверх

Титульная страница Поиск, карта сайта Написать письмо