2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Не создается типизированный файл записей. Pascal.
Сообщение25.04.2022, 21:45 
код: [ скачать ] [ спрятать ]
Используется синтаксис Pascal
interface
  type
    Data = record
      group: integer;
      FirstName: string;
      LastName: string;
      MiddleName: string;
      BirthYear: integer;
      sex: set of (м, ж);
      Physics: set of 0..5;
      Maths: set of 0..5;
      Informatics: set of 0..5;
      Scholarship: integer;
    end;
    cookie = file of Data;
   
  procedure TextFileToTypeFile(TextFile, TypeFile: string);

implementation
  procedure TextFileToTypeFile(TextFile, TypeFile: string);
  var
    f1: text;
    f2: cookie;
    t: Data;
  begin
    assign(f1, TextFile);
    assign(f2, TypeFile);
 


-- 25.04.2022, 21:46 --

Пишет: "Типизированый файл не может содержать элементы такого типа".

 
 
 
 Re: Не создается типизированный файл записей. Pascal.
Сообщение25.04.2022, 21:57 
Вы уверены что типизированный файл может содержать записи переменной длины? А тип string является переменным по размеру. Сделайте все строки фиксированной длины (и меньшей 256 ибо длиннее их не бывает, во всяком случае в паскале/дельфи) и возможно прокатит.

 
 
 
 Re: Не создается типизированный файл записей. Pascal.
Сообщение25.04.2022, 22:05 
Помогло, спасибо

 
 
 
 Re: Не создается типизированный файл записей. Pascal.
Сообщение26.04.2022, 08:11 
Аватара пользователя
XeuTeP_KoLLIu в сообщении #1553424 писал(а):
Пишет: "Типизированый файл не может содержать элементы такого типа".


Нужно писать, что за реализацию "Паскаля" вы используете. В "классическом" Борланде string было синонимом string[255] и никаких проблем с использованием такой записи в типизированном файле вы бы не имели. Однако ваш Паскаль, очевидно, интерпретирует string по-другому.

В FreePascal, например, интерпретация string зависит от настроек компилятора. В режиме H- она будет синонимом shortstring и никаких проблем с использованием такой записи в типизированном файле не будет. В режиме H+ же string обозначает совсем другое. В этом режиме следует явно в такой записи писать shortstring, если это то, что вы хотели получить.

 
 
 [ Сообщений: 4 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group