06月≪ 2008年07月 ≫08月

12345678910111213141516171819202122232425262728293031
2008.07/31(Thu)

Wordファイル互換の問題docx

提出されたレポートが開けない。Wordファイルなのだが、拡張子がdocxとなっている。
どうも新しいWordで作成して、そのまま提出してきたらしい。現在、使用しているのは
Word2000なので全然ダメ。

仕方がないので以下でFileFormatConverters.exeをダウンロード。

http://www.microsoft.com/downloads/details.aspx?FamilyID=941b3470-3ae9-4aee-8f43-c6bb74cd1466&DisplayLang=ja

これで、やっと古いWordでも読めるようになった。とはいっても利用している複数のパソコンにインストールしておかないと今後困るわけで雑用と混乱が増えただけ。こんなバージョンアップはいらないという典型かもしれない。
スポンサーサイト
15:38  |  コンピュータ  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2008.07/31(Thu)

消せないファイル2

以前に消せないファイルが出来て困ったことを書いた。その時はDOS画面からDelコマンドで消せた。

ところが、今度はUSBメモリースティック内に大量のゴミファイルやディレクトリができてしまい、削除不能。どれも文字化け状態でファイラーでもDOSでも消せない。

そこで以下からUnlockerをダウンロードしてインストール

http://ccollomb.free.fr/unlocker/

マイコンピュータから消したいファイルやディレクトリを指定するとマウスの右ボタンメニューに
「Unlocker」が現れるのでクリック。

今回は削除を指定しても、その場では消せなかったが「次回起動時に消しますか」というような表示で実際に再起動してみると削除可能なファイル群に変わっていた。

おかげでわずかな容量しか使えず、困っていたメモリースティックがよみがえった。
15:30  |  コンピュータ  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2008.07/23(Wed)

プリズン・ブレイク シーズン3

プリズン・ブレイク シーズン3をDVDで5巻まで視聴する。残りは2008年08月13日 vol.6~7リリースということらしい。

今までのシーズンに比べて短い。今までは20話だったのが、13話しかない。残りの2枚でシーズン3は完結となる。といっても本国ではすでにシーズン4の放映が決定されているとのことなのでストーリーはまだまだ続く。
10:47  |  未分類  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2008.07/19(Sat)

StringGridの行と列の挿入、削除

DelphiのStringGridで行の挿入、削除をしたいと思ったところサンプル蔵で
http://delfusa.main.jp/delfusafloor/archive/www.nifty.ne.jp_forum_fdelphi/samples/00488.html
行の挿入、削除を発見。

列の挿入と削除もしたいので、それを変更した。といっても、rowとあるところをすべてcolに変えただけ
だが、ちゃんと列の挿入・削除ができるようになった。

最初に MouseNowColとMouseNowRowの変数をグローバルで定義してマウスがクリックされたときのセルで削除や挿入が行われるようにしている。

非ビジュアルのポップアップを2個はForm1に配置して、固定列や固定行でマウス右クリックでポップアップメニューが表示され、そこで削除メニュー、もしくは挿入メニューをクリックすれば削除や挿入が行われる仕組み。


{・・・}
private
{ Private 宣言 }
public
{ Public 宣言 }
end;

var
Form1: TForm1;
MouseNowCol:integer;//マウスクリックされたときのセル列
MouseNowRow:integer;
implementation
{・・・}

//行の挿入
procedure insRows(theGrid:TStringGrid;InsAt,InsCount:Integer);
var
i:integer;
begin
if InsCount<1 then Exit;
if InsAt<0 then Exit;
with theGrid do
begin
RowCount:=RowCount+InsCount;
For i:=RowCount-1 downTo InsAt+InsCount do
begin
Rows[i].assign(Rows[i-InsCount]);
end;
For i:=InsAt to InsAt+InsCount-1 do
begin
Rows[i].clear;
end;
end;
end;

//行を削除
procedure DelRows(theGrid:TStringGrid;DelFrom,DelTo:integer);
var
i,buf,delItemCount:integer;
begin
if DelFrom>DelTo then
begin
buf:=DelFrom;
DelFrom:=DelTo;
DelTo:=buf;
end;
with theGrid Do
begin
if DelFrom>RowCount-1 then Exit;
if DelTo>rowcount-1 then DelTo:=rowcount-1;
if DelFrom delItemCount:=DelTo-DelFrom+1;
if (RowCount=FixedRows+1) or
(RowCount-delItemCount<=FixedRows) then //特殊なケース
begin
Rows[FixedRows].Clear;
if DelFrom<=RowCount-1 then delItemCount:=delItemCount-1;
end
else
begin
For i:=DelTo+1 to RowCount-1 do
begin
Rows[i-delItemCount].assign(Rows[i]);
end;
end;
RowCount:=RowCount-delItemCount;
end;
end;

//列の挿入
procedure insCols(theGrid:TStringGrid;InsAt,InsCount:Integer);
var
i:integer;
begin
if InsCount<1 then Exit;
if InsAt<0 then Exit;
with theGrid do
begin
ColCount:=ColCount+InsCount;
For i:=ColCount-1 downTo InsAt+InsCount do
begin
Cols[i].assign(Cols[i-InsCount]);
end;
For i:=InsAt to InsAt+InsCount-1 do
begin
Cols[i].clear;
end;
end;
end;

//列を削除
procedure DelCols(theGrid:TStringGrid;DelFrom,DelTo:integer);
var
i,buf,delItemCount:integer;
begin
if DelFrom>DelTo then
begin
buf:=DelFrom;
DelFrom:=DelTo;
DelTo:=buf;
end;
with theGrid Do
begin
if DelFrom>ColCount-1 then Exit;
if DelTo>colcount-1 then DelTo:=colcount-1;
if DelFrom delItemCount:=DelTo-DelFrom+1;
if (ColCount=FixedCols+1) or
(ColCount-delItemCount<=FixedCols) then //特殊なケース
begin
Rows[FixedCols].Clear;
if DelFrom<=ColCount-1 then delItemCount:=delItemCount-1;
end
else
begin
For i:=DelTo+1 to ColCount-1 do
begin
Cols[i-delItemCount].assign(Cols[i]);
end;
end;
ColCount:=ColCount-delItemCount;
end;
end;

//変数名やケース番号をクリックで行や列の挿入、削除の前段階のポップアップメニューを出す
procedure TForm1.StringGrid1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
aCol,aRow: Longint;
P: TPoint;
begin
if Button = mbRight then
begin
// セル位置の取得
StringGrid1.MouseToCell(X, Y, aCol, aRow);
if (aCol = 0) and (aRow>=2) then // ここで表示させたいセル位置か
// どうかを検査、この場合は列1,行2以上の場合のみ(番号行)
begin
P := StringGrid1.ClientToScreen(Point(X, Y));
PopupMenu1.Popup(P.X, P.Y);//行(ケース)のポップアップメニュー提示
end;

if (aCol>=1) and (aRow=0) then // ここで表示させたいセル位置か
// どうかを検査、この場合は行1、列1以上の場合(変数名行)のみ
begin
P := StringGrid1.ClientToScreen(Point(X, Y));
PopupMenu2.Popup(P.X, P.Y);//列(変数)のポップアップメニュー提示
end;
end;
MouseNowCol:=aCol;

MouseNowRow:=aRow;
end;


//行(ケース)削除
procedure TForm1.N17Click(Sender: TObject);
var
i,n: Integer;
begin
{ マウスの座標から現在のセル位置を取得します。 }
Delrows(stringGrid1,MouseNowRow,MouseNowRow);//行削除

//行(ケース)挿入
procedure TForm1.N18Click(Sender: TObject);
var
i,n: Integer;
begin
 //挿入
insRows(StringGrid1,MouseNowRow,1);//行挿入
end;

//列(変数)削除
procedure TForm1.N19Click(Sender: TObject);
var
i,n: Integer;
begin
Delcols(stringGrid1,MouseNowCol,MouseNowCol);//列削除
end;

//列(変数)挿入
procedure TForm1.N20Click(Sender: TObject);
var
i,n: Integer;
begin
insCols(StringGrid1,MouseNowCol,1);//行挿入
end;
11:44  |  Delphi  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2008.07/18(Fri)

DelphiのStringGridで右ボタン、ポップアップメニュー

DelphiのStringGridで行の削除や挿入、列の削除や挿入をしたいと考えた。

でも、その前に指定の行や列でマウスの右ボタンクリックでポップアップメニューが出て
削除か挿入かを選べるほうがよい。

で、ネット調べてコードを発見。ところがエラーが出てしまう。

非常に間抜けな話だが、Delphiの「standard」タブの非ビジュアルコンポーネントに「popupMenu」というのがある。しかも3番目。いつもはボタンだのmemoだの、editやMainmenuしか使っていなかったのでポップアップがこんな所にあるとは気がつかなかった。

さっそく、Form1に配置して右ボタンクリック、メニューデザイナでポップアップメニューを作った。
2つのpopupmenuを配置して固定行なら何とか、行と列でそれぞれ別のポップアップが出るようにした。


procedure TForm1.StringGrid1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
aCol,aRow: Longint;
P: TPoint;
begin
if Button = mbRight then
begin
// セル位置の取得
StringGrid1.MouseToCell(X, Y, aCol, aRow);
if (aCol = 0) and (aRow>=2) then // ここで表示させたいセル位置か
// どうかを検査、この場合は列1,行2以上の場合のみ(番号行)
begin
P := StringGrid1.ClientToScreen(Point(X, Y));
PopupMenu1.Popup(P.X, P.Y);//行(ケース)のポップアップメニュー提示
end;

if (aCol>=1) and (aRow=0) then // ここで表示させたいセル位置か
// どうかを検査、この場合は行1、列1以上の場合(変数名行)のみ
begin
P := StringGrid1.ClientToScreen(Point(X, Y));
PopupMenu2.Popup(P.X, P.Y);//列(変数)のポップアップメニュー提示
end;
end;
end;
18:07  |  Delphi  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2008.07/18(Fri)

Excelの非互換性

いつものように学生にExcelを開いて****をしてと指示していたら、どうも戸惑っている。

画面をみてみるといつものExcelではない。新しいバージョンらしいのだが、どうも要領がつかめない。マイクロソフトはファイルの互換性をなくしただけではなく、過去の経験・知識に関しても非互換性を進めたいらしい。

旧式のExcelと新式のExcelが混在した中で教育などしようものなら混乱が生じて、時間がいくらあっても足りない。結局、全員にフリーソフトのOpenOfficeを入れることにして、教育はOpenOfficeの表計算ソフトCalcに統一することに決めた。

ちなみに、Vistaに変わった学生の中には学内ネット接続が不可の者まで出てきた。Vistaの非互換性にも困ったもので、プリンタードライバなども全て新たに用意しなくてはならなくなった。

大した機能が増えるわけでもないのに、OSの入れ替えを強いて無駄な仕事やエネルギーを世界中にばらまいているようにしか思えない。
15:41  |  教育  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2008.07/15(Tue)

The Ruby Wayと最頻値

~Ruby道への招待~The Ruby Wayの目次をネットで見ていたら以下のものが目につく。

・データセットの平均値、中央値、および最頻値の計算
・分散と標準偏差
・相関係数の計算
・基数の変換
・乱数の生成
・高速化のためのキャッシング
・行列の操作

今は品切れかと思っていたら、 Ruby Way 第2版 Hal Fulton (著), 豊田 祐司 (監修), 株式会社クイープ (翻訳)価格:¥ 5,670 (税込) で2008/4に第2版が出たばかりだった。

Ruby本はたくさん買ったが、ついつい忙しさにかまけて勉強していない。

これには、最頻値が取り上げられている。

Delphiで最頻値を求めるプログラムを考えていたら、案外難しいことに気がついた。1変数ぐらいなら大したことないのだが、多変数だとたくさん配列を確保するしかない?!のだろうかとか疑問が生じてきた。

奥村晴彦氏の「コンピュータアルゴリズム事典」にも、岡本安晴氏の「Delphiで学ぶデータ分析法-プログラミングによる統計処理の実践的アプローチ」にも最頻値はなし。前者には幹葉図があるが、配列は決めうちのようだ。

ネットでも中央値を求めるアルゴリズムはたくさん見かけるが、最頻値はなし。いちおう、「Numerical Recipies in PASCAL」にはあったが、連続量の最頻値の推定値を求めるものらしい。プログラミングの極意とは自分でコーディングせずに他人のコードを再利用するというが、調べて歩くよりも自分でコーディングした方がはやいのかもしれない。
13:31  |  統計  |  TB(1)  |  CM(0)  |  EDIT  |  Top↑
2008.07/15(Tue)

RANDOM STREAMER

USBで乱数を発生させるRANDOM STREAMER。

http://www.ntl.co.jp/doc/db4/detail.php?num=2

http://www.ntl.co.jp/randomstreamer/prod/index.htm

パソコンで作り出す疑似乱数と違って、完全な乱数を生成するらしい。
オープン価格となっているが、28000円+税別という表記があったので3万円近いということか。
11:52  |  統計  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2008.07/04(Fri)

ボスニア・ヘルツェゴビナのメジュゴリエ(Medjugorje)での怪現象

Medjugorje

ボスニア・ヘルツェゴビナのメジュゴリエでの怪現象。

こんな事件があったとはまったく知らなかったが、YoutubeでMedjugorje、Miracleなどを
キーワードで検索すると、怪現象の映像を多数見ることができる。

気象学者、あるいは物理学者だとどんな説明をするのだろうか。映像が荒いのが難点だが、
複数の撮影者による映像が残っているのは珍しいかもしれない。
15:52  |  超常現象  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
2008.07/01(Tue)

ロールシャッハテストのパソコンソフト

ロールシャッハテストの得点整理や解釈を支援してくれるパソコンソフト。
購入する可能性は0だが、いちおう備忘のため書いておく。

http://www.ror-scan.com/index2.htm

http://www3.parinc.com/products/product.aspx?Productid=RIAP5S
15:58  |  未分類  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑
 | BLOGTOP |