ドリンクバーゲン会場

シンボリックリンク2011年10月07日 10時09分15秒

Linuxなどではよくつかわれているシンボリックリンクですが、
Windowsでも使うことができます。

現在作っているプログラムは、FTPでファイルの送受信とデータの整合性を確認するプログラムと、
システム管理用プログラムを別のプロジェクトで作成しています。
しかし、実際の運用では同じフォルダ上にプログラムを置くので、カレントディレクトリ直下にファイル受け渡し用
のフォルダを作成しやり取りを行うようにしています。

しかし、プロジェクトを分けているとファイルの受け渡しがそのままではできません。
そういう場合にシンボリックリンクを作成し、受け渡しができるようにします。

C:\A\DATA
C:\B\

Aのプロジェクトに作成しているDATAフォルダをBのプロジェクトから参照できるようにシンボリックリンクを作成します。

コマンドプロンプトを開き、シンボリックリンク作成用のコマンドを入力します。
mklink /d C:\B\DATA C:\A\DATA

mklink がリンク作成のコマンドで、そのあとの「/d」がディレクトリの作成になります。
次に、シンボリックリンクを作成したいフォルダを指定し、最後に実フォルダを指定します。

これでシンボリックリンクが作成しました。
エクスプローラーでC:\Bを見ると、DATAのフォルダがショートカットとして表示されます。

しかし、ショートカットと違うところは、DATAをダブルクリックして中を見ると、
内容は、C:\A\DATA内を表示しているのですが、アドレスはC:\B\DATAのままです。

プログラム内では、相対パスでカレントディレクトリ直下を指定していればよく、
完成後一つにまとめる際に変更が必要ないので利用しています。

SQLSERVERでの平均の求め方2011年01月24日 10時31分13秒

今回は、ちょっとした小技をひとつ!
データベース上に登録されているデータの平均点を取る方法です。

学校で使うシチュエーションとしては、成績を出す場合に平均点が必要になります。
100点満点で何点かですが、個人の平均もあれば、科目の平均、クラス単位での平均など、結構頻繁に使用することになります。

今回は、SQLで直接平均値を求める方法です。

学校では、SQLServerを使っているので、SQLServerで使える方法ですが、
他のデータベースでも、同じような感じでいけると思います。

まず、平均を求めるのは、AVG関数です。
SQL上でAVG関数を指定することで平均値を算出します。

データは下記のような形で考えていきます。
採点テーブル
学籍 科目 点数
A01 国語 75
A01 数学 77
A01 英語 48
A02 国語 48
A02 数学 55
A02 英語 48

学籍がA01の平均を求める場合のSQL文を作ってみたいと思います。

SELECT AVG(点数) as 平均 from 採点テーブル where 学籍 = 'A01'

SQL文はこんな感じでいけると思うので、実行してみます。
結果は下記のとおりです。

平均
-------
64

点数はintegerになっているので、小数点以下が切り捨てられ、
64になってしまいました。
小数1位まで表示を出したいので、このままでは使えません。
なので、まず小数の表示がでるようにSQLを修正します。

SELECT AVG(CAST(点数 as decimal(3,1))) as 平均
from 採点テーブル where 学籍 = 'A01'

decimalを使って小数点以下を表示させます。

平均
-------
64.727272

DecimalでCASTした結果、小数点以下が表示されましたが、
小数1位までの表示にしたいとおもいます。
四捨五入の関数であるROUNDを追加します。

SELECT ROUND(AVG(CAST(点数 as decimal(3,1))),1) as 平均
from 採点テーブル where 学籍 = 'A01'

ROUNDで表示する小数を1位に指定して実行しました。

平均
-------
64.7

いろいろと指定をしないと思うように表示できませんが、
面倒くさい気もしますね!

ブートの初期化2009年11月05日 10時56分50秒

無事Windows7にアップグレードを果たしたのですが、一つだけ解決しなければいけない問題が残っております。

それは、ブートメニューで、VaioではVistaとWindows7RCをデュアルブートで使っていました。
ほとんどの場合7RCで問題なく作業で来ていたので、Vistaはあまり使っていなかったのですが、Windows7にアップグレードするに当たり、RC版は必要なくなるので、その領域をデータ領域に戻し、そのうえでアップグレードを行ったのですが、ブートメニューだけは残った状態になっていました。

Vistaから、ブートの初期化の方法が変わっているようです。

ネットで調べたところ、インストールディスクから、「コンピューターを修復する」を選んで、なにやらコマンドをたたかないといけないようです。

*********************
bcdedit /export c:\bcd_Backup
c:
cd boot
attrib bcd -s -h -r
ren c:\boot\bcd bcd.old
bootrec \RebuildBcd
*********************

上記のコマンドを実行して、再起動したところ、ブートメニューは表示されなくなりました。

しかし、もっと簡単な方法ないもんでしょうか?

エクスプローラーで特定のフォルダを開く2009年03月07日 10時19分06秒

エクスプローラを使ってデータのコピーや削除などを行うことがよくあるのですが、私は基本的にDドライブをデータ用のドライブとして使っているので、エクスプローラを開くときにDドライブをデフォルトで選択した状態にしています。

エクスプローラのショートカットをクイック起動につくりプロパティを開くとエクスプローラのアドレスが表示されていると思います。

その後ろに” /e,d:\”と追加しています。
” d:\”だけでも開くのですが、フォルダツリーが表示されないので、フォルダツリーを表示させるために” /e”を追加しています。

もちろん他のフォルダを開きたい場合は、そのフォルダを追加すればOKです。
よく使うドライブやフォルダがある場合にはあらかじめ設定することをお勧めします。

エクセルでデータの並べ替え2008年12月18日 12時22分22秒

職場では、データの管理にエクセルを使っています。
生徒の情報や職員の情報なども含め、エクセルを使って作業を行うことが多いのですが、よく使う機能のひとつにデータの並べ替えがあります。
役職や、年齢などでデータをひとまとまりにしたい場合などに使うのですが、時々使い方を聞かれることがあります。

エクセル2007では、「データ」タブに「並べ替え」のボタンがあるので、クリックし、並べ替えの画面を表示させます。

たとえば、役職と年齢で並べ替えをしたい場合、
並べ替えの画面で、「列」に役職と年齢を選んで順序を指定します。
複数の並べ替え条件を指定する場合には、「レベルの追加」をクリックすると、新しい選択項目が表示されるので、指定を追加します。

画面では、役職の昇順で年齢の降順にデータを並べ替えるように設定しています。

データを管理する場合、ほとんどの方は先頭行を項目名にしていると思いますが、先頭行からデータが入っている場合には、
「先頭行をデータの見出しとして使用する」のチェックを外せば1行目から、並べ替えを行ってくれます。
ただし、列に項目名がないので、アルファベットでキーの指定をする必要があるので注意してください。