在 free pascal 中使用类似于 \n 而不是空 WriteLn() 的东西

Using something similar to \n rather than empty WriteLn() in free pascal

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(); (类似于 html 中的 \n)出于审美原因在大多数程序中?

谢谢!

执行此操作的正确方法实际上是使用空 Writeln。第二个最好的,也是独立于平台的方法是使用类似的东西:

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

sLineBreak 在单元 System 中定义,AFAIK)。

但是如果你已经觉得使用一个空的Writeln太过分了,那么你可以在字符串中插入回车符return和换行符,如下:

Windows

加一个回车就可以了return(#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);

非Windows

如果您在非 Windows 平台上,可能 #10(换行)就可以了。大多数非 Windows 平台不需要回车 return.


FWIW,您也可以使用 ^J 而不是 #10,您可以使用 ^M 而不是 #13。这些是等价物:

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

^M就是Ctrl+M,有ASCII码77-64=13! ^J 是 74 - 64 = 10。