Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
05.07.2021, 13:47
|
|||
---|---|---|---|
fopen - fread текстового файла |
|||
#18+
Все работало прекрасно, пока однажды не ребутнули linux, который видимо загрузился с новым ядром и некоторые скомпилированные файлы стали работать странно. Решил просто пересобрать глючные и тут выяснилось, что fopen с опцией "r" ("rt" ничего не меняет) + fread читают вроде как надо - бинарно, но оказывается раньше они читали по иному (как текст что ли). Суть - есть некая утилита под виндой кодирующая файл. Алгоритм и "пароль" дешифровки известен, декодирую под Дебианом, но почему то считывание одного и того же файла происходит по разному (коды символов ЧАСТИЧНО в считанной строке получаю разные) - под виндой строка, под линуксом чистые бинарные символы. Как правильно читать в "линуксах", чтобы получить аналогичное преобразование? Не соображу никак... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 13:52
|
|||
---|---|---|---|
|
|||
fopen - fread текстового файла |
|||
#18+
Работать не с символами, а с байтами. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 13:57
|
|||
---|---|---|---|
fopen - fread текстового файла |
|||
#18+
Dimitry Sibiryakov, да это понятно, виндовая утилита уже так сделана, мне нужно под нее подстроиться вот пример как читает "на винде" авторiDm9>' как на самом деле выглядит бинарник авторiDm ! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 13:58
|
|||
---|---|---|---|
fopen - fread текстового файла |
|||
#18+
wolverin Dimitry Sibiryakov, да это понятно, виндовая утилита уже так сделана, мне нужно под нее подстроиться вот пример как читает "на винде" авторiDm9>' как на самом деле выглядит бинарник авторiDm !& ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 13:59
|
|||
---|---|---|---|
fopen - fread текстового файла |
|||
#18+
т.е. вопрос как получить такую же как первая строка? например, должен быть символ в DEC 57, но по факту там бинарный DEC 32 где происходит преобразование не понимаю ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 14:19
|
|||
---|---|---|---|
|
|||
fopen - fread текстового файла |
|||
#18+
Для понимания увлекательный процесс существует. "Отладка" зовётся. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 14:25
|
|||
---|---|---|---|
fopen - fread текстового файла |
|||
#18+
Dimitry Sibiryakov, хорошо бы конечно отдалить, но от чужой утилиты у меня только кусок кода на дельфи, где происходит просто TFileStream.Read и там уже строка ДРУГАЯ, нежели в бинарнике наверное преобразование типов где то происходит, но где... и почему раньше работало, а после обновления этих линуксов перестало... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 14:29
|
|||
---|---|---|---|
|
|||
fopen - fread текстового файла |
|||
#18+
wolverinи там уже строка ДРУГАЯ Перестань выводить её как строку, выводи как массив байт в шестнадцатеричном виде. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 14:32
|
|||
---|---|---|---|
fopen - fread текстового файла |
|||
#18+
Dimitry Sibiryakov, мне дали этот кусок от дельфи, чтобы я на gcc декодировку сделал, так что я не могу не выводить строкой, так сделано там, т.е. от TFileStream.Read мне некуда бежать, а почему он получает другую строку, не понимаю ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 14:40
|
|||
---|---|---|---|
|
|||
fopen - fread текстового файла |
|||
#18+
TFileStream.Read читает двоичный буфер, не надо бредить. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 15:20
|
|||
---|---|---|---|
fopen - fread текстового файла |
|||
#18+
wolverin Все работало прекрасно, пока однажды не ребутнули linux, который видимо загрузился с новым ядром и некоторые скомпилированные файлы стали работать странно. Я думаю это практически нереально, если это не Астра Линукс. За такие фортели Торвальдс приступил бы к увольнениям всех причастных (даже косвенно причастных). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 16:18
|
|||
---|---|---|---|
fopen - fread текстового файла |
|||
#18+
petrav, может и не реально, однако просто пересобранный стал больше где то на 3% интереса ради скопировал на другой сервер - проблема та же ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 16:26
|
|||
---|---|---|---|
fopen - fread текстового файла |
|||
#18+
wolverin, https://en.cppreference.com/w/c/io/fopen File access mode flag "b" can optionally be specified to open a file in binary mode. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 16:37
|
|||
---|---|---|---|
fopen - fread текстового файла |
|||
#18+
Dimitry Sibiryakov TFileStream.Read читает двоичный буфер, не надо бредить. что то не получает он у меня двоичный, сделал просто Код: pascal 1. 2. 3.
и вуаля - часть символов в Buf отличается от бинарника ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 16:48
|
|||
---|---|---|---|
|
|||
fopen - fread текстового файла |
|||
#18+
Siemargl, флаг 'b' в POSIX (в т.ч. glibc) не имеет никакого эффекта и игнорируется ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 16:48
|
|||
---|---|---|---|
fopen - fread текстового файла |
|||
#18+
Siemargl, да это все понятно, не понятно почему вдруг после ребута дебиана работать перестало, опцию b я до этого не использовал, но и с ней ничего не меняется, т.е. раньше он должен был читать как текстовый файл по идеи, но разницы в fopen нет с каких ключом открыть. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 16:51
|
|||
---|---|---|---|
fopen - fread текстового файла |
|||
#18+
может дело в кодировке!? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 17:05
|
|||
---|---|---|---|
fopen - fread текстового файла |
|||
#18+
wolverin может дело в кодировке!? Buf: string; - юникодный же небось ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 17:16
|
|||
---|---|---|---|
|
|||
fopen - fread текстового файла |
|||
#18+
wolverinи вуаля - часть символов в Buf отличается от бинарника Повторяю медленно, специально для дельфинов: символы это не байты, смотреть надо на байты, байты нельзя складывать в string, на символы в строке смотреть бесполезно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 17:36
|
|||
---|---|---|---|
fopen - fread текстового файла |
|||
#18+
wolverin может дело в кодировке!? Возможно у него раньше были сайд-эффекты на кодировке 1251. После обновления - utf8. Почему раньше работало в комллексе - ХЗ. Возможно одиаковое (неправильное) поведения под Windows/Delphi и Debian компенсировали друг друга и никто ничего не замечал. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 17:42
|
|||
---|---|---|---|
fopen - fread текстового файла |
|||
#18+
Siemargl, гугл говорит в дельфи 7 ansi 1 байт, поэтому вроде как читаю в gcc как unsigned char ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 17:43
|
|||
---|---|---|---|
fopen - fread текстового файла |
|||
#18+
mayton, может вы и правы, а что за обновление utf8 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 17:44
|
|||
---|---|---|---|
fopen - fread текстового файла |
|||
#18+
Dimitry Sibiryakov, да hex то понятно везде одинаковый, мне то надо чтобы в сях получался такой же результат как в дельфах, не важно верный он там или нет ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 17:51
|
|||
---|---|---|---|
|
|||
fopen - fread текстового файла |
|||
#18+
wolverinмне то надо чтобы в сях получался такой же результат как в дельфах, не важно верный он там или нет Отлаживайся. Смотри чтобы на каждом шагу алгоритма байты в буфере получались одинаковые. БАЙТЫ, а не буквы. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
05.07.2021, 17:56
|
|||
---|---|---|---|
fopen - fread текстового файла |
|||
#18+
wolverin mayton, может вы и правы, а что за обновление utf8 ? Я не знаю. Моё предположение что у тебя в стеке технологий не только fopen/fread а еще и работа с STDIN/STDOUT, а они могут зависеть от локали. Посмотри что у тебя сейчас выдает в линуксе. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=57&tablet=1&tid=2017195]: |
0ms |
get settings: |
14ms |
get forum list: |
6ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
46ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
426ms |
get tp. blocked users: |
1ms |
others: | 310ms |
total: | 811ms |
0 / 0 |