開発覚え書き

ソフトウェアシステムの開発に関わるさまざまなことの覚え書き

OpenOfficeのCalcとExcelの互換性問題

2005-07-28 16:38:57 | Weblog
Excelで作ったファイルを OpenOffice.org 2.0ベータ (1.9.79) の
Calcで開いてみて分かった互換のない点。

別シートのセル指定
Excelでは
     シート名!セル指定
Calcでは
     シート名.セル指定

この違いはファイル読み込みで自動変換してくれる。
しかし、セルの中の関数で
     INDIRECT
を使って指定している部分は、! と . を相互変換してくれない
ので、相互に正しく読み込めない。
読み込み後、一括変換などを使って置換する必要がある。

(まとめ)Javaの文字列化

2005-07-22 11:21:07 | Weblog
Javaの基礎を勉強している人に付きあって、Javaで
+演算子などで自動で行われる文字列化についてまとめてみた。


+演算子では、オペランドの片方がStringであればもう片方も
Stringに変換され、両者を連結した新しいStringオブジェクトが
作られる。

文字列化の規則は、



  • xがプリミティブ型の場合
    booleannew Boolean(x)
    charnew Character(x)
    bytenew Integer(x)
    short
    int
    longnew Long(x)
    floatnew Float(x)
    doublenew Double(x)


    によって、オブジェクトに変換され、オブジェクトの




         public String toString()



    が呼び出され、文字列化される。
    つまり、オブジェクトに変換された後は、下記と同様になる。




  • xがオブジェクト型の場合

    もしxがnullなら、文字列 "null" が返される。
    そうでなければ、 x.toString() を呼び出す。
    その返り値が null なら、文字列 "null" が返される。
    そうでなければ x.toString() が返される。





面白い点


● 浮動小数点型のプリミティブの変換で呼び出される
     new Float(x).toString() または new Double(x).toString()
は、それぞれ static メソッドを使った
     Float.toString(x) または Double.toString(x)
と同じ結果を返すが、
     x の絶対値が 10-3 以上 107 未満の場合、
10進で、
     (xがマイナスのとき、符号 '-')
     1桁以上の整数部
     小数点
     1桁以上の小数部
から成る文字列を返す。小数部が必ず1桁以上であることに注意。

例えば、 float や double の x = 123 が文字列化されると、 "123.0" に
   float や double の「プラスの0」が文字列化されると、 "0.0" に
   float や double の「マイナスの0」が文字列化されると、 "-0.0" になる。
※ 浮動小数点では値を符号ビットと絶対値で表すので、「プラスの0」と「マイナスの0」が区別される。



XHTML 1.1 文書のIE 6.0での表示 (続き)

2005-07-19 16:40:50 | Weblog
XHTML 1.1 文書のIE 6.0での表示

で書いたとおり、最近XHTML文書がIE 6.0で正しく表示できない場合があることが分かったが、
これはIEがXHTML 1.1の妥当性を検査しようとしてエラーになるため、というのが原因だという。
エラーは以下のようなもの。
使用する前にパラメータ エンティティを定義しなければなりません。リソース 'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd' の実行エラーです。ライン 85、位置 2 

%xhtml-prefw-redecl.mod;
-^


下のように、
(A) XML宣言、DOCTYPE、html開始タグを、文書先頭から間にコメントなどを入れずに連続して記述
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xml:lang="ja" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"/>
<title>タイトル</title>
</head>
<body>
<h1>タイトル</h1>
</body>
</html>


したところ、エラーは出なくなった。この場合は文書はXMLではなくHTMLと見なされ
妥当性検査をしていないようだ。
IEの変な挙動だが、とりあえず(A)の形で書けばよさそうだ。