Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите разархивировать текст, всю голову уже сломал / 6 сообщений из 6, страница 1 из 1
29.06.2012, 09:28:42
    #37859708
vladprog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разархивировать текст, всю голову уже сломал
текст запакован с помощью zlib в Delphi, как данный текст распаковать в php?
Текст из rtf файла.
...
Рейтинг: 0 / 0
29.06.2012, 09:58:54
    #37859769
vladprog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разархивировать текст, всю голову уже сломал
vladprogтекст запакован с помощью zlib в Delphi, как данный текст распаковать в php?
Текст из rtf файла.

собственно сам код

function UncompressString(const Str : string; MayBeUncompressed : Boolean) : string;
type
PInteger = ^Integer;
var
st : TMyMemoryStream;
ZipStream : TDecompressionStream;
Size : integer;
SizeStr : string;
begin
if StrLComp(PChar(Str), 'PK', Length('PK')) = 0 then
begin
Assert(Length(Str) >= 6, 'Îøèáêà ðàñïàêîâêè. Äëèíà ñòðîêè äîëæíà áûòü áîëüøå 6 ñèìâîëîâ');
SizeStr := Copy(Str, 3, 4);
Size := PInteger(PChar(SizeStr))^;
st := TMyMemoryStream.Create;
try
st.SetPointer(@(Str[7]), Length(Str)-6);
ZipStream := TDecompressionStream.Create(st);
try
SetLength(Result, Size);
ZipStream.Read(Result[1], Size);
finally
ZipStream.Free;
end;
finally
st.Free;
end;
end
else
begin
if not MayBeUncompressed then
Raise Exception.Create('Îøèáêà ðàñïàêîâêè. Ñòðîêà íå ñîäåðæèò çàãîëîâêà.');
Result := Str;
end;
end;
...
Рейтинг: 0 / 0
29.06.2012, 13:14:39
    #37860193
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разархивировать текст, всю голову уже сломал
Модератор:
vladprog , не забываем пользоваться тегом SRC, когда постите код.
...
Рейтинг: 0 / 0
02.07.2012, 10:53:28
    #37862519
vladprog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разархивировать текст, всю голову уже сломал
Помогите код на php переложить
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
function uncompress (dest : pBytef;
                     var destLen : uLong;
                     const source : array of byte;
                     sourceLen : uLong) : int;
var
  stream : z_stream;
  err : int;
begin
  stream.next_in := pBytef(@source);
  stream.avail_in := uInt(sourceLen);
  { Check for source > 64K on 16-bit machine: }
  if (uLong(stream.avail_in) <> sourceLen) then
  begin
    uncompress := Z_BUF_ERROR;
    exit;
  end;

  stream.next_out := dest;
  stream.avail_out := uInt(destLen);
  if (uLong(stream.avail_out) <> destLen) then
  begin
    uncompress := Z_BUF_ERROR;
    exit;
  end;

  stream.zalloc := NIL;       { alloc_func(0); }
  stream.zfree := NIL;        { free_func(0); }

  err := inflateInit(stream);
  if (err <> Z_OK) then
  begin
    uncompress := err;
    exit;
  end;

  err := inflate(stream, Z_FINISH);
  if (err <> Z_STREAM_END) then
  begin
    inflateEnd(stream);
    if err = Z_OK then
      uncompress := Z_BUF_ERROR
    else
      uncompress := err;
    exit;
  end;
  destLen := stream.total_out;

  err := inflateEnd(stream);
  uncompress := err;
end;
...
Рейтинг: 0 / 0
02.07.2012, 11:29:27
    #37862599
r u
r u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разархивировать текст, всю голову уже сломал
...
Рейтинг: 0 / 0
02.07.2012, 11:47:11
    #37862633
vladprog
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разархивировать текст, всю голову уже сломал
php стоит 5.4.0.
Почему-то когда использую функцию zlib_encode или zlib_decode архивирование и разархивирование не происходит, может не правильно использую?

Код: php
1.
2.
3.
4.
5.
6.
7.
 $fp = fopen( '2.txt', "r" );
  $data = fread ( $fp, filesize( '2.txt' ) );
  fclose( $fp );

   zlib_encode($output,$data,-1);

  echo $output;
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите разархивировать текст, всю голову уже сломал / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]