クライアントデータセットの中身を固定長で書き出を実行しているのですが、改行コードが自動的に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;
>改行コードが自動的にLFで入ってしまっているようです
Writeln は、行マーカーの終点として CRLFを書き込むはずだけど?
実は、私自身改行コードがどのように入っているかわからないのです。
テキストで開いてもわからないです。改行コードが、どのように入っているか
確認の方法はありますか?
> 実は、私自身改行コードがどのように入っているかわからないのです。
ではどうして「LFで入っている」と判断したのでしょうか……
改行コード判定の機能があるエディタ(秀丸とか)を使うか、バイナリエディタに放り込んでみれば確認はできると思いますけれど。
もし本当に行末がLFになっているのなら、SetLineBreakStyleやDefaultTextLineBreakStyleで変更できるようです。
(ヘルプでWriteLnをひいて、そこから「参照」をたどっていけば色々と見つかります)
ついでですが、Rewriteはファイルがすでにあれば削除して新しいファイルを作成するので、あらかじめDeleteFileしておく必要はないですよ。
皆様有難うございました。 無事解決いたしました。
改行コードは正しかったのですが、固定長が、違っていたようです。