ログ ファイルにヘッダー行を出力し、データの前に「-」の行を出力したい。これを行うには、ヘッダーの文字列を作成し、同じ数の「-」を出力します。
ただし、生成された文字列が 1024 文字ではないため、以下のコードは常に CONSTRAINT_ERROR で失敗します。In Ada 文字列の割り当てには、十分な容量だけでなく、まったく同じ長さが必要です。
オプション 1) は正確な長さを計算することですが、これは将来の変更に対して脆弱です。オプション 2) は、文字列以外のものを使用することです。
procedure F() is
Msg : String(1..1024);
begin
Open_Log();
Msg := FLS(" Field1", 12) &
"|" & FLS(" Field2", 12) &
"|" & FLS(" Field3", 16);
Log_To_File("# " & Msg);
Log_To_File("# " & Fill_String(Msg'Last, '-'));
end;