![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
согласен. Закрыть файл нужно обязательно!
Цитата:
2) Если просто так будут проблемы, тогда можно попробовать воткнуть задержку небольшую: Код:
сразу после записи открывать файл на чтение в эксклюзивном (ShareNone) режиме.. крутить открытие в цикле, пока не пройдёт заданное (большое число времени - выходить с ошибкой по таймауту), либо пока файл не открылся. Если удачно открылся. Тогда закрывать и запускать на выполнение. p.s. всё это мои домыслы... Для приближения к Истине надо пробовать разные варианты + погуглить.. возможно, что и без всех этих извращений всё будет тип-топ! |
|
![]() |
![]() |
![]() |
#12 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
если файл закрыт, то есть программные буферы(то есть, то что организовано ЯП/программистом) сброшены в файл, то все будет нормально.
ибо ОС знает что у нее есть не записанные данные по файлу, она их(данные из дискового буфера/файлового кэша) и будет читать(хотя насколько я помню, старается всетаки записать как можно скорее). Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#13 |
Пользователь
Регистрация: 23.06.2008
Сообщений: 55
|
![]()
Целое исследование
![]() Код:
Последний раз редактировалось Unconnected; 11.07.2011 в 11:48. |
![]() |
![]() |
![]() |
#14 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
что-то Вы, похоже, делаете не так
![]() для начала попробуйте посмотреть, сколько в строке символов: Код:
p.s. проверил, как строчка пишется, если в ней непечатные символы. Как и следовало ожидать - всё работает абсолютно корректно. Код:
Так что - ищите ошибку в том месте, где Вы получаете Вашу бинарную строку. Может при получении/передаче что-то похабится?!.. Последний раз редактировалось Serge_Bliznykov; 11.07.2011 в 13:16. |
![]() |
![]() |
![]() |
#15 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
1)снифер мог не отобразить все символы, лучше всего такие бинарные строки записывать в код через #.
2)у вас АНСИ строки то? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#16 |
Пользователь
Регистрация: 23.06.2008
Сообщений: 55
|
![]()
Приём кривоватый, но вроде всё верно делает.
Код:
Последний раз редактировалось Unconnected; 11.07.2011 в 16:05. |
![]() |
![]() |
![]() |
#18 |
Пользователь
Регистрация: 23.06.2008
Сообщений: 55
|
![]()
Предлагаете Base64-энкодить файл на сервере, а на принимающей стороне обратно? Да, так решится проблема с нечитаемыми символами..
|
![]() |
![]() |
![]() |
#19 |
Пользователь
Регистрация: 23.06.2008
Сообщений: 55
|
![]()
Оказывается, строка в моей проге в 2 раза короче, чем мозилла выдаёт.. Может, KOLовый компонент непечатаемые символы не жуёт. Нужно повтыкать везде AnsiString? Я имею в виду, внутренние функции работы компонента.. типа этой:
Код:
Последний раз редактировалось Unconnected; 12.07.2011 в 01:39. |
![]() |
![]() |
![]() |
#20 |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
![]()
несколько последних постов прочитать поленился...
у меня философские мысли по этому поводу. а что вообще такое бинарник? ну что-то типа 0101101100011101, да? к чему я это все говорю? есть бит: 0-1 значений, есть байт: 8 бит - 0-255, т.е. 256 значений - 2 в степени 8. насколько я понимаю, ЛЮБОЙ файл состоит из символов, печатаемых-непечатаемых - не важно. символ есть символ, 0-255. и если вы получаете строку, строку чего вы получаете? символов. строка есть строка, не важно что в ней записано и какими из 256 символами, строка - это последовательность символов, а коли так, то ее можно сохранить в файл элементарным Writeln(file,str); более того, если не верите мне, проведите сами такой эксперимент: Код:
получится копия исходного ехе, полностью работоспособная, ___________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! Модератор. проверено. Последний раз редактировалось Serge_Bliznykov; 12.07.2011 в 08:57. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запись в бинарник и access violation reading location | Farrel | Общие вопросы C/C++ | 2 | 23.03.2011 20:13 |
компиляция в чистый бинарник | Hell Knight | Общие вопросы C/C++ | 5 | 23.03.2011 19:50 |
файловый поток. Открыть\создать бинарник | Darth.Vader | Общие вопросы C/C++ | 16 | 29.12.2009 22:04 |
txt в бинарник и обратно | cowboy | Общие вопросы Delphi | 9 | 16.09.2009 10:54 |
Как выяснить каким образом обрабатывается бинарник | yarilo | Помощь студентам | 1 | 22.04.2009 09:57 |