« MiBarcode5.3.0.8 | トップページ | MiBarcode5.3.1.0 »

2005.10.15

XWriteBiff.pas修正版

 掲示板で報告があった不具合を修正しました。
 修正版では、書き込むデータの種類を判別するために例外処理を用いているため、処理速度が落ちている可能性大です。不具合修正と合わせて、動作速度についても報告頂けますと助かります。

「xwbiff.zip」をダウンロード

|

« MiBarcode5.3.0.8 | トップページ | MiBarcode5.3.1.0 »

コメント

お世話になります。さっそく修正版のソースでコンポーネントと
コンパイル、アプリも再構築してみましたが、結果はダメでした。

以前と同じようにマイナス付きの数値表現は正の違った
数字になってしまいます。

これは Excel の側の問題のような気がしてなりません。
BNUMBER や BINTEGER といった型の扱いが、
変わってしまっているのではないでしょうか。

自分は C++ 使いなのでこんな例しか挙げられませんが、
C++ だと unsigned int と int を無理やり型変換すると
似たような現象になります。通常はエラーで出来ませんが。

もしかすると符合付き整数の型表現が変わっている
のじゃないかなという気がします。

投稿: Bsaku | 2005.10.18 09:27

だめでしたか・・・

代案ですが、思い切ってShortIntをやめて数値は全てDoubleで書き込むと言う割り切り処理ではどうでしょうか。
DataKindを以下のように変更してみてくださいm(__)m

function TWriteBiff.DataKind(const Data: string): integer;
var
dt: string;
db: double;
begin
Result := BBRANK;
dt := Data;
if dt = '' then
Exit;
try
// doubleにしてみる
db := StrToFloat(dt);
Result := BNUMBER;
except
// 数値ではない
Result := BLABEL;
end;
end;

投稿: M&I | 2005.10.18 10:48

はじめまして。いつもXBiff便利に使わせてもらってます。
今更ですが、私の環境(D6 + Excel 2003)でもダメみたいです。
ただし、Result:=BNUMBERにするか、書き出す数値に小数点を付ければOKでした。(-100はダメ。-100.0はOK)
当面、Result:=BNUMBERで行こうかと思います。便利なツールをありがとうございました。

投稿: flyman | 2007.04.19 16:58

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: XWriteBiff.pas修正版:

« MiBarcode5.3.0.8 | トップページ | MiBarcode5.3.1.0 »