Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 4
Регистрация: 13.04.2013
Сообщений: 65

Файлы произвольного доступа

08.05.2013, 17:08. Показов 1429. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При попытки записать данные в файл, получается вот такая вот ересь..Я так понимаю, что то с кодировкой?
Миниатюры
Файлы произвольного доступа   Файлы произвольного доступа  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.05.2013, 17:08
Ответы с готовыми решениями:

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

Файл произвольного доступа
Люди добрые помогите с таким вопросом: Пытаюсь открыть файл для произвольного доступа Open "с\:Date.dat" For Random As...

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

12
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
08.05.2013, 17:20
Вообще-то ересь размещать здесь картинки!
Проект, файл в студию - помогут справится с кодировкой
0
0 / 0 / 4
Регистрация: 13.04.2013
Сообщений: 65
08.05.2013, 18:08  [ТС]
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Public f As String
Private Type worker
code As String * 10
author As String * 10
named As String * 10
year As Integer
numberBookStand As Byte
numberBookShelf As Byte
End Type
 
 
Public Sub add()
Dim worker1 As worker
Dim m As Integer, putnomer As Byte
On Error GoTo Cancel
m = vbYes
Open f For Random As #1 Len = Len(worker1)
 Do While m = vbYes
       With worker1
        .code = InputBox("введите шифр", "шифр")
        .author = InputBox("введите автора", "автор")
        .named = InputBox("введите название ", "название")
        .year = InputBox("введите год издания", "год")
        .numberBookStand = InputBox("введите номер стеллажа", "номер стеллажа")
        .numberBookShelf = InputBox("введите номер полки", "номер полки")
       End With
       putnomer = putnomer + 1
       Put #1, putnomer, worker1
    m = MsgBox("Желаете добавить еще книгу?", vbQuestion + vbYesNo, "Продолжение")
 Loop
Close #1
Cancel:
If Err.Number = cdlCancel Then Exit Sub
End Sub
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
08.05.2013, 21:51
Вообще-то должно открываться с кодировкой по умолчанию, если Windows русский.
Учтите, что числа year, numberBookStand, numberBookShelf записываются в файл в двоичном виде, т.е. в текстовом редакторе они всегда будут кракозябрями.
0
0 / 0 / 4
Регистрация: 13.04.2013
Сообщений: 65
09.05.2013, 12:58  [ТС]
Цитата Сообщение от Казанский Посмотреть сообщение
Вообще-то должно открываться с кодировкой по умолчанию, если Windows русский.
Учтите, что числа year, numberBookStand, numberBookShelf записываются в файл в двоичном виде, т.е. в текстовом редакторе они всегда будут кракозябрями.
При попытки вызвать переменные с этими крокозябрами, пишет "type missmatch". Какой наилучший выход? Заменить их стринговыми ? пробовал в dat файле, там еще хуже
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
09.05.2013, 14:03
Без всякой переделки попробовал ваш код.
Вам нужно чт бы в файле было красиво или что бы программа работала?
Попробуйте сразу считать что записали
Миниатюры
Файлы произвольного доступа  
0
0 / 0 / 4
Регистрация: 13.04.2013
Сообщений: 65
10.05.2013, 11:32  [ТС]
Цитата Сообщение от Alex77755 Посмотреть сообщение
Без всякой переделки попробовал ваш код.
Вам нужно чт бы в файле было красиво или что бы программа работала?
Попробуйте сразу считать что записали
Я же говорю, пишет "type missmatch" когда интежер считывает, со стринговыми все хорошо. И еще сразу вопрос, записывать блоки переменных в файл он всегда будет в одну строку? Или можно, как то сделать перенос на новую строку, на подобие последовательного доступа?
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
10.05.2013, 12:39
Цитата Сообщение от Lucky721 Посмотреть сообщение
пишет "type missmatch" когда интежер считывает
Как Вы считываете Integer?
В чем вообще цель - использовать файл как базу данных и работать с ней методами VB, или сформировать текстовый файл для чтения человеком или другой программой?
В первом случае надо, как в вашем коде, открывать файл как Random, записывать с помощью Put, считывать с помощью Get.
Во втором случае надо открывать файл как Output/Input/Append и работать с ним с помощью Print/Write/Input.
0
0 / 0 / 4
Регистрация: 13.04.2013
Сообщений: 65
10.05.2013, 12:49  [ТС]
Цитата Сообщение от Казанский Посмотреть сообщение
Как Вы считываете Integer?
В чем вообще цель - использовать файл как базу данных и работать с ней методами VB, или сформировать текстовый файл для чтения человеком или другой программой?
В первом случае надо, как в вашем коде, открывать файл как Random, записывать с помощью Put, считывать с помощью Get.
Во втором случае надо открывать файл как Output/Input/Append и работать с ним с помощью Print/Write/Input.
С помощью put, get и тд. Нужно создать текст файл и с помощью вб считывать его.
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
11.05.2013, 07:44
На картинке видны результаты до и после считывания.
Никаких кракозябр. Все типы считаны правильно
0
0 / 0 / 4
Регистрация: 13.04.2013
Сообщений: 65
11.05.2013, 12:13  [ТС]
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public Sub view()
Dim alltext As String, putnomer As Byte
Open f For Random As #1
  With worker1
    alltext = ""
    Do While Not EOF(1)
        putnomer = putnomer + 1
        Get #1, putnomer, worker1
              alltext = alltext + .code + .author + .named + .year + .numberBookStand + .numberBookShelf + vbNewLine
    Loop
  End With
    frmView.TxtView = alltext
Close #1
End Sub
При попытки вывести на экран, про нестринговые переменные пишет "type missmatch". Со стринговыми все было хорошо, может я туплю, но не могу понять, что не верно.
0
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
11.05.2013, 23:21
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Вместо + используй &
0
0 / 0 / 4
Регистрация: 13.04.2013
Сообщений: 65
12.05.2013, 00:34  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Вместо + используй &
Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.05.2013, 00:34
Помогаю со студенческими работами здесь

Поиск в файле произвольного доступа
Приветствую всех! Имеется файл basa_videocard.bvd (расширение произвольное, файл легко открывается блокнотом) В этом файле...

Удаление строки из файла произвольного доступа
Как удалить строку из файла произвольного доступа если извесен индекс строки?

Размер файла произвольного доступа.в чем подвох?
Public f As String, alltext As String Public Type worker code As String * 10 author As String * 10 named As String * 10 year As...

Файл произвольного доступа: пустая запись в конце?
Пытаюсь освоить чтение и запись в файл произвольного доступа (random). Получается, что после чтения последней записи считывается еще...

Режим для произвольного доступа к файлу - это?
Режим для произвольного доступа к файлу - это?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru