Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > как открыть файл и получить его содержания в 0,1


Автор: dima_mak 28.11.2004, 13:02
Как открыть файл и получить его содержания в бинарной системе (только 0,1)? Если да, то как?

Автор: boevik 28.11.2004, 13:59
dima_mak, т.е. ты хочешь, чтоб каждый байт был бы 0 или 1?
Прочитай весь файл как обычно и раскладывай каждый байт на 0 и 1.

Автор: dima_mak 28.11.2004, 14:35
А примерчик не мог бы дать? smile

Автор: boevik 28.11.2004, 14:48
dima_mak, чеги именно примерчик?
Как прочитать файл или как перевести байт в двоичную систему?
Ищи на форуме, не раз обсуждалось, особенно первая тема.

Автор: dima_mak 28.11.2004, 14:53
как открыть файл + как перевести байт в двоичную систему в одном куске кода smile

З.Ы искал "двоичная система", ничего не нашел.

Автор: boevik 28.11.2004, 15:06
Отктыть файл:
Добавить к проекту reference Microsoft Scripting Runtime
Код

Dim File_Name As String
Dim oFSO As New FileSystemObject
Dim sFile As String

File_Name = "c:\temp\1.txt"
sFile = oFSO.OpenTextFile(File_Name).ReadAll


Перевод байта в двоичную систему, к примеру так
Код

Dim i As Integer
Dim s As String
Dim b As Byte

b = 121: s = ""
For i = 7 To 0 Step -1
   s = s & Int(b / (2 ^ i))
   b = b Mod (2 ^ i)
Next i


Скомбинируй нужный тебе код в один кусок

Автор: cardinal 28.11.2004, 17:32
Цитата(boevik @ 28.11.2004, 14:06)
Перевод байта в двоичную систему, к примеру так

Лучше думаю делать так:
Код

Private Function AscToBin(Xn As Byte, ByRef b() As Byte)
  b(0) = Xn And 1
  b(1) = Xn And 2
  b(2) = Xn And 4
  b(3) = Xn And 8
  b(4) = Xn And 16
  b(5) = Xn And 32
  b(6) = Xn And 64
  b(7) = Xn And 128
End Function

Так быстрее. А потом с b() проще работать (например чтобы строку получить).

Автор: dima_mak 28.11.2004, 23:12
Спасибо всем.

Автор: bankuss 29.11.2004, 08:18
чето вы тут нагородили товарищи! smile вот как юзать файл в двоичном доступе:
Open имя_файла For Binary [Access Доступ] [Блокировка] As [#] Handle

пример: Open "type.xxl" for binary as 1

Команды ввода и вывода: Get и Put

пример: Get #1, 5, vrb - считывает в переменную vrb 5-й байт
аналогично работает Put
Если данные считываются в строку, то количество считываемых байтов равно длинне строки. Т.е. можно считывать кусками по несколько байт.
и не надо придумывать велосипед smile

Автор: boevik 29.11.2004, 09:30
Насколько я понял, dima_mak, хочет получить представление файла в виде 0 и 1.
Хотя могу и ошибаться.

Автор: cardinal 29.11.2004, 16:41
Цитата(dima_mak @ 28.11.2004, 13:53)
как перевести байт в двоичную систему

bankuss, и где у тебя двоичная система?

Автор: bankuss 30.11.2004, 08:05
cardinal он спрашивал про бинарный доступ (как он выразился - в бинарной системе) и только потом добавил про двоичку

Автор: cardinal 30.11.2004, 15:34
Цитата(bankuss @ 30.11.2004, 07:05)
он спрашивал про бинарный доступ (как он выразился - в бинарной системе) и только потом добавил про двоичку

Да, но добавил он это до наших с boevik'ом сообщений, так что это
Цитата(bankuss @ 29.11.2004, 07:18)
чето вы тут нагородили товарищи!

неуместно. smile

Ладно, проехали...

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