みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Delphiで配列をファイルに出力する方法

Delphi(Pascal)について質問します。

fortranでできるファイルへの配列の出力をDelphiでどのようにプログラムするか教えて頂きたいと思います。
2次元配列a(i,j)の出力はfortranでは以下のようなプログラムになります。
open(10,.省略...) ファイルを指定して開く
do j=1,ny                ループj  
write(10,'(100f10.3)') (a(i,j),i=1,nx) ループi+書き出し
enddo                  ループjの最後尾 
close(10)                ファイルを閉じる

100f10.3というのは小数点3桁の実数で10カラムで表現したものが100個並ぶという意味です。これと同じことをやるDelphiプログラムを教えて頂きたいのですが。私の手元にある本にはやり方が載っていません。
Delphiにはfortranのような数字のカラムを指定するようなフォーマットの調整などできるのでしょうか。よろしくお願いします。

この質問は、C言語について以前質問したものですQNo.3590702。
Delphiではどうなるかと思って質問いたしました。

投稿日時 - 2007-12-14 14:45:53

QNo.3597772

困ってます

質問者が選んだベストアンサー

Delphiのフォーマットの調整はFormat、FormatFloatなどで可能です。また、文字列を標準出力するのでしたらWriteだけです。
WindowsXP Pro + Delphi2007で確認しました(インデントは2バイトコード空白に変換)。

program Q3597772;
{$APPTYPE CONSOLE}
uses
 SysUtils;
const
 nx = 100; // 例えばの値
 ny = 5; // 例えばの値
var
 a: array [1..nx, 1..ny] of Double;
 i,j :integer;
 buff: string;
begin
 // 配列aにデータを入れる処理
 :
 for j := 1 to ny do begin
  buff := '';
  for i := 1 to nx do
   buff := buff + Format('%10.3f',[a[i,j]]); // 前0は空白
   //buff := buff + FormatFloat('000000.000',a[i,j]); // 前0付き
  Write(buff);
 end;
end.

投稿日時 - 2007-12-16 13:29:26

お礼

回答有難うございます。
まだ試していませんが、これからやってみます。
雰囲気的にC言語に似ているように思いました。

投稿日時 - 2007-12-18 22:43:12

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問