Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Visual Basic: Общие вопросы > Убрать лишний [NUL], дописываемый в конец файла. |
Автор: Сергей85 11.04.19, 17:00 |
Каждый раз в конце файла дописывается лишний байт. Надо убрать. _______________________________.GIF (, : 520) |
Автор: Akina 11.04.19, 18:36 |
А где собственно записывающий этот файл код? Не заниматься же фигнёй с усечением файла... |
Автор: Сергей85 11.04.19, 18:49 |
Код элементарный. Open as bynary с хендлом. Цикличная запись одинаковых данных. CloseFile. Результат - лишний NUL. |
Автор: Mikle 11.04.19, 19:14 |
Например, мы байты записываем в Integer переменную. |
Автор: Akina 12.04.19, 04:25 |
Цитата Сергей85 @ Код элементарный. Open as bynary с хендлом. Цикличная запись одинаковых данных. CloseFile. Результат - лишний NUL. Показывайте, показывайте, не жадничайте. Несущественные моменты можно, само собой, опустить. А вот описание переменных, открытие-чтение-запись-движение-закрытие оставьте. |
Автор: Сергей85 15.04.19, 18:31 |
Цитата Akina @ <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> [/CODE] [CODE=vba] 'Создание файла-исходника для многократного копирования в приемник. Handle = FreeFile Open App.Path & "\File.tmp" For Binary As #Handle For dTemp = 1 To Text_Size.Text - 1 'Этот [NUL] в конце зае... Put #Handle, dTemp, iValue Next dTemp Close #Handle |
Автор: Mikle 15.04.19, 18:36 |
Сергей85, какой тип у переменной iValue? |
Автор: Сергей85 15.04.19, 18:43 |
Int, конечно. |
Автор: Mikle 15.04.19, 19:22 |
Так я же выше написал: Цитата Например, мы байты записываем в Integer переменную Объяви iValue As Byte. |
Автор: MIF 16.04.19, 07:33 |
Int переменная занимает 2 баита. Иамени код: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> For dTemp = 1 To Text_Size.Text * 2 Step 2<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> Добавлено А последний NULL - второй байт последней записи. Попробуй записать с iValue > 255. |
Автор: Сергей85 16.04.19, 16:10 |
Byte сработало. |