Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Open & Save As Binary Добавлено: 28.02.04 08:16  

Автор вопроса:  night-roll
  Ни разу не пользовался этим Binary для сохранения, но теперь появилась потребность сохранить изменения моей проги в файле двоичного формата. Если по-честному, то любое сохранение файла в зашифрованном виде тоже подойдет, только чтоб читать потом без проблем. Благодарю за просмотр этого вопроса. Очень жду ответов!  

Ответить

  Ответы Всего ответов: 9  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 28.02.04 08:47

А в чем вопрос-то состоит? :)

Открытие файла и считывание с него побайтно выглядит так:

f=freefile

open"file" for binary as f

for i=1 to lof(f)

s=input(f,1)

next

close

Ответить

Номер ответа: 2
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #2 Добавлено: 28.02.04 08:57

Для Binary более трезво изспользовать Put и Get

Ответить

Номер ответа: 3
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #3
Добавлено: 28.02.04 09:14

Трезвее всего использовать CreateFile, ReadFile, CloseHandle. Хорошо бы прочести бенчмарк...

А теперь хочу поздравить себя с 1000-м постом! И с тем, что сегодня у меня появится новый винт на 40ГБ - теперь я смогу заниматься почти всем, что меня интересует, не заботясь о свободном месте! И окинув орлиным взором кучу тупого флуда, который я оставил на этом форуме, жестокие баталии во флейме, которые велись со сторонниками .NET и Delphi, хочу спросить: "Хоть кому-то я помог?" :)

Ответить

Номер ответа: 4
Автор ответа:
 night-roll



Вопросов: 36
Ответов: 326
 Профиль | | #4 Добавлено: 28.02.04 09:14

рад, что ответил, продолжаю вопрос. То, что ты указал - это подходит для всех типов переменных или нет?

допустим необходимо сначала записать, а потом считать значения переменных строкового и целого типа?

и вообще можно поподробнее об этом Binary, каким образом происходит сохранение? я пробовал, но все время разная фигня получается при просмотре! 

Ответить

Номер ответа: 5
Автор ответа:
 night-roll



Вопросов: 36
Ответов: 326
 Профиль | | #5 Добавлено: 28.02.04 09:17
 мои поздравления Sharp 

Ответить

Номер ответа: 6
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #6
Добавлено: 28.02.04 10:18

Вот так выглядит запись в файл:

Public Sub WriteToFile(sFileName As String, sFileData As String)
Dim nf As Integer: nf = FreeFile

 

If Not Len(Dir$(sFileName)) = &H0 Then Call DeleteFile(sFileName)

 

Open sFileName For Binary Access Write As nf
Put nf, 1, sFileData
Close
End Sub


Вот такчтение из него:

Public Function ReadFromFile(lpFilename As String) As String
Dim nf As Integer: nf = FreeFile

 

Open lpFilename For Binary Access Read As nf
ReadFromFile = String$(LOF(nf), &H0)
Get nf, 1, ReadFromFile
Close nf
End Function


2Sharp Может у меня Opera глючит, но у тебя на данный момент 928 постов... В любом случае поздравляю! :)

Ответить

Номер ответа: 7
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #7
Добавлено: 28.02.04 11:47

> То, что ты указал - это подходит для всех типов переменных или нет?

> допустим необходимо сначала записать, а потом считать значения переменных строкового и целого типа?

Тип доступа Binary позволяет записывать в файл байты, а не числа. Т.е. либо переводишь числа в строки, либо используешь следующий прием: создаешь массив, где у тебя хранятся записываемые численные значения, например Dim a(100) As Double, а потом используешь CreateFile и WriteFile с параметрами a(0) и LenB(a(0))*101. Для считывания применяешь ту же технику. Полагаю, это самый быстрый способ сохранения-восстановления данных: маппинг массива.

> 2Sharp Может у меня Opera глючит, но у тебя на данный момент 928 постов... В любом случае поздравляю! :)

Да, она кеширует страницы исключительно странно. Рекомендую использовать вместо нее Avant Browser - IE-based броузер, исключительно удобный, содержит все преимущества Оперы и ни одного ее недостатка. Только вот рекламу он блокирует через раз, наверно, потому, что я еего автору не пожертвовал 15 баксов. Сама программа - freeware (тоже плюс). Пожалуй, 3 вещи мне не нравятся в IE - ресурсоемкость, тупое строение кэша, сохранение страниц с перезагрузкой, но в Опере их намного больше.

Ответить

Номер ответа: 8
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #8
Добавлено: 28.02.04 12:25
Sharp, рано празднуешь: юбилей будет на 1024-ом посте :)

Ответить

Номер ответа: 9
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #9
Добавлено: 28.02.04 14:58

Ну, дык, это что, юбилей что ли был? :) Еще предвидятся в ближайшее время юбилеи - 1024 поста, 1000 ответов, 1024 ответа - вот это будут юбилеи! :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам