![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 29.04.2008
Сообщений: 100
|
![]()
Не так давно решил дописать одну из рабочих программ по передаче файла. В итоге словил ошибку, что файл передается и принимается нормально, но пишется только в половину размера, причем винда уверенно кажет, что файл принят и записан байт в байт! Проблема обнаружилась в Delphi 2010, но почему-то не сразу. В итоге:
Код:
Дома тестил еще на 3-х машинах с аналогичной конфигурацией, везде одно и тоже. Докажите же мне, что это не чей-то злой умысел, а мои кривые руки! ![]() OS: Win 7 Ultimate |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
> выполняется с ошибкой. При просмотре в hex-редакторе, первые 2 байта - 00.
юникод?
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 29.04.2008
Сообщений: 100
|
![]()
хм... скорей всего, но точно не уверен
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
тогда ошибки нет )
и, кстати, FileOpen() — это функция, а не процедура.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 29.04.2008
Сообщений: 100
|
![]()
а как заставить этот код работать как положено? А то раньше в седьмой дельфе такой проблемы не видел, а когда в принудительном порядке поставили семерку, оказалось что под нее идет только десятая версия, а там этот юникод на каждом шагу
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
судя по тому, что у вас половина инфы пропадает, могу предположить, что данные вы храните в строке, а при записи указываете длину строку в символах (а не в байтах). начиная с 2009 дельфи тип string стал двухбайтовым. нужно хранить данные в AnsiString, а ваш пример может выглядеть так:
Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
Последний раз редактировалось veniside; 11.03.2011 в 00:48. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 29.04.2008
Сообщений: 100
|
![]()
хех, и правда заработало, спасибо, а то я уже всю голову сломал
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
правильно ставить для простых строк(string)
Код:
Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запись в файл | Jene4ka | Общие вопросы Delphi | 2 | 05.12.2010 21:31 |
Запись в файл (С) | ya chef | Помощь студентам | 0 | 15.12.2009 13:49 |
Запись в файл (C++) | Serant | Помощь студентам | 0 | 10.05.2009 09:49 |
Запись в файл | [Smarik] | Помощь студентам | 4 | 07.05.2008 23:26 |
запись в файл | Prisian | Общие вопросы Delphi | 6 | 24.07.2007 13:43 |