|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
Доброго всем дня! На данный момент у меня существует программка, которая формирует строку, затем сжимает ее с помощью библиотеки zlib функцией ZCompressStr и запихивает получившееся в двухмерный штрих-код. Другая программка соответственно при считывании кода, распаковывает сжатую строку и производит с ней дальнейшие действия. Теперь, ту первую программку я пытаюсь перевести в кросс-платформу для работы ее на линуксе, zlib от делфей воткнуть в лазарь у меня не получилось. В стандартной библиотеке zlib в лазаре нет функции ZCompressStr. Вот и получается, что я пока не знаю как мне подружить сжатие строки и дальнейшую распаковку ее zlib-ом делфей. Что можете подсказать по данному вопросу? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2021, 08:39 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
Я это использую. https://github.com/Nik-vr/lazarus-zlib/blob/master/ZLibEx.pas ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2021, 08:57 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
LuciferNovoros, пробежался по коду модуля. Вроде что-то похожее на правду. Мне главное, чтобы в линуксе она взлетела и потом распаковалась злибом в делфи программе. Будем пробовать. Спасибо. Отпишусь о результатах как попробую ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2021, 09:06 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
dartveider13 Что можете подсказать по данному вопросу? Код: 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. 51. 52. 53. 54. 55.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2021, 10:42 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2021, 12:34 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
Ух ты сколько вариантов. Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2021, 13:39 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
Kazantsev Alexey until Count <> Growth * SizeOf(WideChar);[/src] ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2021, 13:54 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
_Vasilisk_ Kazantsev Alexey until Count <> Growth * SizeOf(WideChar);[/src] Почему не первые 4 байта? TLV - тип, длина, значение. Вроде классика такого подобия передачи данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2021, 15:23 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
А полученные сжатием TBytes после сжатия как затолкать в объект ШК библиотеки LazBarCodes? В делфях я использовал длл-ку генерации символики ацтек ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2021, 15:42 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
_Vasilisk_ Kazantsev Alexey until Count <> Growth * SizeOf(WideChar);[/src] А как вообще выполняется распаковка, когда размер неизвестен? ...мне давеча потребовалось (с помощью C++) распаковать поток, сжатый дельфийским классом TCompressionStream. Но вот там (в С++) дельфийского класса TDeCompressionStream нет, и, как всегда - трясти нужно, а не думать... тупо выделял память сперва 2*размер сжатого, потом в цикле пытался распаковать в указанный буфер, если получал "мало памяти" - то увеличивал буфер, и в начало цикла. Оно как бы работает, но, мягко говоря, грязновато. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2021, 15:51 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
wadman Почему не первые 4 байта? wadman TLV - тип, длина, значение. Вроде классика такого подобия передачи данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2021, 16:40 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
_Vasilisk_ Потому что в этой классике длина - это длина текущих данных, а не данных, которые получаются после преобразования Важно знать, что контролировать при получении, а не после. После преобразования уже иные процессы идут. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2021, 16:43 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
ъъъъъ А как вообще выполняется распаковка, когда размер неизвестен? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2021, 16:47 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
ъъъъъ А как вообще выполняется распаковка, когда размер неизвестен? Последовательно, пока inflate не вернёт тебе Z_STREAM_END. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2021, 17:09 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
dartveider13 А полученные сжатием TBytes после сжатия как затолкать в объект ШК библиотеки LazBarCodes? Примерно так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.11.2021, 17:30 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
Kazantsev Alexey, попробовал на тестовом проекте. Вылетает пустая ошибка. ШК исчезает с радаров ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 07:37 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
гемор какой-то с этими lazbarcodes, сложно готовятся))) На делфе я использовал библиотеку aztecgen. Он в объект TImage рисовал код. Может есть что-то подобное? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 07:49 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
Или может быть вариант задействовать библиотеку lazbarcodes, но генерировать код не на компоненте а в картинке? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 08:12 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
Что мешает портировать ацтекген под лазаря? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 10:28 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal, исходник этой либы написан как я понимаю на плюсах, я в них не очень. Тут как я понимаю надо попробовать собрать его в линуксе? Что получится фиг знает. С инета я взял его и скомпиленой длл-кой ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 10:54 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
dartveider13 попробовал на тестовом проекте. Вылетает пустая ошибка. ШК исчезает с радаров Размер данных какой? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 11:22 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
Kazantsev Alexey, Попробовал на простом Hello world. Просто сделал тестовый проект. Сжатие и распаковка работают для строк на ура. С учетом того, что я перевожу их еще до сжатия в base64 тоже нормально работает. А вот когда пытаюсь в объект azteccode затолкать, то вываливает ошибку. Причем по дебагеру он проходит эту строку присваивания переменной строки без ошибок ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 11:29 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
Kazantsev Alexey dartveider13 А полученные сжатием TBytes после сжатия как затолкать в объект ШК библиотеки LazBarCodes? Примерно так: Код: pascal 1. 2.
после этой строки ошибка в модуле ubarcodes на строке 381 Версия lazbarcodes 1.0.4 если это о чем то говорит ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 11:32 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
dartveider13, Похоже, проблема появляется, когда в данных присутствует нулевой байт. Даже просто ШК.Text := #0; приводит к ошибке. Можно, либо попытаться исправить ошибку в LazBarCode, либо изменить формат кодирования данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 11:54 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
Kazantsev Alexey dartveider13, Похоже, проблема появляется, когда в данных присутствует нулевой байт. Даже просто ШК.Text := #0; приводит к ошибке. Я всегда поражался таким способностям так быстро понимать откуда проблема)))) Kazantsev Alexey dartveider13, Можно, либо попытаться исправить ошибку в LazBarCode Думаю с моими способностями, я вряд ли это осилю Kazantsev Alexey dartveider13, либо изменить формат кодирования данных. А здесь подразумевается замена UTF8String на что-то другое? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 12:18 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
dartveider13 А здесь подразумевается замена UTF8String на что-то другое? Нет, сжатые данные нужно представить в форме исключающей появление нулевых байтов. Например, base64 ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 12:25 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
Kazantsev Alexey, т е после сжатия еще раз закодировать строку в base64? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 12:44 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
Kazantsev Alexey, а вариант с подправить исходник очень сложнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 12:47 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
dartveider13 т е после сжатия еще раз закодировать строку в base64? Да. И если будет выбран этот вариант, то стоит сделать полную ревизию формата. Например, отказаться от кодирования строки в base64 перед сжатием. Отказаться от сжатия UnicodeString и сжимать байты. dartveider13 а вариант с подправить исходник очень сложнее? Это определённо сложнее изменения формата данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 13:10 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
Kazantsev Alexey, мда... Тут придется переделывать вторую часть, которая на винде на делфях... Но байты я вроде уже сжимал пробовал. Там создается два потока: поток с base64 и поток сжатия. И все это добро потом в ШК запихивается. Да уж с либой aztecgen было проще. Жаль что я ее под линукс не соберу, а длл-ки под линуксом не работают ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 13:22 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
dartveider13 Fr0sT-Brutal, исходник этой либы написан как я понимаю на плюсах, я в них не очень. Тут как я понимаю надо попробовать собрать его в линуксе? Что получится фиг знает. С инета я взял его и скомпиленой длл-кой Тогда да. Хотя всегда остается Wine ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 13:45 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal, любопытно, любопытно. Это ж что получается. Я могу попробовать через wine запустить уже работающую программу windows? Как же мало я еще знаю о линуксах))) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 14:08 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
dartveider13, Немного покопался в LazBarCodes и оказалось, что ноль во входных данных считается ошибкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 16:28 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
Покопался ещё немного, и оказалось, что автор zint (порт которой используется в LazBarCodes) признал, что это не правильно и исправил ошибку . Я пофиксил lbc_aztec.pas, можно пользоваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 16:44 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
dartveider13 Fr0sT-Brutal, любопытно, любопытно. Это ж что получается. Я могу попробовать через wine запустить уже работающую программу windows? Как же мало я еще знаю о линуксах))) Да, я запускал свои: гуй+файлы+сетевые операции+БД FB - заводилось ... |
|||
:
Нравится:
Не нравится:
|
|||
24.11.2021, 19:11 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
Kazantsev Alexey, Ваууу спасибо. Я обязательно попробую. Вам прям тыща спасибо так отвлечься на чужой вопрос ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 05:52 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal, этот вариант я тоже обязательно попробую. Интересно посмотреть. Так то моя програ на винде, которая сейчас у пользователей стоит не сложнее блокнота ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 05:54 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
Ну что ж. Под wine моя программа взлетела на ура. Будем использовать этот вариант пока что, но все таки я думаю допилю версию на лазаре. Отдельное спасибо Алексею за посильную помощь с разборками lazbarcodes ... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 08:23 |
|
Как подружить zlib от Deplhi с Lazarus
|
|||
---|---|---|---|
#18+
dartveider13, zlib под linux в виде so-ки спокойной ставится\качается ZLib.pp в стандартной поставке fpc описалка вот пример постепенной распаковки Код: 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. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.11.2021, 09:43 |
|
|
start [/forum/topic.php?all=1&fid=58&tid=2036843]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 150ms |
0 / 0 |