Форум программистов, компьютерный форум, киберфорум
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. Показов 2194. Ответов 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
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Программный отбор значения справочника
Maks 21.03.2026
Процедура ВодителиНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) / / Отключаем стандартную обработку (стандартное открытие формы выбора без фильтров) . . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru