レコード形データをテキストデータとして出力するには?


お願い  2006-05-19 02:20:42  No: 21646

レコード形データを読込、テキストデータとして新規ファイル作成したいのですが、うまくいきません。データ変換するコマンドがあれば教えてください。
type           
SS = record
            KIG: string[2];    
            KIB: Integer;      
            WO: string[12];   
 end;

procedure TForm1.Button4Click(Sender: TObject);
Var
    FSP : File of SS; 
    FSPc : TextFile;    
    SData : SS;
      
begin
   //省略
    Reset(FSP);
    Rewrite(FSPc);
    
    Read(FSP, SData);
    Writeln(FSPc, SData);
   //省略
 end;


igy  2006-05-19 02:31:12  No: 21647

Writeln(FSPc, SData.KIG + ',' + IntToStr(SData.KIB) + ',' + SData.WO);
でどうですか?


お願い  2006-05-19 02:44:16  No: 21648

すみません。説明が足りませんでした。
レコード形のデータは三つしか書きませんでしたが、実は50個近くあるのです。この50個を並べて書くのは大変なので。。ということです。
よろしくお願いします。


f  2006-05-19 21:44:57  No: 21649

そのレコード中には、テキストで表現できない値も含まれているので
随時、それらを変換するコードを書かなければならないでしょう。

Delphi の IDEを使っているなら、

1.SHIFT + CTRL + R でキーマクロ記録開始
2.変換用のコードをマクロで繰り返し可能なように書く
3.もう一度 SHIFT + CTRL + R でキーマクロ記録終了
4.SHIFT + CTRL + P でキーマクロの再生

をいくつか繰り返せば、なんとかなりませんか?
CTRL + →         :単語単位でキャレットを移動
CTRL + SHIFT + → :直前のキャレットから次のキャレットまで単語単位で選択
なども利用します。

また、CTRL + →などで、選択できないような場合は、
「'」や「;」などを、検索ダイアログで、検索文字列として指定しておき
F3 キーとカーソルキーなどを駆使して、選択できます。

とりあえず、
type
  a: integer;
  b: string;
  c: integer;
  d: string;
end;

こういうのをCUT & PASTE で
  a: integer;
  b: string;
  c: integer;
  d: string;
という状態にします。
次に、キーマクロを使って

  a{ integer};
  b{ string};
  c{ integer};
  d{ string};
という状態にし、
次に、integerの部分をキーマクロ(と検索ダイアログ)を使って
  IntToStrDef(a{ integer},0);
  b{ string};
  IntToStrDef(c{ integer},0);
  d{ string};
のようにし、
最終的に
  Writeln( txt,IntToStrDef(a{ integer},0));
  Writeln( txt,b{ string});
  Writeln( txt,IntToStrDef(c{ integer},0));
  Writeln(d{ string});
とします。
いかがですか?


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加