Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
claymen
-
- Продвинутый пользователь

-

-
- Сообщения: 159
- Зарегистрирован: 14.04.2006 (Пт) 16:07
- Откуда: КЫРГЫЗСТАН г.Бишкек
-
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

-

-
- Сообщения: 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

-

-
- Сообщения: 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 наук

-

-
- Сообщения: 2734
- Зарегистрирован: 07.11.2006 (Вт) 13:55
- Откуда: Ейск, Краснодарский край
-
Денис » 18.07.2008 (Пт) 10:29
Zenitchik
Ах так For Input + For Output это последовательный доступ! А я думал, текстовый...

Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.
-
Zenitchik
-
- Постоялец

-
-
- Сообщения: 369
- Зарегистрирован: 21.12.2006 (Чт) 14:48
Zenitchik » 19.07.2008 (Сб) 11:00
Каюсь, ошибся с термином.
И тем не менее, ответить на вопрос кто-нибудь может?
Знание английского языка - затрудняет понимание кода
-
Andrey Fedorov
-
- Член-корреспондент академии VBStreets

-
-
- Сообщения: 3287
- Зарегистрирован: 21.05.2004 (Пт) 9:28
- Откуда: Москва
Andrey Fedorov » 20.07.2008 (Вс) 13:34
Создай одну переменную юзерского типа, содержащую всю нужную тебе информацию (в том числе и массив другой переменной юзерского типа с контактными данными. И сохраняй все это дело за один раз командой PUT в бинарный файл. Восстанавливается так же. То есть все значительно проще чем ты думаешь.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: AhrefsBot, Google-бот, PetalBot, SemrushBot и гости: 7