Ошибка времени выполнения bad typed file size

24.05.2016, 11:28. Показов 3601. Ответов 0


Студворк — интернет-сервис помощи студентам

23 421 12 421 12 124 43 65 765 532 432 вот дан в файле надо вывести на экран

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
Var f:file of integer;
    n,i:integer;
    
Begin
    Assign(f,'C:PABCWork.NETinput.txt');Reset(f); 
    for i:=1 to filesize(f) do
    begin
    read(f,n);
    writeln(n);
    end;
    close(f);  
end.

вылетает ошибка распечаткафайла.pas(6) : Ошибка времени выполнения: Bad typed file size
через eof все получается, но я хотел через filesize
и можете оббъяснить в каких случаях лучше использовать file of integer(string) и text

Добавлено через 5 часов 50 минут

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Var f:text;
    t,n,i:integer;
    a:array [1..1000] of integer;
Begin
    Assign(f,'C:PABCWork.NETinput.txt');Reset(f); 
    t:=0;
    while not eof(f) do 
    begin
      read(f,n);
      t:=t+1;
    end;
    {close(f);
    Assign(f,'C:PABCWork.NETinput.txt');Reset(f);}
    for i:=1 to t do
    begin   
      read(f,n);
      a[i]:=n;
    end;
   for i:=1 to t do write (a[i],' ');
    writeln(t);
    close(f);  
end.

Добавлено через 1 час 7 минут

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Var f,g:text;
    t,n,i,min,max,sum,sr:integer;
    a:array [1..1000] of char;
Begin
    Assign(f,'C:PABCWork.NETinput.txt');Reset(f); 
    t:=0;
    while not eof(f) do 
    begin
      read(f,n);
      t:=t+1;
    end;
    close(f);
    Assign(f,'C:PABCWork.NETinput.txt');Reset(f);
    Assign(g,'C:PABCWork.NEToutput.txt');Rewrite(g);
    for i:=1 to t do
    begin   
      read(f,n);
      a[i]:=n;
    end;
    
    close(f);  
    close(g);
end.

вот 1 задачу сделал
1.во входном файле находится последовательность из целых чисел, разделенных пробельными символами. если в последовательности содержится более 2 разлчных значений, то вывести через пробел в выходной файл три числа: наиб, наим, целую часть среднего значение среди чисел, не равных наиб и наим значениям входного файла, иначе вывести 0
2. во входном файле находится последовательность из слов, разделенных пробельными символами. вывести в выходный файл последовательно через пробел порядковые номера всех слов, содержащих трех букв, причем все буквы в слове должны быть различны. если таких слов не окажется вывести ‘no’
PS ща записывал условия задач, в первой задаче немного не так понял условие и ответ чуть не тот, ну это исправить не долго
ВОПРОС
1. я правльно в файл наиб наим и среднее через пробел или как то по другому делается? а то если просто записываю, они как бы все слипаются
2. подкиньте идейки ко второму заданию)
3. как сделать чтобы не переоткрывать файл ф 2 раза. если 1 раз открываю и пытаюсь второй раз считать ошибку выдвет



0



Icon Ex Номер ошибки: Ошибка во время выполнения 52
Название ошибки: Bad file name or number
Описание ошибки: An error occurred trying to access the specified file.
Разработчик: Microsoft Corporation
Программное обеспечение: Windows Operating System
Относится к: Windows XP, Vista, 7, 8, 10, 11

Описание «Bad file name or number»

Эксперты обычно называют «Bad file name or number» «ошибкой времени выполнения». Программисты работают через различные уровни отладки, пытаясь убедиться, что Windows Operating System как можно ближе к безошибочным. Хотя эти превентивные действия принимаются, иногда ошибки, такие как ошибка 52, будут пропущены.

В выпуске последней версии Windows Operating System может возникнуть ошибка, которая гласит: «An error occurred trying to access the specified file.». Если возникает ошибка 52, разработчикам будет сообщено об этой проблеме через уведомления об ошибках, которые встроены в Windows Operating System. Затем Microsoft Corporation может исправить эти ошибки в исходном коде и подготовить обновление для загрузки. Таким образом при выполнении обновления программного обеспечения Windows Operating System, он будет содержать исправление для устранения проблем, таких как ошибка 52.

Что генерирует ошибку времени выполнения 52?

В большинстве случаев вы увидите «Bad file name or number» во время загрузки Windows Operating System. Это три основных триггера для ошибок во время выполнения, таких как ошибка 52:

Ошибка 52 Crash — она называется «Ошибка 52», когда программа неожиданно завершает работу во время работы (во время выполнения). Это возникает, когда Windows Operating System не реагирует на ввод должным образом или не знает, какой вывод требуется взамен.

Утечка памяти «Bad file name or number» — Когда Windows Operating System обнаруживает утечку памяти, операционная система постепенно работает медленно, поскольку она истощает системные ресурсы. Критическими проблемами, связанными с этим, могут быть отсутствие девыделения памяти или подключение к плохому коду, такому как бесконечные циклы.

Ошибка 52 Logic Error — Логическая ошибка вызывает неправильный вывод, даже если пользователь дал действительные входные данные. Неисправный исходный код Microsoft Corporation может привести к этим проблемам с обработкой ввода.

Повреждение, отсутствие или удаление файлов Bad file name or number может привести к ошибкам Windows Operating System. Как правило, самый лучший и простой способ устранения ошибок, связанных с файлами Microsoft Corporation, является замена файлов. Кроме того, регулярная очистка и оптимизация реестра Windows предотвратит создание неправильных ссылок на пути к файлам Microsoft Corporation, поэтому мы настоятельно рекомендуем регулярно выполнять сканирование реестра.

Типичные ошибки Bad file name or number

Частичный список ошибок Bad file name or number Windows Operating System:

  • «Ошибка программы Bad file name or number. «
  • «Недопустимый файл Bad file name or number. «
  • «Извините, Bad file name or number столкнулся с проблемой. «
  • «Bad file name or number не может быть найден. «
  • «Отсутствует файл Bad file name or number.»
  • «Ошибка запуска в приложении: Bad file name or number. «
  • «Файл Bad file name or number не запущен.»
  • «Bad file name or number выйти. «
  • «Ошибка пути программного обеспечения: Bad file name or number. «

Проблемы Windows Operating System Bad file name or number возникают при установке, во время работы программного обеспечения, связанного с Bad file name or number, во время завершения работы или запуска или менее вероятно во время обновления операционной системы. Отслеживание того, когда и где возникает ошибка Bad file name or number, является важной информацией при устранении проблемы.

Источники проблем Bad file name or number

Проблемы Windows Operating System и Bad file name or number возникают из отсутствующих или поврежденных файлов, недействительных записей реестра Windows и вредоносных инфекций.

Точнее, ошибки Bad file name or number, созданные из:

  • Недопустимые разделы реестра Bad file name or number/повреждены.
  • Вирус или вредоносное ПО, повреждающее Bad file name or number.
  • Другая программа (не связанная с Windows Operating System) удалила Bad file name or number злонамеренно или по ошибке.
  • Другая программа находится в конфликте с Windows Operating System и его общими файлами ссылок.
  • Windows Operating System (Bad file name or number) поврежден во время загрузки или установки.

Продукт Solvusoft

Загрузка
WinThruster 2022 — Проверьте свой компьютер на наличие ошибок.

Совместима с Windows 2000, XP, Vista, 7, 8, 10 и 11

Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление

В этой статье представлена ошибка с номером Ошибка 52, известная как Неверное имя или номер файла, описанная как Произошла ошибка при попытке доступа к указанному файлу.

О программе Runtime Ошибка 52

Время выполнения Ошибка 52 происходит, когда Windows дает сбой или падает во время запуска, отсюда и название. Это не обязательно означает, что код был каким-то образом поврежден, просто он не сработал во время выполнения. Такая ошибка появляется на экране в виде раздражающего уведомления, если ее не устранить. Вот симптомы, причины и способы устранения проблемы.

Определения (Бета)

Здесь мы приводим некоторые определения слов, содержащихся в вашей ошибке, в попытке помочь вам понять вашу проблему. Эта работа продолжается, поэтому иногда мы можем неправильно определить слово, так что не стесняйтесь пропустить этот раздел!

  • Access — НЕ ИСПОЛЬЗУЙТЕ этот тег для Microsoft Access, используйте вместо него [ms-access]
  • File — блок произвольная информация или ресурс для хранения информации, доступный по строковому имени или пути.
  • Access — Microsoft Access, также известный как Microsoft Office Access, представляет собой систему управления базами данных от Microsoft, которая обычно сочетает в себе реляционное ядро ​​СУБД Microsoft JetACE с графическим пользовательским интерфейсом и инструментами разработки программного обеспечения.
  • Число . Число — это математический объект, используемый для подсчета, измерения и маркировки < / li>
Симптомы Ошибка 52 — Неверное имя или номер файла

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

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

Fix Неверное имя или номер файла (Error Ошибка 52)
(Только для примера)

Причины Неверное имя или номер файла — Ошибка 52

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

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

Методы исправления

Ошибки времени выполнения могут быть раздражающими и постоянными, но это не совсем безнадежно, существует возможность ремонта. Вот способы сделать это.

Если метод ремонта вам подошел, пожалуйста, нажмите кнопку upvote слева от ответа, это позволит другим пользователям узнать, какой метод ремонта на данный момент работает лучше всего.

Обратите внимание: ни ErrorVault.com, ни его авторы не несут ответственности за результаты действий, предпринятых при использовании любого из методов ремонта, перечисленных на этой странице — вы выполняете эти шаги на свой страх и риск.

Метод 3 — Обновите программу защиты от вирусов или загрузите и установите последнюю версию Центра обновления Windows.

Заражение вирусом, вызывающее ошибку выполнения на вашем компьютере, необходимо немедленно предотвратить, поместить в карантин или удалить. Убедитесь, что вы обновили свою антивирусную программу и выполнили тщательное сканирование компьютера или запустите Центр обновления Windows, чтобы получить последние определения вирусов и исправить их.

Метод 2 — Обновите / переустановите конфликтующие программы

Использование панели управления

  • В Windows 7 нажмите кнопку «Пуск», затем нажмите «Панель управления», затем «Удалить программу».
  • В Windows 8 нажмите кнопку «Пуск», затем прокрутите вниз и нажмите «Дополнительные настройки», затем нажмите «Панель управления»> «Удалить программу».
  • Для Windows 10 просто введите «Панель управления» в поле поиска и щелкните результат, затем нажмите «Удалить программу».
  • В разделе «Программы и компоненты» щелкните проблемную программу и нажмите «Обновить» или «Удалить».
  • Если вы выбрали обновление, вам просто нужно будет следовать подсказке, чтобы завершить процесс, однако, если вы выбрали «Удалить», вы будете следовать подсказке, чтобы удалить, а затем повторно загрузить или использовать установочный диск приложения для переустановки. программа.

Использование других методов

  • В Windows 7 список всех установленных программ можно найти, нажав кнопку «Пуск» и наведя указатель мыши на список, отображаемый на вкладке. Вы можете увидеть в этом списке утилиту для удаления программы. Вы можете продолжить и удалить с помощью утилит, доступных на этой вкладке.
  • В Windows 10 вы можете нажать «Пуск», затем «Настройка», а затем — «Приложения».
  • Прокрутите вниз, чтобы увидеть список приложений и функций, установленных на вашем компьютере.
  • Щелкните программу, которая вызывает ошибку времени выполнения, затем вы можете удалить ее или щелкнуть Дополнительные параметры, чтобы сбросить приложение.

Метод 4 — Переустановите библиотеки времени выполнения

Вы можете получить сообщение об ошибке из-за обновления, такого как пакет MS Visual C ++, который может быть установлен неправильно или полностью. Что вы можете сделать, так это удалить текущий пакет и установить новую копию.

  • Удалите пакет, выбрав «Программы и компоненты», найдите и выделите распространяемый пакет Microsoft Visual C ++.
  • Нажмите «Удалить» в верхней части списка и, когда это будет сделано, перезагрузите компьютер.
  • Загрузите последний распространяемый пакет от Microsoft и установите его.

Метод 5 — Запустить очистку диска

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

  • Вам следует подумать о резервном копировании файлов и освобождении места на жестком диске.
  • Вы также можете очистить кеш и перезагрузить компьютер.
  • Вы также можете запустить очистку диска, открыть окно проводника и щелкнуть правой кнопкой мыши по основному каталогу (обычно это C :)
  • Щелкните «Свойства», а затем — «Очистка диска».

Метод 1 — Закройте конфликтующие программы

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

  • Откройте диспетчер задач, одновременно нажав Ctrl-Alt-Del. Это позволит вам увидеть список запущенных в данный момент программ.
  • Перейдите на вкладку «Процессы» и остановите программы одну за другой, выделив каждую программу и нажав кнопку «Завершить процесс».
  • Вам нужно будет следить за тем, будет ли сообщение об ошибке появляться каждый раз при остановке процесса.
  • Как только вы определите, какая программа вызывает ошибку, вы можете перейти к следующему этапу устранения неполадок, переустановив приложение.

Метод 6 — Переустановите графический драйвер

Если ошибка связана с плохим графическим драйвером, вы можете сделать следующее:

  • Откройте диспетчер устройств и найдите драйвер видеокарты.
  • Щелкните правой кнопкой мыши драйвер видеокарты, затем нажмите «Удалить», затем перезагрузите компьютер.

Метод 7 — Ошибка выполнения, связанная с IE

Если полученная ошибка связана с Internet Explorer, вы можете сделать следующее:

  1. Сбросьте настройки браузера.
    • В Windows 7 вы можете нажать «Пуск», перейти в «Панель управления» и нажать «Свойства обозревателя» слева. Затем вы можете перейти на вкладку «Дополнительно» и нажать кнопку «Сброс».
    • Для Windows 8 и 10 вы можете нажать «Поиск» и ввести «Свойства обозревателя», затем перейти на вкладку «Дополнительно» и нажать «Сброс».
  2. Отключить отладку скриптов и уведомления об ошибках.
    • В том же окне «Свойства обозревателя» можно перейти на вкладку «Дополнительно» и найти пункт «Отключить отладку сценария».
    • Установите флажок в переключателе.
    • Одновременно снимите флажок «Отображать уведомление о каждой ошибке сценария», затем нажмите «Применить» и «ОК», затем перезагрузите компьютер.

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

Другие языки:

How to fix Error 52 (Bad file name or number) — An error occurred trying to access the specified file.
Wie beheben Fehler 52 (Ungültiger Dateiname oder Nummer) — Beim Versuch, auf die angegebene Datei zuzugreifen, ist ein Fehler aufgetreten.
Come fissare Errore 52 (Nome file o numero errato) — Si è verificato un errore durante il tentativo di accedere al file specificato.
Hoe maak je Fout 52 (Foute bestandsnaam of fout nummer) — Er is een fout opgetreden bij het openen van het opgegeven bestand.
Comment réparer Erreur 52 (Nom ou numéro de fichier incorrect) — Une erreur s’est produite lors de la tentative d’accès au fichier spécifié.
어떻게 고치는 지 오류 52 (잘못된 파일 이름 또는 번호) — 지정된 파일에 액세스하는 동안 오류가 발생했습니다.
Como corrigir o Erro 52 (Nome ou número de arquivo inválido) — Ocorreu um erro ao tentar acessar o arquivo especificado.
Hur man åtgärdar Fel 52 (Felaktigt filnamn eller nummer) — Ett fel uppstod vid försök att komma åt den angivna filen.
Jak naprawić Błąd 52 (Zła nazwa pliku lub numer) — Wystąpił błąd podczas próby uzyskania dostępu do określonego pliku.
Cómo arreglar Error 52 (Número o nombre de documento incorrecto) — Se produjo un error al intentar acceder al archivo especificado.

The Author Об авторе: Фил Харт является участником сообщества Microsoft с 2010 года. С текущим количеством баллов более 100 000 он внес более 3000 ответов на форумах Microsoft Support и создал почти 200 новых справочных статей в Technet Wiki.

Следуйте за нами: Facebook Youtube Twitter

Последнее обновление:

07/12/22 10:19 : Пользователь Windows 10 проголосовал за то, что метод восстановления 3 работает для него.

Рекомендуемый инструмент для ремонта:

Этот инструмент восстановления может устранить такие распространенные проблемы компьютера, как синие экраны, сбои и замораживание, отсутствующие DLL-файлы, а также устранить повреждения от вредоносных программ/вирусов и многое другое путем замены поврежденных и отсутствующих системных файлов.

ШАГ 1:

Нажмите здесь, чтобы скачать и установите средство восстановления Windows.

ШАГ 2:

Нажмите на Start Scan и позвольте ему проанализировать ваше устройство.

ШАГ 3:

Нажмите на Repair All, чтобы устранить все обнаруженные проблемы.

СКАЧАТЬ СЕЙЧАС

Совместимость

Требования

1 Ghz CPU, 512 MB RAM, 40 GB HDD
Эта загрузка предлагает неограниченное бесплатное сканирование ПК с Windows. Полное восстановление системы начинается от $19,95.

ID статьи: ACX02930RU

Применяется к: Windows 10, Windows 8.1, Windows 7, Windows Vista, Windows XP, Windows 2000

Приложения написанные на Free Pascal могут генерировать ошибку времени выполнения (Run Time Error) когда в программе обнаруживаются определённые аварийные состояния . Этот документ содержит список возможных ошибок и описание их возможных причин.


1 Invalid function number (Неправильный номер функции)

Была попытка неправильного вызова системной функции.


2 File not found (Файл не найден)

Генерируется при попытке перенаименования, стирания или открытия несуществующего файла.


3 Path not found (Путь(директория) не найден)

Генерируется файловой системой когда путь не существует или неправелен.
Также генерируется при попытке получить доступ к несуществующему файлу.


4 Too many open files (Слишком много файлов открыто)

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


5 File access denied (В доступе к файлу — отказано)

Было запрешено получение доступа к файлу. Эта ошибка может произойти по нескольким причинам:

  • При попытке открыть файл, предназначенный только для чтения или в деиствительности являющиёся директорией, для записи.

  • В данный момент занят или заблокирован другим процессом.

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

  • При попытке чтения из файла, открытого только для записи.

  • При попытке записи в файл, открытый только для чтения.

  • При попытке удалить директорию или файл, когда это не возможно.

  • При неимении прав на доступ к данному файлу.


6 Invalid file handle (Неправильный хэндл файла)

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


12 Invalid file access code (Неправильные ключи доступа к файлу)

Генерируется когда процедуры reset или rewrite вызываются с неправильным параметром FileMode.


15 Invalid drive number (Неправильный номер диска)

Генерируется когда в функции Getdir или ChDir был передан неправильный номер диска.


16 Cannot remove current directory (Невозможно удалить текущую директорию)

Генерируется при попытке удалить текущую директорию.


17 Cannot rename across drives (Можно переименовывать файлы только в пределах одного диска)

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


100 Disk read error (Ошибка чтения с диска)

Генерируется при невозможности произвести чтение с диска. Обычно происходит при попытке чтения данных, после его окончания.


101 Disk write error (Ошибка записи на диск)

Генерируется когда Вы пытаетесь записать данные на переполненый диск.


102 File not assigned (Файл не определён)

Генерируется функциями Reset, Rewrite, Append, Rename и Erase, При передаче в них файловой переменной, для которой не была выполнена функция AssignFile.


103 File not open (Файл не открыт)

Генерируется следующими функциями : Close, Read, Write, Seek, EOf, FilePos, FileSize, Flush, BlockRead, и BlockWrite если файл не был открыт.


104 File not open for input (Файл не открыт для чтения)

Генерируется функциями Read, BlockRead, Eof, Eoln, SeekEof и SeekEoln если файл не был открыт при помощи Reset.


105 File not open for output (Файл не открыт для записи)

Генерируется функцией write если текстовый файл не был открыт при помощи Rewrite.


106 Invalid numeric format(Неправильный числовой формат)

Генерируется когда ожидалось числовое значение, но из текстого файла было прочитано не было.


150 Disk is write-protected (Диск защищён от записи)

(Критическая ошибка)


151 Bad drive request struct length (Неправильная длина структуры запроса)

(Критическая ошибка)


152 Drive not ready (Устройство не готово)

(Критическая ошибка)


154 CRC error in data (Ошибка контрольной суммы в данных)

(Критическая ошибка)


156 Disk seek error (Ошибка низкоуровнего поиска на диске)

(Критическая ошибка)


157 Unknown media type (Неизвестный тип …)

(Критическая ошибка)


158 Sector Not Found (Сектор не найден)

(Критическая ошибка)


159 Printer out of paper (Нет бумаги в принтере)

(Критическая ошибка)


160 Device write fault (Сбой записи устройства)

(Критическая ошибка)


161 Device read fault (Сбой чтения устройства)

(Критическая ошибка)


162 Hardware failure (Сбой железа)

(Критическая ошибка)


200 Division by zero (Деление на ноль)

Приложение пыталось разделить число на ноль.


201 Range check error (Ошибка проверки границ)

Если вы компилировали прогамму с включённой провереой границ, Вы можете получить эту ошибку в следующих случаях:

  1. Массив был вызван с индексом, выходящим за декларированые пределы.

  2. Попытка присвоить значение переменной, выходящее за декларированые границы (для instance и enumerated типов).


202 Stack overflow error (Переполнение стека)

Стек превысил свой максимально допустимый размер (в этом случае необходимо уменьшить размер локальных переменных), или стек был повреждён. Эта ошибка генерируется только с включённой проверкой стека.


203 Heap overflow error (Переполнение кучи)

Размер кучи превысил максимально возможный размер. Генерируется при попытке выделить память непосредственно функциями New, GetMem и ReallocMem, или когда экземпляр класса или объекта создаётся и памяти не достаточно. Пожалуйста учтите что, по умолчанию, Free Pascal поддерживает увеличение кучи, то есть, если необходимо, будет произведена попытка её увеличения. Как бы то ни было, если размер кучи превысил максимально допустимый системой и
железом, то Вы получите эту ошибку.


204 Invalid pointer operation (Непрваильная операция с указателем)

Будет сгенерирована при вызове функций Dispose или Freemem с неправильным указателем (чаще всего, Nil)


205 Floating point overflow (Максимальная границы числа с плавающей точкой)

Вы попытались использовать или создать слишком большое число с плавающей точкой.


206 Floating point underflow (Минимальная граница числа с плавающей точкой)

Вы попытались использовать или создать слишком маленькое число с плавающей точкой.


207 Invalid floating point operation (Неправильная операция над числами с плавающей точкой)

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


210 Object not initialized (Объект не инициализирован)

Если программа была скомпилирована с включенной проверкой границ, эта ошибка будет сгенерирована при попытке вызвать виртуальный метод до его конструктора.


211 Call to abstract method (Попытка вызова абстрактного метода)

Ваша программа попыталась вызвать абстрактный виртуальный метод. Абстрактные методы должны быть перекрыты, и только перекрытый метод должен быть вызван.


212 Stream registration error (Ошибка регистрации потока)

Генерируется когда неправильный тип регистрируется в модуле objects.


213 Collection index out of range (Индекс элемента коллекции выходит за допустимые границы)

Генерируется когда Вы попытались обратиться к элементу коллекции с выходящим за допустимые границы индексом (модуль objects).


214 Collection overflow error (Переполнение коллекции)

Размер коллекции превысил максимально допустимый размер, а Вы попытались добавить новый элемент (модуль objects).


215 Arithmetic overflow error (Арифметическое переполнение)

Эта ошибка генерируется когда результат операции превысил допустимые границы. В отличие to Turbo Pascal, эта ошибка генерируется только для 32-bit и 64-bit арифметических переполнений. Это происходит согласно тому, что все операнды конвертируются в 32-bit или 64-bit, до того как производить вычисления.


216 General Protection fault (GP Ошибка защиты памяти)

Приложение попыталось обратиться к недопустимому участку памяти. Это может быть вызвано следующими причинами:

  1. Попытка получить разуказатель для nil.

  2. Попытка получить доступ к выходящему за допустимые границы участку памяти (например, вызов move с неправильной длиной).


217 Unhandled exception occurred (Произошо неизвестное исключение)

Произошло исключение, и для него не существеет хэндла. Модуль sysutils устанавливает handler(менеджер), который отлавливает все исключения, и безопасно выходит в случае обнаружения оного.


219 Invalid typecast (Неправильное приведение типов)

Генерируется когда недопустимое приведение типов производится над классом используя оператор as. Эта ошибка также генерируется, когда объект или класс приводится к недопустимому объекту или классу, и виртуальный метод этого объекта или класса вызывается. Эта последняя ошибка детектируется только с использованием опции -CR компилятора.


227 Assertion failed error (Сбой утверждения)

Утверждение провалено, и процедурная переменная AssertErrorProc не была уcтановлена.


program test;
 
type
  TType = record
    a, b: integer;
  end;
  TTypeFile = file of TType;
var
  x: TType;
  i: integer;
  f: TTypeFile;
begin
  Assign(f, 'test.dat');
  rewrite(f);
  for i := 1 to 10 do
  begin
    x.a := i;
    x.b := 2 * i;
    Write(f, x);
  end;
  Close(f);
 
  reset(f);
  writeln('Filesize = ', filesize(f));
  while not EOF(f) do
  begin
    Read(f, x);
    Write('(', x.a, ', ', x.b, ')');
  end;
  writeln;
  Close(f);
 
  reset(f);
  seek(f, filesize(f));
  x.a := 11;
  x.b := 22;
  Write(f, x);
  Close(f);
 
  reset(f);
  writeln('Filesize = ', filesize(f));
  while not EOF(f) do
  begin
    Read(f, x);
    Write('(', x.a, ', ', x.b, ')');
  end;
  writeln;
  Close(f);
end.

Модератор: Модераторы

Функция FileSize в типизированных файлах

Во всех книгах написано, что функция FileSize для типизированных файлов возвращает количество записей в файле. У меня, почему-то возвращает количество байтов в файле. Вот код:

Код: Выделить всё
program create_files;
{$mode objfpc}{$H+} {$APPTYPE CONSOLE}
uses CRT, FileUtil, SysUtils;
type
    manager=record
    name:string[18];
    comp: integer;
end;
var
  company:manager;
  fmanager: File of manager; // Файловая переменная
  k, n:integer;
begin
  AssignFile(fmanager,'File_manager.dat');
  if not FileExists('File_manager.dat') then
    Rewrite(fmanager)
  else
    Reset(fmanager);
  Seek(fmanager, FileSize('File_manager.dat'));
  writeln(UTF8ToConsole('Введите количество менеджеров компании'));
  readln(n);
  with company do
  begin
    for k:=1 to n do
    begin
      writeln(UTF8ToConsole('Введите фамилию'));
      readln(name);
      writeln(UTF8ToConsole('Введите количество реализованных им компьютеров'));
      readln(comp);
      Write(fmanager, company); // запись в файл
    end;
  end;
  writeln(UTF8ToConsole('Информация на диск записана'));
  CloseFile(fmanager);
  writeln(UTF8ToConsole('Нажмите любую клавишу'));
  readkey;
end. 

Так я создаю файл. Для примера создаю предыдущей программой файл с двумя записями.
Теперь пытаюсь с ним работать.
Total Commander показывает размер файла 48 байт и функция FileSize тоже возвращает 48, хотя должна была возвратить число 2. Фрагмент кода:

Код: Выделить всё
program manager_computer;
{$mode objfpc}{$H+} {$APPTYPE CONSOLE}
uses crt, FileUtil, SysUtils;
type
    manager=record
    name:string[18];
    comp: integer;
end;
var
  company:manager;
  fmanager: File of manager; // Файловая переменная
  sum, cost, prem, k, n: integer;
  sumc, sumv, sump, sum1: integer;
begin
  if not FileExists('File_manager.dat') then
  begin
    writeln(UTF8ToConsole('Файлы не существуют'));
    writeln(UTF8ToConsole('Сначала создайте их'));
    writeln(UTF8ToConsole('Нажмите любую клавишу'));
    readkey;
    exit;
  end;
  AssignFile(fmanager,'File_manager.dat');
  Reset(fmanager);
  n:= FileSize('File_manager.dat');
  writeln('FileSize= ', n);
  readkey; 

Что здесь я неправильно делаю?
Подскажите, пожалуйста, а то скоро сессия.

Александр Яшин
новенький
 
Сообщения: 67
Зарегистрирован: 21.11.2009 09:31:01

Re: Функция FileSize в типизированных файлах

Сообщение Mr.Smart » 19.12.2009 13:14:34

Существуют две версии данной функции:

  • 1 function FileSize(const Filename: string): int64;
  • 2 function FileSize(var f: File): int64;

Вы используете первую функцию, которая возвращает полный объём файла. Для того чтобы получить размер именно типизированного файла вам необходимо вызвать вторую функцию.
Чтобы её вызвать необходимо передать ей параметр соответствующего типа:

Код: Выделить всё
...
  AssignFile(fmanager,'File_manager.dat');
  Reset(fmanager);
  n:= FileSize(fmanager);
...

и ещё я бы вам рекомендовал элемент записи файла объявлять как packed record :wink:

Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Функция FileSize в типизированных файлах

Сообщение Александр Яшин » 19.12.2009 16:32:14

Я так вначале и делал.
Выдается ошибка:

Код: Выделить всё
manager.lpr(29,24) Error: Incompatible type for arg no. 1: Got "File Of manager", expected "AnsiString"

Кроме того, мои многочисленные эксперименты по созданию файлов первой программой показывают, что в первой программе вызывает сомнение и функция

Код: Выделить всё
Seek(fmanager, FileSize('File_manager.dat'));

Вызов этой функции в таком виде

Код: Выделить всё
Seek(fmanager, FileSize(fmanager));

также дает ошибку компиляции с тем же сообщением

Код: Выделить всё
create_files.lpr(22,35) Error: Incompatible type for arg no. 1: Got "File Of manager", expected "AnsiString"
Александр Яшин
новенький
 
Сообщения: 67
Зарегистрирован: 21.11.2009 09:31:01

Re: Функция FileSize в типизированных файлах

Сообщение Mr.Smart » 19.12.2009 17:14:52

Укажите конкретно тот модуль в котором описана данная функция.

Код: Выделить всё
System.FileSize()
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Функция FileSize в типизированных файлах

Сообщение Александр Яшин » 19.12.2009 17:50:01

Спасибо большое!
Получилось. А что, нет ли каких-то умолчательных настроек, чтобы не писать

Код: Выделить всё
System.
Александр Яшин
новенький
 
Сообщения: 67
Зарегистрирован: 21.11.2009 09:31:01

Re: Функция FileSize в типизированных файлах

Сообщение Mr.Smart » 19.12.2009 18:21:42

Тут ситуация следующая. Существуют 2 функции с одинаковыми названиями. Одна в модуле System, а вторая в FileUtil.
Т.к. модуль FileUtil подключен позже чем System (который подключается по умолчанию ко всем модулям первым) то компилятор считает, что данная функция имеет параметр типа const String и ругается.
Если вы не пользуетесь модулем FileUtil то просто удалите его из секции uses :wink:

Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Функция FileSize в типизированных файлах

Сообщение Александр Яшин » 19.12.2009 18:42:29

Спасибо!
Модуль FileUtil я применяю (функцию UTF8ToConsole), так что придется через точку.

Александр Яшин
новенький
 
Сообщения: 67
Зарегистрирован: 21.11.2009 09:31:01

Re: Функция FileSize в типизированных файлах

Сообщение VirtUX » 01.12.2010 01:05:15

Интересно: как правильно подключить в консольном приложении модуль FileUtil, чтоб не было ошибок?

Аватара пользователя
VirtUX
энтузиаст
 
Сообщения: 878
Зарегистрирован: 05.02.2008 10:52:19
Откуда: Крым, Алушта

Re: Функция FileSize в типизированных файлах

Сообщение Mr.Smart » 01.12.2010 14:40:28

VirtUX
Нужно подключить пакет LCL и получить кучу «мёртвого» кода.

Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!


Вернуться в Free Pascal Compiler

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Icon Ex Номер ошибки: Ошибка во время выполнения 52
Название ошибки: Bad file name or number
Описание ошибки: An error occurred trying to access the specified file.
Разработчик: Microsoft Corporation
Программное обеспечение: Windows Operating System
Относится к: Windows XP, Vista, 7, 8, 10, 11

Описание «Bad file name or number»

Эксперты обычно называют «Bad file name or number» «ошибкой времени выполнения». Программисты работают через различные уровни отладки, пытаясь убедиться, что Windows Operating System как можно ближе к безошибочным. Хотя эти превентивные действия принимаются, иногда ошибки, такие как ошибка 52, будут пропущены.

В выпуске последней версии Windows Operating System может возникнуть ошибка, которая гласит: «An error occurred trying to access the specified file.». Если возникает ошибка 52, разработчикам будет сообщено об этой проблеме через уведомления об ошибках, которые встроены в Windows Operating System. Затем Microsoft Corporation может исправить эти ошибки в исходном коде и подготовить обновление для загрузки. Таким образом при выполнении обновления программного обеспечения Windows Operating System, он будет содержать исправление для устранения проблем, таких как ошибка 52.

Что генерирует ошибку времени выполнения 52?

В большинстве случаев вы увидите «Bad file name or number» во время загрузки Windows Operating System. Это три основных триггера для ошибок во время выполнения, таких как ошибка 52:

Ошибка 52 Crash — она называется «Ошибка 52», когда программа неожиданно завершает работу во время работы (во время выполнения). Это возникает, когда Windows Operating System не реагирует на ввод должным образом или не знает, какой вывод требуется взамен.

Утечка памяти «Bad file name or number» — Когда Windows Operating System обнаруживает утечку памяти, операционная система постепенно работает медленно, поскольку она истощает системные ресурсы. Критическими проблемами, связанными с этим, могут быть отсутствие девыделения памяти или подключение к плохому коду, такому как бесконечные циклы.

Ошибка 52 Logic Error — Логическая ошибка вызывает неправильный вывод, даже если пользователь дал действительные входные данные. Неисправный исходный код Microsoft Corporation может привести к этим проблемам с обработкой ввода.

Повреждение, отсутствие или удаление файлов Bad file name or number может привести к ошибкам Windows Operating System. Как правило, самый лучший и простой способ устранения ошибок, связанных с файлами Microsoft Corporation, является замена файлов. Кроме того, регулярная очистка и оптимизация реестра Windows предотвратит создание неправильных ссылок на пути к файлам Microsoft Corporation, поэтому мы настоятельно рекомендуем регулярно выполнять сканирование реестра.

Типичные ошибки Bad file name or number

Частичный список ошибок Bad file name or number Windows Operating System:

  • «Ошибка программы Bad file name or number. «
  • «Недопустимый файл Bad file name or number. «
  • «Извините, Bad file name or number столкнулся с проблемой. «
  • «Bad file name or number не может быть найден. «
  • «Отсутствует файл Bad file name or number.»
  • «Ошибка запуска в приложении: Bad file name or number. «
  • «Файл Bad file name or number не запущен.»
  • «Bad file name or number выйти. «
  • «Ошибка пути программного обеспечения: Bad file name or number. «

Проблемы Windows Operating System Bad file name or number возникают при установке, во время работы программного обеспечения, связанного с Bad file name or number, во время завершения работы или запуска или менее вероятно во время обновления операционной системы. Отслеживание того, когда и где возникает ошибка Bad file name or number, является важной информацией при устранении проблемы.

Источники проблем Bad file name or number

Проблемы Windows Operating System и Bad file name or number возникают из отсутствующих или поврежденных файлов, недействительных записей реестра Windows и вредоносных инфекций.

Точнее, ошибки Bad file name or number, созданные из:

  • Недопустимые разделы реестра Bad file name or number/повреждены.
  • Вирус или вредоносное ПО, повреждающее Bad file name or number.
  • Другая программа (не связанная с Windows Operating System) удалила Bad file name or number злонамеренно или по ошибке.
  • Другая программа находится в конфликте с Windows Operating System и его общими файлами ссылок.
  • Windows Operating System (Bad file name or number) поврежден во время загрузки или установки.

Продукт Solvusoft

Загрузка
WinThruster 2022 — Проверьте свой компьютер на наличие ошибок.

Совместима с Windows 2000, XP, Vista, 7, 8, 10 и 11

Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление

Приложения написанные на Free Pascal могут генерировать ошибку времени выполнения (Run Time Error) когда в программе обнаруживаются определённые аварийные состояния . Этот документ содержит список возможных ошибок и описание их возможных причин.


1 Invalid function number (Неправильный номер функции)

Была попытка неправильного вызова системной функции.


2 File not found (Файл не найден)

Генерируется при попытке перенаименования, стирания или открытия несуществующего файла.


3 Path not found (Путь(директория) не найден)

Генерируется файловой системой когда путь не существует или неправелен.
Также генерируется при попытке получить доступ к несуществующему файлу.


4 Too many open files (Слишком много файлов открыто)

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


5 File access denied (В доступе к файлу — отказано)

Было запрешено получение доступа к файлу. Эта ошибка может произойти по нескольким причинам:

  • При попытке открыть файл, предназначенный только для чтения или в деиствительности являющиёся директорией, для записи.

  • В данный момент занят или заблокирован другим процессом.

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

  • При попытке чтения из файла, открытого только для записи.

  • При попытке записи в файл, открытый только для чтения.

  • При попытке удалить директорию или файл, когда это не возможно.

  • При неимении прав на доступ к данному файлу.


6 Invalid file handle (Неправильный хэндл файла)

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


12 Invalid file access code (Неправильные ключи доступа к файлу)

Генерируется когда процедуры reset или rewrite вызываются с неправильным параметром FileMode.


15 Invalid drive number (Неправильный номер диска)

Генерируется когда в функции Getdir или ChDir был передан неправильный номер диска.


16 Cannot remove current directory (Невозможно удалить текущую директорию)

Генерируется при попытке удалить текущую директорию.


17 Cannot rename across drives (Можно переименовывать файлы только в пределах одного диска)

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


100 Disk read error (Ошибка чтения с диска)

Генерируется при невозможности произвести чтение с диска. Обычно происходит при попытке чтения данных, после его окончания.


101 Disk write error (Ошибка записи на диск)

Генерируется когда Вы пытаетесь записать данные на переполненый диск.


102 File not assigned (Файл не определён)

Генерируется функциями Reset, Rewrite, Append, Rename и Erase, При передаче в них файловой переменной, для которой не была выполнена функция AssignFile.


103 File not open (Файл не открыт)

Генерируется следующими функциями : Close, Read, Write, Seek, EOf, FilePos, FileSize, Flush, BlockRead, и BlockWrite если файл не был открыт.


104 File not open for input (Файл не открыт для чтения)

Генерируется функциями Read, BlockRead, Eof, Eoln, SeekEof и SeekEoln если файл не был открыт при помощи Reset.


105 File not open for output (Файл не открыт для записи)

Генерируется функцией write если текстовый файл не был открыт при помощи Rewrite.


106 Invalid numeric format(Неправильный числовой формат)

Генерируется когда ожидалось числовое значение, но из текстого файла было прочитано не было.


150 Disk is write-protected (Диск защищён от записи)

(Критическая ошибка)


151 Bad drive request struct length (Неправильная длина структуры запроса)

(Критическая ошибка)


152 Drive not ready (Устройство не готово)

(Критическая ошибка)


154 CRC error in data (Ошибка контрольной суммы в данных)

(Критическая ошибка)


156 Disk seek error (Ошибка низкоуровнего поиска на диске)

(Критическая ошибка)


157 Unknown media type (Неизвестный тип …)

(Критическая ошибка)


158 Sector Not Found (Сектор не найден)

(Критическая ошибка)


159 Printer out of paper (Нет бумаги в принтере)

(Критическая ошибка)


160 Device write fault (Сбой записи устройства)

(Критическая ошибка)


161 Device read fault (Сбой чтения устройства)

(Критическая ошибка)


162 Hardware failure (Сбой железа)

(Критическая ошибка)


200 Division by zero (Деление на ноль)

Приложение пыталось разделить число на ноль.


201 Range check error (Ошибка проверки границ)

Если вы компилировали прогамму с включённой провереой границ, Вы можете получить эту ошибку в следующих случаях:

  1. Массив был вызван с индексом, выходящим за декларированые пределы.

  2. Попытка присвоить значение переменной, выходящее за декларированые границы (для instance и enumerated типов).


202 Stack overflow error (Переполнение стека)

Стек превысил свой максимально допустимый размер (в этом случае необходимо уменьшить размер локальных переменных), или стек был повреждён. Эта ошибка генерируется только с включённой проверкой стека.


203 Heap overflow error (Переполнение кучи)

Размер кучи превысил максимально возможный размер. Генерируется при попытке выделить память непосредственно функциями New, GetMem и ReallocMem, или когда экземпляр класса или объекта создаётся и памяти не достаточно. Пожалуйста учтите что, по умолчанию, Free Pascal поддерживает увеличение кучи, то есть, если необходимо, будет произведена попытка её увеличения. Как бы то ни было, если размер кучи превысил максимально допустимый системой и
железом, то Вы получите эту ошибку.


204 Invalid pointer operation (Непрваильная операция с указателем)

Будет сгенерирована при вызове функций Dispose или Freemem с неправильным указателем (чаще всего, Nil)


205 Floating point overflow (Максимальная границы числа с плавающей точкой)

Вы попытались использовать или создать слишком большое число с плавающей точкой.


206 Floating point underflow (Минимальная граница числа с плавающей точкой)

Вы попытались использовать или создать слишком маленькое число с плавающей точкой.


207 Invalid floating point operation (Неправильная операция над числами с плавающей точкой)

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


210 Object not initialized (Объект не инициализирован)

Если программа была скомпилирована с включенной проверкой границ, эта ошибка будет сгенерирована при попытке вызвать виртуальный метод до его конструктора.


211 Call to abstract method (Попытка вызова абстрактного метода)

Ваша программа попыталась вызвать абстрактный виртуальный метод. Абстрактные методы должны быть перекрыты, и только перекрытый метод должен быть вызван.


212 Stream registration error (Ошибка регистрации потока)

Генерируется когда неправильный тип регистрируется в модуле objects.


213 Collection index out of range (Индекс элемента коллекции выходит за допустимые границы)

Генерируется когда Вы попытались обратиться к элементу коллекции с выходящим за допустимые границы индексом (модуль objects).


214 Collection overflow error (Переполнение коллекции)

Размер коллекции превысил максимально допустимый размер, а Вы попытались добавить новый элемент (модуль objects).


215 Arithmetic overflow error (Арифметическое переполнение)

Эта ошибка генерируется когда результат операции превысил допустимые границы. В отличие to Turbo Pascal, эта ошибка генерируется только для 32-bit и 64-bit арифметических переполнений. Это происходит согласно тому, что все операнды конвертируются в 32-bit или 64-bit, до того как производить вычисления.


216 General Protection fault (GP Ошибка защиты памяти)

Приложение попыталось обратиться к недопустимому участку памяти. Это может быть вызвано следующими причинами:

  1. Попытка получить разуказатель для nil.

  2. Попытка получить доступ к выходящему за допустимые границы участку памяти (например, вызов move с неправильной длиной).


217 Unhandled exception occurred (Произошо неизвестное исключение)

Произошло исключение, и для него не существеет хэндла. Модуль sysutils устанавливает handler(менеджер), который отлавливает все исключения, и безопасно выходит в случае обнаружения оного.


219 Invalid typecast (Неправильное приведение типов)

Генерируется когда недопустимое приведение типов производится над классом используя оператор as. Эта ошибка также генерируется, когда объект или класс приводится к недопустимому объекту или классу, и виртуальный метод этого объекта или класса вызывается. Эта последняя ошибка детектируется только с использованием опции -CR компилятора.


227 Assertion failed error (Сбой утверждения)

Утверждение провалено, и процедурная переменная AssertErrorProc не была уcтановлена.


  • Ошибка времени виндовс 7 какое обновление
  • Ошибка времени википедия фильм сюжет
  • Ошибка времени бюджет фильма
  • Ошибка времени будет ли 2 часть
  • Ошибка времени time lapse сша 2014 скачать торрент