Помогите разобраться с GET/PUT

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
claymen
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 159
Зарегистрирован: 14.04.2006 (Пт) 16:07
Откуда: КЫРГЫЗСТАН г.Бишкек

Помогите разобраться с GET/PUT

Сообщение claymen » 15.07.2008 (Вт) 23:23

Вот пробую создать файл с контактной информацией, но не получается. Может поможите разобраться:
Код: Выделить всё
Type userInfo
    uFamilia As String
    uName As String
    uOtch As String
    uPhone As Single
    uAdres As String
End Type

Private Sub cmdAdd_Click()
    Open "C:\base.dat" For Binary As #1
    Dim addData As userInfo
    'Создаю первую запись
    addData.abFamilia = "Фамилия #1"
    addData.abName = "Имя #1"
    addData.abOtch = "Отчество #1"
    addData.abPhone = 1111111
    addData.abAdres = "Адрес #1"
    'Добавляю в файл первую запись
    Put #1, 1, addData

    'Создаю втрорую запись
    addData.abFamilia = "Фамилия #2"
    addData.abName = "Имя #2"
    addData.abOtch = "Отчество #2"
    addData.abPhone = 2222222
    addData.abAdres = "Адрес #2"
    'Добавляю в файл вторвую запись
    PUT #1, 2, addData

    'Закрываю файл
    Close
End Sub

Private Sub cmdShow_Click()
    Open "C:\base.dat" For Binary As #1
    Dim readData As userInfo
    'Открываю первую запись
    GET #1, 1, readData
    'Вывожу в форму содержимое первой записи
    Me.Print "Фамилия 1 - "+ readData.abFamilia
    Me.Print "Имя 1 - "+ readData.abName
    Me.Print "Отчество 1 - "+ readData.abOtch
    Me.Print "Телефон 1 - "+ readData.abPhone
    Me.Print "Адрес 1 - "+ readData.abAdres
    Me.Print ""

    'Открываю вторую запись
    GET #1, 2, readData
    'Вывожу в форму содержимое второй записи
    Me.Print "Фамилия 2 - "+ readData.abFamilia
    Me.Print "Имя 2 - "+ readData.abName
    Me.Print "Отчество 2 - "+ readData.abOtch
    Me.Print "Телефон 2 - "+ readData.abPhone
    Me.Print "Адрес 2 - "+ readData.abAdres
    Me.Print ""
End Sub

Почему, при нажатии на cmdShow в форму не выводится последовательно обе записи, а в файл сохраняется только вторая запись.
Помогите разобраться пож.
и начинали мы все чайниками, но потом...

ACiD
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 261
Зарегистрирован: 10.12.2005 (Сб) 2:29
Откуда: г. Санкт - Петербург

Сообщение ACiD » 16.07.2008 (Ср) 0:29

Файл считывается и записывается неправильно, вот: VB - работа с файлами 2

DODge
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 126
Зарегистрирован: 30.07.2006 (Вс) 0:25
Откуда: Нижний Новгород

Сообщение DODge » 16.07.2008 (Ср) 1:40

Легко! В данном коде просто убери вторые значения в операторах PUT/GET, типа так:
Код: Выделить всё
Put #1, , addData
'...
Get #1, , readData
CPU = Intel Core i5 6500 @ 3.2 GHz
VGA = GeForce GTX 650Ti 2Gb
RAM = 8 ГБ DDR4 @ 2133 MHz
OS = Windows 10 Pro 64-bit
IDE = Microsoft Visual Studio Community 2017 (Visual Basic.NET)
GAPI = SharpDX 9 + 12

Zenitchik
Постоялец
Постоялец
 
Сообщения: 369
Зарегистрирован: 21.12.2006 (Чт) 14:48

Сообщение Zenitchik » 17.07.2008 (Чт) 13:30

А какой резон юзатьбинарный файл, если считываешь все равно последовательно?
Знание английского языка - затрудняет понимание кода

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 17.07.2008 (Чт) 14:06

Zenitchik писал(а):А какой резон юзатьбинарный файл, если считываешь все равно последовательно?
И какая связь между бинарным файлом и последовательным доступом?
Весь мир матрица, а мы в нем потоки байтов!

Zenitchik
Постоялец
Постоялец
 
Сообщения: 369
Зарегистрирован: 21.12.2006 (Чт) 14:48

Сообщение Zenitchik » 17.07.2008 (Чт) 14:34

Никакой. Мне просто интересно, чем в этом случае бинарный доступ к файлу предпочтительнее последовательного?
Знание английского языка - затрудняет понимание кода

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 17.07.2008 (Чт) 14:43

Zenitchik писал(а):Никакой. Мне просто интересно, чем в этом случае бинарный доступ к файлу предпочтительнее последовательного?
А что бинарный доступ не может быть последовательным? Или наоборот?
Весь мир матрица, а мы в нем потоки байтов!

Zenitchik
Постоялец
Постоялец
 
Сообщения: 369
Зарегистрирован: 21.12.2006 (Чт) 14:48

Сообщение Zenitchik » 17.07.2008 (Чт) 14:47

Не делайте вид, что не понимаете о чем я говорю.
Я имею ввиду стандартыне типы доступа к файлу в Basic:
For Binary и For Input + For Output
Знание английского языка - затрудняет понимание кода

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Сообщение Денис » 18.07.2008 (Пт) 10:29

Zenitchik
Ах так For Input + For Output это последовательный доступ! А я думал, текстовый... :lol:
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Zenitchik
Постоялец
Постоялец
 
Сообщения: 369
Зарегистрирован: 21.12.2006 (Чт) 14:48

Сообщение Zenitchik » 19.07.2008 (Сб) 11:00

Каюсь, ошибся с термином.
И тем не менее, ответить на вопрос кто-нибудь может?
Знание английского языка - затрудняет понимание кода

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 20.07.2008 (Вс) 13:34

Создай одну переменную юзерского типа, содержащую всю нужную тебе информацию (в том числе и массив другой переменной юзерского типа с контактными данными. И сохраняй все это дело за один раз командой PUT в бинарный файл. Восстанавливается так же. То есть все значительно проще чем ты думаешь.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


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

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

Сейчас этот форум просматривают: Google-бот и гости: 58

    TopList