powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Запись Type в бинарный файл
4 сообщений из 4, страница 1 из 1
Запись Type в бинарный файл
    #32483545
uglan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
У меня такая проблема:

'//есть переменная

Private Type P_tipe

item(16354) As String

end type

Dim Eat_This as P_tipe

'...

Dim stupid%

stupid% = freefile

Open App.Path & "\destR.bin" For Binary As stupid%
Dim T%

If len(eat_this.item(0)) > 0 Then

Put #stupid%, 1, List1.ListCount'// это в принципе можно и не писать - колличество item'ов...
'//----------------------------------

For T% = 0 To List1.ListCount - 1

'//далее я заполняю массив item, НО НЕ ВЕСЬ(16354)!!!

Eat_This.item(T%) = List1.List(T%)

Next T%

'//----------------------------------

Put #stupid%, , eat_this '//И когда я наконец записываю это в файл...

End If

Close stupid%
Reset

'...

Есть процедура чтения этого файла. Читается/Пишется все замечательно!

НО!!! В файл, как я понял, также записываются и пустые значения массива, т.е. те которые теоретически существуют, но оказались вне цикла заполнения данными(For T% = 0 to ...Next T%). Если открыть файл в блокноте или любом другом текстовом редакторе, то после моих записей можно обнаружить огромное кол-во пустого места. Просто пробелов! А это существенно сказываеться на размере файла.

Для сравнения:
Размер файла получаемого при выше показанной процедуре и 10(десятью) элементами массива равен 65 578 байт. А размер того же файла но с вручную удаленными пробелами равен всего 62 байта. И такой файл уже не читается как положено.

ВНИМАНИЕ Вопрос: Как же все-таки сделать так, чтобы в файл не записывались пустые значения массива?
...
Рейтинг: 0 / 0
Запись Type в бинарный файл
    #32483554
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А
Код: plaintext
Redim item(List1.ListCount -  1 )
?

Можно и потом
R
Код: plaintext
edim Preserve item(List1.ListCount -  1 ) ?


Т.е. держать массив ровно по количеству заполненных элементов.

Magnus
...
Рейтинг: 0 / 0
Запись Type в бинарный файл
    #32485097
uglan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VB наверно не даст... Обычно, в таких случаях, он говорит что на месте (List1.ListCount - 1) должна быть константа... Хотя попробую.
...
Рейтинг: 0 / 0
Запись Type в бинарный файл
    #32485172
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так попробуй для начала...

Magnus
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Запись Type в бинарный файл
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]