На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
В этом разделе можно создавать темы, которые относятся к поколению 32-битных компиляторов.
Здесь решаются вопросы портирования кода из старого доброго Турбо Паскаля в FPC, TMT, VP, GPC компиляторы, а также особенностей программирования на них для Windows/Linux и других ОС.
Указывайте тип компилятора, его версию, а также платформу (Windows/Linux/..) компиляции, другими словами, Target.
Модераторы: volvo877
  
> внешний файл в GNU Pascal ISO 7185
    GNU PASCAL под Win32.
    Переключил компилятор GNU в режим ISO 7185 (стандартный Паскаль). Понял, что файлы нужно указывать в заголовке программы.
    ExpandedWrap disabled
      program Program1(output);
      begin
        writeln('Hellow world');
      end.


    В руководстве Вирта 1982 г и в стандарте ISO 7185:1990 (1989 г.) написано, что формальные параметры в заголовке программы - это имена файловых переменных, которые должны быть описаны в программе. Эти параметры служат для взаимодействия с окружением программы. Через эти параметры могут передаваться локальные файлы (файлы на диске). Способ передачи этих параметров зависит от реализации. Вот есть реализация GNU Pascal. Как в этой реализации передать в параметр программы файл на диске?

    Сделал так:
    ExpandedWrap disabled
      program Program1(f);
      var f:text;
      begin
        writeln(f,'Hellow world');
      end.


    Компилируется, осталось только передать файл в программу. Как? Передача имени файла в командной строке не помогает.
    Сообщение отредактировано: riden -
      В любой версии Паскаля есть процедуры reset(f)/rewrite(f), которые предназначены для открытия файла на диске в нужном режиме. В Стандарте 7185 они описаны в 6.6.5.2, на странице 40. А для того, чтобы получить имя файла из ком. строки - GPC поддерживает ParamCount/ParamStr.
        Цитата volvo877 @
        В любой версии Паскаля есть процедуры reset(f)/rewrite(f), которые предназначены для открытия файла на диске в нужном режиме. В Стандарте 7185 они описаны в 6.6.5.2, на странице 40. А для того, чтобы получить имя файла из ком. строки - GPC поддерживает ParamCount/ParamStr.

        И что я буду делать с именами файлов (строками), в стандартном Паскале? Где ты вычитал, что эти процедуры для файлов на ДИСКЕ? Они работают с файловыми переменными, при чем здесь строковые имена файлов на диске?
        Сообщение отредактировано: riden -
          Оказывается если написать так:
          ExpandedWrap disabled
            program Program1(f);
            var f:text;
            begin
              rewrite(f);
              writeln(f,'Hellow world');
            end.

          То после запуска появится строка и курсор ввода: "Output file 'f':". Введя имя существующего фала, запуститься программа и запись будет осуществляться в этот файл.
            Или:
            ExpandedWrap disabled
              Volvo@HomePC ~
              $ gpc -o test2.exe --classic-pascal test2.pas
               
              Volvo@HomePC ~
              $ ./test2.exe --gpc-rts=-nf:test.txt

            , в качестве параметра f будет передано заданное имя файла, в данном случае test.txt
              Хеллоуворлдщики вылезли :wall:
              Это форум коммерческих программистов, вам не сюда :rulez::msdn:>:-[
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script Execution time: 0,0976 ]   [ 18 queries used ]   [ Generated: 21.10.19, 04:56 GMT ]