Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.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
Цитата Сергей85 @
Цикличная запись одинаковых данных.

Например, мы байты записываем в 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=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
[/CODE]

Автор: 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 сработало.

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)