カメ

時ソバ
昨日,生協で買い物したときに「時ソバ」をやってしまいました.
パンとジュースを買って,レジ打ち(バーコードリーダですが)の時に話しかけたら,ジュースが会計から漏れてしまいました.
レジのお姉さんは気が付かなかったので,こちらから言ってお金はちゃんと払いましたよ?
そのとき話してたのですが,工学部の生協食堂(1F)にもエアコンが入りましたよ!
pc 関係
kachuha の CD ドライブが認識されなくなっていたので,筐体をあけて見てみると,IDEケーブルが随分とくたびれていました.
前の M/B のときに結構無理な取り回しをしていたのでした.
で,ケーブルを交換すると,無事認識されました.
ついでに,win2k と Redhat 9 のデュアルブートにして,遊びつつバックアップマシンとして使うことにします.
Java 関係
まだ java 流のコードの書き方(というよりもキチンとしたコード書き)に慣れていないので,大きなプログラムを作る前に,コードを推敲してみる.
まだ酷いものですが,前よりはましになったかな.

// Tiff データ ファイルを読み込み IDF を解析する
import	java.io.*;
class AnalizeTiffFormat {
int	tmpMinOfData = 240;
int	tmpMaxOfData = 540;
int	tmpNumberOfTag = 0;
int	tmpMaxOfTagNumber = tmpMinOfData;
int	tmpMinOfTagNumber = tmpMaxOfData;
String [] key = new String [] {"", "", "", "", "", ""};
String [][] matrix = new String [tmpMaxOfData - tmpMinOfData][6];
int	i = 0;
int	j = 0;
String	DefaultTagFileName = "tags.txt";
/* Tag data の初期化 */
void Initialize() {
LoadTagFile(DefaultTagFileName);
}
/* 10進コードに該当する tag が存在するかどうかを返す */
boolean ExistTagNumberOf (int i) {
if (i < tmpMinOfData || tmpMaxOfData < i) {
return (false);
}
else if (matrix [i - tmpMinOfData][0] == null) {
return (false);
}
else {
return (true);
}
}
/* IDF の Name を返す */
String IDFName(int i) {
return (matrix [i - tmpMinOfData][0]);
}
/* IDF の 10進コード を返す */
int IDFDecimal(int i) {
//    return (i);
return (Integer.valueOf(matrix [i - tmpMinOfData][1]).intValue());
}
/* IDF の 16進コード を返す */
String IDFHex(int i) {
return (matrix [i - tmpMinOfData][2]);
}
/* IDF の Type(byte, ascii, short, long, rational) を返す */
String IDFType(int i) {
return (matrix [i - tmpMinOfData][3]);
}
/* 読み込んだ IDF データの個数を返す */
int NumberOfTag() {
return (tmpNumberOfTag);
}
/* Tag data file を読み込む */
private void LoadTagFile( String TagFileName ) {
try {
FileReader File = new FileReader( TagFileName );
for (int k = tmpMinOfData; k < tmpMaxOfData; k++) {
matrix [k - tmpMinOfData][0] = null;
}
int a;
i = 0;
while(( a = File.read() ) != -1 ) {
if (a == '\n') {
i++;
int num = Integer.valueOf(key[1]).intValue();
for (int k = 0; k < j; k++) {
matrix [num - tmpMinOfData][k] = key [k];
key [k] = "";
}
if (num >= tmpMaxOfTagNumber) {
tmpMaxOfTagNumber = num;
}
if (num <= tmpMinOfTagNumber) {
tmpMinOfTagNumber = num;
}
j = 0;
}
else if (a == '\t') {
j++;
}
else {
key [j] += (char) a;
}
}
tmpNumberOfTag = i;
File.close();
}
catch ( Exception errorvalue ) {
errorvalue.printStackTrace();
}
}
}
class TiffFormatTest {
public static void main( String args[] ) {
AnalizeTiffFormat Tiff = new AnalizeTiffFormat();
Tiff.Initialize();
for (int i = 250; i <= 539; i++) {
if (Tiff.ExistTagNumberOf(i) == true) {
System.out.println(i + ": " + Tiff.IDFName(i));
}
else {
System.out.println(i + ": /");
}
}
}
}