Открытие файла

Форум для изучающих FPC и их учителей.

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

Ответить
Аватара пользователя
vladimirse
незнакомец
Сообщения: 6
Зарегистрирован: 19.11.2012 09:43:00

Открытие файла

Сообщение vladimirse »

Доброго времени суток, уважаемые!
Приступил не так давно к изучению freepascal по этому вопросы у меня достаточно глупые.

1. В среде Lazarus создаю консольное приложение, ввожу следующий код:

Код: Выделить всё

program project1;

{$mode objfpc}{$H+}

uses
  Classes, SysUtils, CustApp;

var
  fname: textfile;
  data: string;

begin
    assign(fname,'f.txt');

    while not eof(fname) do
          begin
            readln(fname, data);
            write(data);
            end;
    close(fname);

end.


Создаю в каталоге с исполняющим файлом текстовый файл "f.txt" который содержит в себе числа от 1 до 10 в строчку.
При запуске исполняемого файла проекта выдает следующую ошибку:

Код: Выделить всё

An unhandled exception occurred at $00000000004015CE :
EInOutError : File not open
  $00000000004015CE  main,  line 18 of project1.lpr


Пробовал запустить программу и в Windows и в Linux, ошибка аналогичная.

2. Можно ли проект с формой созданный в Delphi как то подгрузить в Lazarus?
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

vladimirse писал(а):Приступил не так давно к изучению freepascal

За одно приступайте к изучению английского языка.
Если перевести текст выданной ошибки EInOutError : File not open, то сразу всё становится понятно.
Аватара пользователя
vladimirse
незнакомец
Сообщения: 6
Зарегистрирован: 19.11.2012 09:43:00

Сообщение vladimirse »

Я понимаю, что программа не может открыть файл.
Где ошибка в коде? Файл существует и он не пустой, и расположен в зоне видимости программы.
Putnick
новенький
Сообщения: 62
Зарегистрирован: 18.03.2009 12:02:56

Сообщение Putnick »

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

Код: Выделить всё

assign(fname,'f.txt');

строчку

Код: Выделить всё

Reset(fname);

2. импорт Делфи-проектов в Лазарь предусмотрен: Сервис-Преобразовать проект Делфи в проект Лазарус. Правда, после преобразования получившийся проект вполне вероятно придётся дорабатывать напильником, но если проект не шибко навороченный и не использует специфических Делфийских модулей, то скорее всего заработает сразу же.
Аватара пользователя
vladimirse
незнакомец
Сообщения: 6
Зарегистрирован: 19.11.2012 09:43:00

Сообщение vladimirse »

Putnick, вот вот это ответ! Спасибо большое! Все четко и понятно!
Зачем пытаться унизить человека когда он задает вполне прямой вопрос? Видимо действительно неискоренимая особенность отечественных форумов!
Аватара пользователя
naomika
незнакомец
Сообщения: 7
Зарегистрирован: 09.08.2013 08:30:41

Сообщение naomika »

vladimirse писал(а):Зачем пытаться унизить человека когда он задает вполне прямой вопрос? Видимо действительно неискоренимая особенность отечественных форумов!

Такова селяви, одни спрашивают и терпят, другие умничают и бьют себя кулаком в грудь
Ответить