Создать файл стребуемыми данными и считывать их так, как над

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

Создать файл стребуемыми данными и считывать их так, как над

Сообщение Yuri_S » 06.05.2004 (Чт) 17:38

Привет всем. Вот такая штука у меня, по ней два вопроса.
Программка-простой тест. В файлах (их много) хранятся вопросы, которые выводятся на экран с помощью

CommonDialog1.FileName = ("D:\VB98\saves\Notebook rec on string #N\1")
Open CommonDialog1.FileName For Input As #1
Do Until EOF(1)
Input #1, INP
If i = 1 Then
Text1.Text = INP
i = 2
ElseIf i = 2 Then
Option1.Caption = INP
i = 3
ElseIf i = 3 Then
Option2.Caption = INP
i = 4
ElseIf i = 4 Then
Option3.Caption = INP
i = 5
ElseIf i = 5 Then
Corect = INP
i = 4
End If
Loop
Close #1

(Структура файла с вопросом -
Вопрос
Ответ1
Ответ2
Ответ3
Ответ2(правильный, он пишеться последним)

Ну и Option'ом выбираем ответ и т.д. Как видите, алгоритм не веселый, так как для каждого нового вопроса я загружаю новый(заранее созданый) файл с этим вопросом. БД создавать не хочу, но ведь можно же все вопросы каким-то макаром поместить в один файл? И если возможно- элементарный пример для считывания такого файла....
Вопрос два - как по другому можно организовать файл - вопрос? Тоесть моя структура - это нормально? Или можно проще?

A.A.Z.
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3035
Зарегистрирован: 30.06.2003 (Пн) 13:38

Сообщение A.A.Z. » 06.05.2004 (Чт) 21:15

Попробуй сделать структуру файла по-другому:
_________________________________________
File.txt
-----
<Здесь стоит вопрос>
1)Ответ1
2)Ответ2
3.Ответ3 (ответ правильный)
4)Ответ4

<Здесь стоит вопрос>
1)Ответ1
2.Ответ2 (ответ правильный)
3)Ответ3
4)Ответ4

и т.п.
__________________________________________

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

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 06.05.2004 (Чт) 23:06

Ну а так
quest - это Option

Код: Выделить всё
Public ok As Integer

Private Sub Command1_Click()
If quest(ok).Value = True Then
MsgBox "Правильно!!!"
Else
MsgBox "Nooooo!"
End If
End Sub

Private Sub Form_Load()
Open "test.txt" For Input As 1
Line Input #1, q
Label1.Caption = q
Line Input #1, q
quest(1).Caption = q
Line Input #1, q
quest(2).Caption = q
Line Input #1, q
quest(3).Caption = q
Line Input #1, q
quest(4).Caption = q
Line Input #1, q
ok = q
Close
End Sub


только все равно придется в каждом файле писать только один вопрос и ответы на него
структура файла:

Код: Выделить всё
вопрос
ответ1
ответ2
ответ3
ответ4
номер правильного ответа

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 07.05.2004 (Пт) 9:55

А если вопросы представить в виде записей? Например
Type Quest
Vopros as string * 250
Otvet1 as string * 250
Otvet2 as string * 250
Otvet3 as string * 250
PravOtvet as string * 250
End Type

Таким образом можно хранить все вопросы с ответами в одном файле.
При запуске программы считать все записи из файла в массив и работать уже с этими записями. А ответы при выводе вопроса перемешивать через RND (чтобы правильный ответ не был всегда последним).

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 07.05.2004 (Пт) 12:12

Продолжаю тему A.A.Z :)
Можно поставить индетефикаторы строк и обрабатывать их:
#Вопрос1
%Ответ1
%Ответ2
@Ответ3 правильно

#Вопрос2
@Ответ1 правильно
%Ответ2
%Ответ3

соответсвенно:
# - вопрос
% - ответ
@ - правильный ответ

Или работай с INI файлами :)

GoGosha
Постоялец
Постоялец
 
Сообщения: 642
Зарегистрирован: 02.08.2002 (Пт) 9:14
Откуда: Russia

Сообщение GoGosha » 07.05.2004 (Пт) 12:36

Вот самая простая реализация
Лучше, конечно, было бы сделать так:
Long:длинна вопросаString:ВопросLong:Длинна первого ответаString:первый ответ...
Вложения
Police.rar
(1.4 Кб) Скачиваний: 50
http://poetry.mooo.com
http://poetry.myboard.info
«Человек есть нечто, что до́лжно превзойти» (Ф. Ницше)

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 07.05.2004 (Пт) 13:51

Вобще над этой задачей можно извращаться сколько угодно, как файл построишь....... :D

Yuri_S
Обычный пользователь
Обычный пользователь
 
Сообщения: 97
Зарегистрирован: 17.07.2003 (Чт) 20:12
Откуда: Kiev,Ukraine

Сообщение Yuri_S » 07.05.2004 (Пт) 21:52

Да, вариантов действительно много. Спасибо всем за идеи....


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

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

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

    TopList