Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 22.02.2017
Сообщений: 5

Процесс не может получить доступ к файлу

20.02.2019, 01:50. Показов 3220. Ответов 8

Студворк — интернет-сервис помощи студентам
Выдает ошибку "method_secant.pas(25) : Ошибка времени выполнения: Процесс не может получить доступ к файлу "C:\PABCWork.NET\лабы\лаба 2\log1.txt", так как этот файл используется другим процессом."

Программа из нескольких модулей, файл лежит в одной папке с программами, но не компилируется

главная программа
Pascal
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
uses func_as_param,division_by_2, method_newton, method_secant, method_iteration;
var
r,what_func,k:integer;
f:func;
x,xo,a,b,eps:real;
 
begin
writeln('1.  Очистить файл');
...
writeln('4.  метод секущих');
...
writeln('6.  Выход');
readln(r);
case r of 
1: begin rewrite(fout); close(fout); end;
 
...
 
4: begin
writeln('Введите границы отрезка (А и В): ');
readln(a,b);
writeln('точность: ');
readln(eps);
writeln('1/2 функция?');
readln(what_func);
if what_func=1 
then f:=f1
else f:=f2;
 
writeln(fout,'метод секущих');
secant(a,b,eps,f,x,k);
writeln(fout,'корень уравнения:',x);
writeln(fout,'кол-во итераций:',k);
end;
 
...
 
6:exit;
else
 writeln('Неверный пункт');
end;
end.
И модуль
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
unit method_secant;
interface
uses func_as_param;
var
fout:text;
procedure secant (a,b,eps:real; f:func; var x3:real; var k:integer);
 
implementation
procedure secant;
begin
...
end;
initialization
assign(fout,'log1.txt'); append(fout);
finalization
close(fout);
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.02.2019, 01:50
Ответы с готовыми решениями:

48 строка: Ошибка времени выполнения: Процесс не может получить доступ к файлу
program labka; var f:text; procedure rFile (f:text); var str:string; begin reset(f);

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

Процесс не может получить доступ к файлу, так как этот файл используется другим процессом
Все работает, кроме записи результатов в файл. В разделе описания с файла все норм считывается, а вот когда запускаю игру выводится такое...

8
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
20.02.2019, 02:05
Цитата Сообщение от mitsuk Посмотреть сообщение
но не компилируется
Если бы не компилировалось - не запустилось бы. А "ошибка времени выполнения" это именно во время выполнения.
И текст у ошибки всё вам объясняет. Закройте все текстовые редакторы и другие процессы которые могут не давать изменять файл.
0
0 / 0 / 0
Регистрация: 22.02.2017
Сообщений: 5
20.02.2019, 02:08  [ТС]
закрыто все, комп перезагружался, пробовал на другом компе, все тоже самое
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
20.02.2019, 12:22
Значит вы открыли файл на запись 2 файловыми переменными. Код вы не весь написали так что догадку лучше я вам не смогу дать.
0
0 / 0 / 0
Регистрация: 22.02.2017
Сообщений: 5
20.02.2019, 13:16  [ТС]
Sun Serega, Сейчас скину весь год
Основная программа
Pascal
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
81
82
83
84
85
86
87
88
89
90
uses func_as_param,division_by_2, method_newton, method_secant, method_iteration;
var
r,what_func,k:integer;
f:func;
x,xo,a,b,eps:real;
 
begin
writeln('1.  Очистить файл');
writeln('2.  Деление пополам');
writeln('3.  метод простых итераций');
writeln('4.  метод секущих');
writeln('5.  Деление пополам');
writeln('6.  Выход');
readln(r);
case r of 
1: begin  rewrite(fout); close(fout); end;
2: begin
writeln('Введите границы отрезка (А и В): ');
readln(a,b);
writeln('точность: ');
readln(eps);
writeln('1/2 функция?');
readln(what_func);
if what_func=1 
then f:=f1
else f:=f2;
 
writeln(fout,'деление пополам');
root(a,b,eps,f,x,k);
writeln(fout,'Корень уравнения: ',x);
writeln(fout,'Кол-во итераций: ',k);
end;
 
3: begin
writeln('Введите границы отрезка (А и В): ');
readln(a,b);
writeln('точность: ');
readln(eps);
writeln('1/2 функция?');
readln(what_func);
if what_func=1 
then f:=f1
else f:=f2;
 
writeln(fout,'метод простых итераций');
iteration(xo,f,eps,x,k);
writeln(fout,'корень уравнения:',x);
writeln(fout,'кол-во итераций:',k); 
end;
 
4: begin
writeln('Введите границы отрезка (А и В): ');
readln(a,b);
writeln('точность: ');
readln(eps);
writeln('1/2 функция?');
readln(what_func);
if what_func=1 
then f:=f1
else f:=f2;
 
writeln(fout,'метод секущих');
secant(a,b,eps,f,x,k);
writeln(fout,'корень уравнения:',x);
writeln(fout,'кол-во итераций:',k);
end;
 
5: begin
writeln('Введите границы отрезка (А и В): ');
readln(a,b);
writeln('точность: ');
readln(eps);
writeln('1/2 функция?');
readln(what_func);
if what_func=1 
then f:=f1
else f:=f2;
 
writeln(fout,'ньютон');
newton(a,b,eps,f,x,k);
writeln(fout,'корень уравнения:',x);
writeln(fout,'кол-во итераций:',k);  
writeln(fout,'_____________________________________________');
end;
 
6:exit;
else
 writeln('Неверный пункт');
end;
end.
Модуль
Pascal
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
unit method_secant;
interface
uses func_as_param;
var
fout:text;
procedure secant (a,b,eps:real; f:func; var x3:real; var k:integer);
 
implementation
procedure secant;
var
x1,x2:real;
begin
k:=0;
x1:=a;
x2:=b;
repeat
k:=k+1;
x3:=x2-(f(x2)*(x2-x1))/(f(x2)-f(x1));
x1:=x2;
x2:=x3;
until
abs(x1-x2)<eps;
end;
initialization
assign(fout,'log1.txt'); append(fout);
finalization
close(fout);
end.
Все остальные модули по структуре написаны аналогично
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
20.02.2019, 13:26
1. Нет, аналогичности не надо. Дайте всё, прикрепите в виде архива.
2. Что вводить чтоб воспоризвелась ошибка.
0
0 / 0 / 0
Регистрация: 22.02.2017
Сообщений: 5
20.02.2019, 13:29  [ТС]
Sun Serega, в том то и дело, что ничего не надо вводить. Когда нажимаю кнопку запустить, открывается модуль, который скинул, выделяется фраза строка "assign(fout,'log1.txt'); append(fout);" и ошибка времени выполнения
0
0 / 0 / 0
Регистрация: 22.02.2017
Сообщений: 5
20.02.2019, 13:33  [ТС]
Sun Serega, прога.zip

Архив с кодом
0
 Аватар для Sun Serega
2355 / 1458 / 526
Регистрация: 07.04.2017
Сообщений: 4,798
20.02.2019, 13:42
Ну я же и говорю, у вас эти строчки:
Pascal
1
assign(fout,'log1.txt'); append(fout);
Вызываются сразу из нескольких модулей. А значит несколько переменных сразу пытаются записывать общий файл, что делать нельзя.

Сделайте общий модуль с 1 переменной файла, и подключите этот модуль ко всему чтоб можно было вести логи из всех модулей.

А ещё лучше используйте это:
Pascal
1
2
3
4
5
begin
  System.IO.File.AppendAllText('Log1.txt', #10'test1');
  System.IO.File.AppendAllText('Log1.txt', #10'test2');
  System.IO.File.AppendAllText('Log1.txt', #10'test3');
end.
Ну или так:
Pascal
1
2
3
4
5
6
7
uses System.IO;
 
begin
  &File.AppendAllText('Log1.txt', #10'test1');
  &File.AppendAllText('Log1.txt', #10'test2');
  &File.AppendAllText('Log1.txt', #10'test3');
end.
Преимущества такого способа в том что файл Log1.txt сохраняет после каждого вызова этой процедуры. То есть если ваша программа вылетит - логи всё равно остануться в порядке.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.02.2019, 13:42
Помогаю со студенческими работами здесь

Ошибка при компиляции: Internal compiler error Процесс не может получить доступ к файлу Program1.exe
написал обычную программу program h; begin writeln('Hello, world'); end. далее скомпилировал и попытался запустить и ...

Программа не может получить доступ к файлу
При завершении программы PascalABC.Net она не выгружается (т.е. процесс написанной программы в диспетчере задач не исчезает) что делает...

Ошибка выполнения: процесс не может получить доступ к файлу
При некоторых значениях m и n возникает эта ошибка в следующем куске кода: IF p&gt;=0.5 THEN BEGIN ...

Не могу получить доступ к файлу Паскаль АБС НЕТ
const n=20; var a:array of integer; i, k, max:integer; begin k:=1; max:=1; for i:=1 to n do begin a:=random(20); ...

Процесс не может получить доступ к файлу
Помогите, пожалуйста! Процесс не может получить доступ к файлу! почему так? Как исправить? unit Unit1; interface uses ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
1С: Программный отбор элементов справочника Номенклатура по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника Сотрудники по значению перечисления
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),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru