お世話になります。
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
なのですが、どうやって桁を合わせればいいでしょうか?
プログラムは素人レベルなのでよろしくお願いします。
...要は 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
> プログラムは素人レベルなのでよろしくお願いします。
"素人" とか "初心者" というのは免罪符ではありません。
DEKOさま
早々のレスありがとうございました。
デブキャンの資料をみて試しております。また結果の方は報告させていただきます。
DEKO様
昨日遅くまで試行錯誤したのですが、やはり理解するには至らず、他の案件も立込んできたので、今回ファイルのエクスポートに関してはAccessにて手動で行う事にしました。一旦納期までに仕上げてからまた見直しをしたいと思います。
なかなか資料が見つけられなかったので、大変に参考になりました。
ありがとうございました。
ツイート | ![]() |