许多习惯于在C语言中逐步构建字符串的人很难将他们的思想包裹在Ada字符串周围,你应该按原样初始化和使用它们.当您了解关于Ada字符串的这一事实时,解决方案变得更加简单.我甚至可以抛弃你的"填充"程序.
procedure F() is Msg : constant String := FLS(" Field1", 12) & "|" & FLS(" Field2", 12) & "|" & FLS(" Field3", 16); Separator : constant String := (1..Msg'length => '-'); --' begin Open_Log(); Log_To_File("# " & Msg); Log_To_File("# " & Separator); end;
(注意:评论是让SO的着色器回到正轨的黑客)
如果您不必使分隔符具有相同的长度,则甚至不需要声明变量.
如果是我,我会做一些事情,如Log_To_File
跟踪长度,并根据要求生成自己适当大小的分隔符.然后你可以写:
Open_Log(); Log_To_File ("# " & FLS(" Field1", 12) & "|" & FLS(" Field2", 12) & "|" & FLS(" Field3", 16)); Log_Separator_To_File;