固定長ファイルの読み書きについて

解決


にんちゃん  2012-09-17 20:49:05  No: 42934

お世話になります。
DelphiXE2を使用してプログラムを作っています。Delphiを使うのはVer5以来なので数年間のブランクがあるのですが…。
ハンディのデータを読み書きする為に、DBから固定長ファイルに読み書きをしようとして、昔の感覚で
StrText := Copy(DB.FieldByname('取引先CD',1,4).AsString;
StrText := StrText + Copy(DB.FieldByname('取引先名').AsString  + '                    ',1,20;
StrText := StrText + Copy(DB.FieldByname('取引先略名').AsString + '          ',1,20;
StrText := StrText + Copy(DB.FieldByname('担当CD').AsString,1,4;
みたいな感じで出力したところ、結果は
1001株式会社品川商事            品川商事      9001
1002ブティック青山             青山        9002
1003サロン・ド・シブヤ           シブヤ       9001
のように桁ずれしてしまいました。漢字もスペースもUNICODEとして扱っているようです。
欲しい出力結果は
1001株式会社品川商事    品川商事  9001
1002ブティック青山      青山      9002
1003サロン・ド・シブヤ  シブヤ    9001
なのですが、どうやって桁を合わせればいいでしょうか?
プログラムは素人レベルなのでよろしくお願いします。


DEKO  2012-09-18 00:32:46  No: 42935

...要は  Unicode で文字揃えしたいという事ですよね?

[Delphi 2009 以降で半角/全角を考慮して文字幅を揃える (Delphi VCL Tips)]
http://ht-deko.minim.ne.jp/tech040.html#tech073

[文字幅 - Delphi での文字コードのハンドリングについて (デブキャン資料 PDF)]
http://conferences.embarcadero.com/article/images/40483/devcamp_encore_20100415_Full.pdf#page=48

> プログラムは素人レベルなのでよろしくお願いします。
"素人" とか "初心者" というのは免罪符ではありません。


にんちゃん  2012-09-18 02:54:07  No: 42936

DEKOさま
早々のレスありがとうございました。
デブキャンの資料をみて試しております。また結果の方は報告させていただきます。


にんちゃん  2012-09-18 19:14:30  No: 42937

DEKO様
昨日遅くまで試行錯誤したのですが、やはり理解するには至らず、他の案件も立込んできたので、今回ファイルのエクスポートに関してはAccessにて手動で行う事にしました。一旦納期までに仕上げてからまた見直しをしたいと思います。
なかなか資料が見つけられなかったので、大変に参考になりました。
ありがとうございました。


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

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






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