Использование чего-то похожего на \ n, а не пустой WriteLn () в бесплатном паскале - PullRequest
0 голосов
/ 05 мая 2018
procedure A();
//Do something useful    
WriteLn('This is a message');

procedure B();
//Do something else useful
WriteLn();                 //<---Empty WriteLn();
WriteLn('This is another message');

procedure C();
//Do something else useful
A();
B();
WriteLn();                 //<---Empty WriteLn();
WriteLn('This is another message from C');

Это всего лишь 3 процедуры, а в моей программе более 3 процедур, подобных этой ... Есть ли способ, которым мне не нужно ставить пустой WriteLn (); (что-то вроде \ n в html) в большинстве процедур по эстетическим причинам?

Спасибо! * * 1004

1 Ответ

0 голосов
/ 05 мая 2018

Правильный способ сделать это - использовать пустой Writeln. Второй лучший и независимый от платформы способ - использовать что-то вроде:

Writeln(sLineBreak + sLineBreak + 'This is another message');

(sLineBreak определяется в единицах System, AFAIK).

Но если вы уже считаете, что использование пустого Writeln слишком много, вы можете вставить в строку символы возврата каретки и перевода строки, как показано ниже:

Windows

Просто добавьте комбинацию возврата каретки (#13) / перевода строки (#10):

procedure B();
begin
  //Do something else useful
  WriteLn(#13#10'This is another message');
end;

Вы можете даже иметь несколько пустых строк, таких как:

  Writeln(#13#10#13#10'Hello');
  Writeln('-----'#13#10#13#10);

Non-Windows

Если вы работаете не на платформе Windows, вероятно, подойдет #10 (перевод строки). Большинство платформ, отличных от Windows, не требуют возврата каретки.


FWIW, вместо #10 вы также можете использовать ^J и вместо #13 вы можете использовать ^M. Это эквиваленты:

  Writeln(^M^J^M^J'Hello');
  Writeln('-----'^M^J^M^J);

^M - это Ctrl + M с кодом ASCII 77 - 64 = 13! ^J составляет 74 - 64 = 10.

...