Байты

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Stas
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 20.05.2003 (Вт) 20:10

Байты

Сообщение Stas » 02.09.2003 (Вт) 21:29

У меня такая проблема:
мне надо из файла *.* прочитать бит с десятичным адресом 34 (в HEX это 22) так чтобы в переменную read1 было занесено шеснадцатиричное значение этого бита, а потом значение string переменной write1 мне надо записать в этот бит. Помогите пожалуйста. Зарание спасибо :?:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.09.2003 (Ср) 5:46

Так бит или байт??? :?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

corgi
ToyMan
ToyMan
 
Сообщения: 1367
Зарегистрирован: 01.10.2002 (Вт) 9:59
Откуда: Россия, Москва

Сообщение corgi » 03.09.2003 (Ср) 5:49

шеснадцатиричное значение этого бита


сильно сказано бит это ведь 0 или 1
ps тебе просто нужно считать 5-ый байт и сделать так cint(mybyte/2) если значение четное то у тебя 0 если нечетное то 1
Ничто так не ограничивает полёт мысли программиста, как компилятор

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 03.09.2003 (Ср) 11:50

Код: Выделить всё
Option Explicit

Public Function test()
   
    Dim iFF As Long
    Dim read1 As Byte
    Dim write1 As String
   
    write1 = "q"
   
    iFF = FreeFile()
    Open "d:\1\test.txt" For Binary As #iFF
    Get #iFF, 34, read1
    Put #iFF, 34, write1
    Close #iFF
   
    Debug.Print Chr$(read1), Hex$(read1), read1
   
End Function

Stas
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 20.05.2003 (Вт) 20:10

Сообщение Stas » 03.09.2003 (Ср) 17:57

Это я не правильно написал не бит а байт.

Спасибо за код.

Но есть ещё проблема если я пишу после Get IFF,34,read1
MsgBox read1 то выдается пустота, хотя этот байт содержит код символа D. И ещё если я записую после всех Dim`ов write1 = 0F то функция put ничего не записывает.

OutSider
Начинающий
Начинающий
 
Сообщения: 12
Зарегистрирован: 27.06.2003 (Пт) 10:22
Откуда: Санкт-Петербург

Сообщение OutSider » 04.09.2003 (Чт) 13:13

Stas писал(а):если я записую после всех Dim`ов write1 = 0F то функция put ничего не записывает.


Если ты хочешь записать во write1 шестнадцатиричное значение 0F, то надо писать write1=&h0F&, а если строку - то write1="0F".

Stas
Новичок
Новичок
 
Сообщения: 25
Зарегистрирован: 20.05.2003 (Вт) 20:10

Сообщение Stas » 15.09.2003 (Пн) 9:40

Спасибо всем теперь всё работает.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

    TopList