固定長の改行について教えてください

解決


yu  2010-10-29 16:09:21  No: 39445  IP: 192.*.*.*

クライアントデータセットの中身を固定長で書き出を実行しているのですが、改行コードが自動的にLFで入ってしまっているようです  改行コードをCRLFに変更したいのですがどうすればよいでしょうか?
var
 f:textfile;
str: string;
pas:string;
begin
 pas:='c:\csv\'+'データ'+'.txt';

    DeleteFile(pas);

 AssignFile(f,pas);
rewrite(f);

 while not cds2.eof do
    begin
  str:=format('%1d%-4s%-15s%3s%-15s%-4s%1d%-7s%-30s%-10s%1d%20s%1d%8s',
      [2,
   trim(cds2BANK_CODE2.asstring),

   trim(cds2GINKOU2.asstring),
   trim(siten),
   trim(cds2SITEN2.asstring),
   cds2BRA.asstring,
    syu2,
   kouza,
   chr,
     kin2,
      cds2SINKI_F.asinteger,
      kocode,
      0,
      cds2BRA.asstring,
      '        '
     ]);
      Writeln(f,str);

   
     cds2.next;
    end;


    closeFile(F);

   //---------------------







end;

編集 削除
ほんとに?  2010-10-29 17:38:41  No: 39446  IP: 192.*.*.*

>改行コードが自動的にLFで入ってしまっているようです
Writeln は、行マーカーの終点として CRLFを書き込むはずだけど?

編集 削除
yu  2010-10-29 17:57:08  No: 39447  IP: 192.*.*.*

実は、私自身改行コードがどのように入っているかわからないのです。
テキストで開いてもわからないです。改行コードが、どのように入っているか
確認の方法はありますか?

編集 削除
tor  2010-10-29 18:21:23  No: 39448  IP: 192.*.*.*

> 実は、私自身改行コードがどのように入っているかわからないのです。
ではどうして「LFで入っている」と判断したのでしょうか……
改行コード判定の機能があるエディタ(秀丸とか)を使うか、バイナリエディタに放り込んでみれば確認はできると思いますけれど。

もし本当に行末がLFになっているのなら、SetLineBreakStyleやDefaultTextLineBreakStyleで変更できるようです。
(ヘルプでWriteLnをひいて、そこから「参照」をたどっていけば色々と見つかります)

ついでですが、Rewriteはファイルがすでにあれば削除して新しいファイルを作成するので、あらかじめDeleteFileしておく必要はないですよ。

編集 削除
yu  2010-10-29 21:02:02  No: 39449  IP: 192.*.*.*

皆様有難うございました。  無事解決いたしました。
改行コードは正しかったのですが、固定長が、違っていたようです。

編集 削除