С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 16.10.2013
Сообщений: 17

Ошибка: File already open (VB 6)

25.05.2014, 12:15. Показов 2158. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте форумчане! Есть лабораторная университетская, задание таково: добавить в файл имя возраст пол человека и вывести мужчин с именем на букву "а".
Есть родительская форма. Есть форма добавления(записи в файл) нового человека. Форма просмотра(выводит все записи из файла в окно), а также форма обработки(тоже самое что и просмотр только выводит мужчин на букву "а").

Все работает, НО! Когда я жму добавить новую запись, добавляю, а после открываю форму просмотр и обработка, то после запись добавить не получается, ошибка: File already open. Однако, если я сначала открываю формы "просмотр" и "обработка" и после добавляю то все нормально.

Выкладываю код каждой формы, архив с проектом в конце сообщения.

Родительская форма:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Option Explicit
Private Sub MDIForm_Load()
frmДобавление.Hide
frmПросмотр.Hide
frmОбработка.Hide
End Sub
Private Sub mnuFormНовый_файл_Click()
frmДобавление.Width = 6390
frmДобавление.Height = 3840
n = FreeFile
CommonDialog1.Filter = "Текстовый файл|*.txt|Microsoft office Word|*.doc|"
CommonDialog1.FilterIndex = 1
CommonDialog1.FileName = "Новый файл"
CommonDialog1.ShowOpen
v = CommonDialog1.FileName
frmДобавление.Caption = "Новый файл"
frmДобавление.Show
Close #n
Open v For Output As #n
End Sub
Private Sub mnuFormДобавление_Click()
frmДобавление.Width = 6390
frmДобавление.Height = 3840
n = FreeFile
CommonDialog1.Filter = "Текстовый файл|*.txt|Microsoft office Word|*.doc|"
CommonDialog1.FilterIndex = 1
CommonDialog1.FileName = "Новый файл"
CommonDialog1.ShowOpen
v = CommonDialog1.FileName
frmДобавление.Caption = "Добавление - " & v
Close #n
Open v For Append As #n
If v = "" Then frmОбработка.Hide
frmДобавление.Show
End Sub
Private Sub mnuFormПросмотр_Click()
n = FreeFile
CommonDialog1.Filter = "Текстовый файл|*.txt|Microsoft office Word|*.doc|"
CommonDialog1.FilterIndex = 1
CommonDialog1.ShowOpen
v = CommonDialog1.FileName
frmПросмотр.Caption = "Просмотр - " & v
frmПросмотр.Show
Close #n
Open v For Input As #n
If v = "" Then frmПросмотр.Hide
End Sub
Private Sub mnuFormОбработка_Click()
n = FreeFile
CommonDialog1.Filter = "Текстовый файл|*.txt|Microsoft office Word|*.doc|"
CommonDialog1.FilterIndex = 1
CommonDialog1.ShowOpen
v = CommonDialog1.FileName
frmОбработка.Caption = "Обработка - " & v
frmОбработка.Show
Close #n
Open v For Input As #n
If v = "" Then frmОбработка.Hide
End Sub
Private Sub mnuFormExit_Click()
End
End Sub
Private Sub mnuWindowCascade_Click()
mnuWindowCascade.Checked = True
mnuWindowVertical.Checked = False
mnuWindowHorisont.Checked = False
frmMdi.Arrange 0
End Sub
Private Sub mnuWindowHorisont_Click()
mnuWindowHorisont.Checked = True
mnuWindowCascade.Checked = False
mnuWindowVertical.Checked = False
frmMdi.Arrange 1
End Sub
Private Sub mnuWindowVertical_Click()
mnuWindowVertical.Checked = True
mnuWindowCascade.Checked = False
mnuWindowHorisont.Checked = False
frmMdi.Arrange 2
End Sub
Форма Добавление:
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
Option Explicit
Private Sub frmДобавление_load()
txtИмя.SetFocus
End Sub
Private Sub cmdВыход_Click()
frmДобавление.Hide
End Sub
Private Sub cmdЗапись_Click()
Dim имя As String, год As String, пол As String, f As Integer
txtИмя.SetFocus
имя = txtИмя.Text
год = txtГод.Text
пол = txtПол.Text
Write #n, имя, год, пол
txtИмя.Text = ""
txtГод.Text = ""
txtПол.Text = ""
f = MsgBox("Продолжить запись ?", vbQuestion + vbYesNo, "Список")
If f = vbNo Then
  frmДобавление.Hide
  Close #n
  frmПросмотр.cmdПросмотр_Click
  frmОбработка.Command1_Click
Else
  txtИмя.SetFocus
End If
 
End Sub
Форма обработки:
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
Option Explicit
Option Compare Text
Public Sub Command1_Click()
Dim t As String, a As String, f As String, h As String, g As String, k As Integer, m As Integer, l As String
Close #n
Open v For Input As #n
Do While Not EOF(n)
    Input #n, t
    Input #n, f
    Input #n, h
    a = Date
    k = Val(Right(a, 4))
    m = Val(f)
    If Left(h, 1) = "м" And Left(t, 1) = "А" Then
     k = k - m
     If k >= 0 Then
      g = g & "Имя: " & t & vbNewLine & "Возраст: " & k & vbNewLine & vbNewLine
     Else
      g = g & "Имя: " & t & vbNewLine & "Еще не родился" & vbNewLine & vbNewLine
     End If
    End If
Loop
Close #n
Text1.Text = g
End Sub
 
 
Private Sub Form_Load()
q = True
End Sub
 
Private Sub Form_Unload(Cancel As Integer)
q = False
End Sub
Форма просмотр:
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
Option Explicit
Public Sub cmdПросмотр_Click()
Dim i As Integer, f As String, h As String, b As String, k As String
h = ""
Close #n
Open v For Input As #n
Do While Not EOF(n)
    Input #n, f
    Input #n, b
    Input #n, k
    h = h & "Имя: " & f & vbNewLine & "Год рождения: " & b & vbNewLine & "Пол: " & k & vbNewLine
    h = h & vbNewLine
Loop
Text1.Text = h
Close #n
End Sub
 
Private Sub Form_Load()
p = True
End Sub
 
Private Sub Form_Unload(Cancel As Integer)
p = False
End Sub
Некоторые логические переменные в модуль вынес:
Visual Basic
1
2
3
4
Public v As String
Public n As Integer
Public p As Boolean
Public q As Boolean
Вложения
Тип файла: zip Лабораторная.zip (7.9 Кб, 8 просмотров)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.05.2014, 12:15
Ответы с готовыми решениями:

Ошибка fatal error C1083: Cannot open include file: ***: No such file or directory
Помогите пожалуйста исправить ошибку. При компиляции возникает вот такая беда. подробности в скриншотах. даже если переносишь все файлы в...

Ошибка fatal error C1083: Cannot open include file: 'd3d8.h': No such file or directory
Всем добрый вечер! У меня возникает ошибки при компиляции файла. Подробности в скриншотах. ...

Вылетает ошибка! Warning: file_get_contents(main.tpl) [function.file-get-contents]: failed to open stream: No such file or directory in /home/u6958797
В чем может быть проблема <?php require_once "config_class.php"; require_once "article_class.php"; require_once...

1
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
25.05.2014, 12:28
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Потому что ты неправильно закрываешь файл. Ты закрываешь неоткрытый файл. Везде где у тебя есть
Visual Basic
1
n = FreeFile
перенеси после строки
Visual Basic
1
Close #n
в соответствующих процедурах.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.05.2014, 12:28
Помогаю со студенческими работами здесь

Ошибка при "сборке" Cannot open include file: 'stdafx.h': No such file or directory
Я полный ноль в C++=( Вот код:#include "stdafx.h" #include <stdio.h> #include <windows.h> #define MAXINJECTSIZE 4096 ...

Maya APi, ошибка "Cannot open include file. No such file or directory"
Помогите плз кто знает искал не нашол решения. f:\project\test\basicswshader1\basicswshader.h(20) : fatal error C1083: Cannot open...

Ошибка File not open
procedure TForm1.MenuItem7Click(Sender: TObject); //Работа А (Выбор по маске) var n:integer; ni:integer; gr:string; ...

Ошибка Unable to open file
Добрый день. Недавно начал изучать С++. Мне интересна библиотека SFML. Так вот при создании текстура не отображается и в консоли...

Ошибка: file already open (VBA)
Доброго времени суток многоуважаемые форумчане! Я конечно понимаю уже существуют похожие темы, вроде написан код правильно и команду ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru