Паскаль добавляет пробел в типизированный файл - PullRequest
0 голосов
/ 15 сентября 2018

Я пытаюсь что-то записать в файл, но Паскаль добавляет кучу пробелов между значениями каждой записи, а также помещает 2 записи в одну строку.

Первый файл - это просто список строк.Второй файл (который я создаю с помощью программы) должен иметь заголовок и описание.

Как мне избавиться от пробелов, добавляемых паскалем?

program Wiki;
  {$mode objfpc}

TYPE wiki=record
    title:string;
    description:string;

  end;
var
  f:text ;
  g:file of wiki ;
  row:wiki;
  fileName: string;
  oldFileName:string;

begin
  writeln('Old file name:');
  readln(oldFileName);
  ASSIGN(f,oldFileName);
  RESET(f);
  writeln('New file name:');
  readln(fileName);
  ASSIGN(g,fileName);
  REWRITE(g);

REPEAT
  Readln(f,row.title);
  writeln('give a description:');
  Writeln(row.title);
  Readln(row.description);
  Write(g,row)

until EOF(f);

  CLOSE(f);
  CLOSE(g);
  writeln;
  writeln('press enter to close.');
  readln();
end.

1 Ответ

0 голосов
/ 16 сентября 2018

В режиме objfpc без {$H+}, я думаю, row.description - это стиль Турбо Паскаля фиксированного размера ShortString.Его длина составляет 255 символов, и, вероятно, поэтому вы получаете все эти пробелы.

Вместо этого запишите выходной файл в виде текстового файла:

var
  f: Text;
  g: Text;

и:

Writeln(g, row.title, ';', row.description);

Это должно привести к выводу текста, например:

Finding Nemo;The adventures of two fish trying to find the lost son of one of them
Toy Story;The adventures of a merry bunch of toys     

и т. Д.

...