FPC}TCompressionStream{$ELSE}TZCompressionStream{$ENDIF};
var
fs: TFileStream;
cs: TCompStream;
s: array[0..5] of byte = (1,2,3,4,5,6);
begin
fs:=TFileStream.Create('test.txt', fmCreate);
cs:=TCompStream.Create(clfastest, fs);
fs.Write(s[0], Length(s));
cs.Write(s[0], Length(s));
cs.Free;
fs.Free;
end.
FPC:
01 02 03 04 05 06 78 01 63 64 62 66 61 65 03 00 00 3E 00 16
Delphi:
78 01 63 64 62 66 61 65 03 00 00 3E 00 16
Кто правее?
Стикер
А как ты смотришь байтики? В файл то вывода я не вижу.
А, ну понятно... тут Delphi TCompressionStream просто игнорит смещение почему-то... и пишет снова в 0х0
HxD - HEX-редактор
Так туда всё что угодно может попасть, выведи в файл.
Те, кто считает, что Delphi - вы ж не с пустого места так считаете? Может поделитесь мнением почему именно так правильно?
🤔 А? как это всё-что угодно? что за магия такая?
Я вижу что в выводе FPC вначале идут исходные данные. Но опять же это просто просмотр, туда всё что угодно может подмешаться.
Там идут исходные данные ПОТОМУ-ЧТО Я ИХ САМ ТУДА ВЫВЕЛ в коде, емааа....
туда ничего не может подмешаться... что это за такое самоуправство вообще в моём коде?! ) объясни механизм подмешивания чего-угодно
Видимая область больше просматриваемой.
хорошо, это какие-то особенности отладчика.... может быть, не знаю про что именно ты говоришь но я сюда кидаю содержимое сформированного файла.... ты думаешь что туда может что-то подмешаться само по себе?
Стикер
Опередил на 3 секунды, я уже разобрался как правильно и хотел отписаться fs.Write(s[0], Length(s)); cs:=TCompStream.Create(clfastest, fs); cs.Write(s[0], Length(s)); cs.Free; fs.Write(s[0], Length(s)); cs:=TCompStream.Create(clfastest, fs); cs.Write(s[0], Length(s)); cs.Free;
Думал кто-то сразу увидит и надаёт по рукам... а что-то никто не ругался... пришлось самому допетривать
Обсуждают сегодня