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

Ошибка времени выполнения: "Файл не открыт"

27.04.2016, 00:05. Показов 2371. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание:
Кликните здесь для просмотра всего текста
Требуется распечатать исходный файл, а также все результирующие файлы. Составить программу по печати всех символов произвольного файла (не обязательно текстового). При этом не выводить на экран и принтер те символы, коды которых не относятся к печатным символам (коды меньше 31 и больше 254). Распечатывать по 80 символов в строке на экране и принтере.


Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Var F1:file of byte;
     b:byte;
     s:string;
Const Name1='C:\Desktop\LR9-1.txt'; // мой путь для файла
Begin
Assign (F1,Name1);
Reset(F1);
Writeln('Чтение данных из файла: ');
While not EOF(F1) do begin // останавливается всегда здесь
begin
      Read(f1, B); if (B > 31) and (B < 254) then
        begin
          S :=chr(B);
          if S.Length = 80 then //сам не понимаю что за выражение, но так подсказали(
            begin
              WriteLn(S); S := '';
            end;
        end;
    end;
  Close(f1); if S.Length > 0 then WriteLn(S);
end;
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.04.2016, 00:05
Ответы с готовыми решениями:

Ошибка времени выполнения: файл не открыт
Помогите, пожалуйста, программа выдает ошибку: Ошибка времени выполнения: файл не открыт Задание привожу ниже. Задание: Дан текстовый...

Ошибка времени выполнения: Файл не открыт
Ув. пользователи, помогите советом, как мне доделать программу? Написал, запустил и ошибка. program t1; var a,b,sum:real; s1,s2:...

Ошибка времени выполнения: Файл не открыт
Здравствуйте, помогите пожалуйста с чтением файла - ОШИБКА - 4Rab.pas(91) : Ошибка времени выполнения: Файл не открыт. изучала что пишут,...

8
 Аватар для Cyber_Monster_
148 / 129 / 155
Регистрация: 22.03.2016
Сообщений: 502
27.04.2016, 00:35
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

А файл точно создан?
Не увидел процедуры seek

Добавлено через 1 минуту
Pascal
1
2
procedure Seek(n: int64); 
        Устанавливает текущую позицию файлового указателя в двоичном файле на элемент с номером n
Для отладки попробуй:
Pascal
1
2
function FilePos: int64; 
        Возвращает текущую позицию файлового указателя в двоичном файле
Добавлено через 4 минуты
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
Const Name1='LR9-1.txt'; // мой путь для файла
Var F1:file of byte;
     b:byte;
     s:string;
 
Begin
Assign(F1,Name1);
Reset(F1);
Writeln('Чтение данных из файла: ');
While not Eof(F1) do
begin // останавливается всегда здесь
begin
      Read(f1, B); if (B > 31) and (B < 254) then
        begin
          S :=chr(B);
          if S.Length = 80 then //сам не понимаю что за выражение, но так подсказали(
            begin
              WriteLn(S); S := '';
            end;
        end;
    end;
 end;
  Close(f1); if S.Length > 0 then WriteLn(S);
 
end.
Закрытие файла было в цикле его обработки.
1
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 18
27.04.2016, 00:56  [ТС]
Блин, да, теперь ошибки нету, но программа не работает, выдает пустое поле и все. На вид кажется легкой и правильной, но почему не выводит то
0
 Аватар для Cyber_Monster_
148 / 129 / 155
Регистрация: 22.03.2016
Сообщений: 502
27.04.2016, 01:23
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
begin
  var f : File of Byte; Reset(f, 'LR9-1.txt'); 
  var S : String; var B : Byte;
  while Not EOF(f) do
    begin
      Read(f, B); if (B > 31) and (B < 254) then
        begin
          S += Chr(B);
          if S.Length = 80 then
            begin
              WriteLn(S); S := '';
            end;
        end;
    end;
  Close(f); if S.Length > 0 then WriteLn(S);
end.
только там что-то с кодировкой
1
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
27.04.2016, 02:47
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Cyber_Monster_, потерял #31 и #254!

мой вариант:
Pascal
1
2
3
4
5
6
7
8
9
10
var
  i:integer;
begin
  foreach c:byte in System.IO.File.ReadAllBytes('hh.exe') do 
   if c in [31..254] then begin
    write(chr(c));
    i+=1;
    if i mod 80=0 then writeln;
  end;
end.
1
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 18
27.04.2016, 11:55  [ТС]
Как-то выводит просто текст из файла (печатные символы + цифры)
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
27.04.2016, 13:10
Цитата Сообщение от Jon_ Посмотреть сообщение
Как-то выводит просто текст из файла (печатные символы + цифры)
вообще если текстовый файл - кодировка должна быть 1251. Пример в студию, что не так.
1
0 / 0 / 0
Регистрация: 24.11.2015
Сообщений: 18
04.05.2016, 00:10  [ТС]
Пытаюсь действовать вот так, но ничего не выходит
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Var F1:file of byte;
     b:byte;
     s:string;
       c:integer;
Const Name1='E:\LR9-1.txt'; // текст
Begin
Assign (F1,Name1);
Reset(F1);
Writeln('Чтение данных из файла: ');
While not EOF(F1) do begin
begin 
     if c in [31..254] then begin
    write(chr(c));
    c+=1;
    if c mod 80=0 then writeln;
end;
end;
end;
end.
Задание такое:
Кликните здесь для просмотра всего текста
Требуется распечатать исходный файл, а также все результирующие файлы. Составить программу по печати всех символов произвольного файла (не обязательно текстового). При этом не выводить на экран и принтер те символы, коды которых не относятся к печатным символам (коды меньше 31 и больше 254) (это пока вообще никак не получилось, с ребятами выше получилось просто вывести на кэран, но чтобы как в задании не идет(. Распечатывать по 80 символов в строке на экране и принтере.
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
04.05.2016, 07:34
Jon_, вы даже списать нормально не можете? Вот исправления:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Var F1:file of byte;
     b:byte;
     s:string;
       c:integer;
Const Name1='D:\LR9-1.txt'; // текст
Begin
Assign (F1,Name1);
Reset(F1);
Writeln('Чтение данных из файла: ');
While not EOF(F1) do begin
begin 
     READ(F1,b);
     if b in [31..254] then begin
    write(chr(b));
    c+=1;
    if c mod 80=0 then writeln;
end;
end;
end;
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.05.2016, 07:34
Помогаю со студенческими работами здесь

PABCSystem.pas(4774) : Ошибка времени выполнения: Файл не открыт на запись
Число, которое одинаково читается слева направо и наоборот, называется палиндромом, напр., 3773. Возьмем произвольное число N (от 10 до...

Ошибка времени выполнения: "Файл не открыт"
Помогите пожалуйста исправить ошибку,возможно не замечаю очевидного, пишет Ошибка времени выполнения: Файл не открыт Спасибо var ...

Ошибка времени выполнения: файл не найден
Где ошибка? путь к файлу проверял раз 20, ошибок в пути нет. uses graphabc,abcobjects; var xPlayer,yPlayer,speedPlayer:integer;...

Ошибка времени выполнения: Файл не открыт на запись
Помогите пожалуйста найти ошибку Ошибка времени выполнения: Файл не открыт на запись program vvv; type mas=array of integer; ...

Ошибка времени выполнения: Файл не найден
Ошибка времени выполнения: Файл 'G:\Проекты\Pascal\input.txt' не найден. Файл там есть, назван так же. Помогите program one; var...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru