STAP STAP

STAP = (動詞)スタップする、カシャカシャする(造語)
 

スポンサーサイト 

No. : --/--/--(--) --:--:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

あけましておめでとうございます 

No.321 : 2009/01/04(Sun) 15:16:47
明けましておめでとうございます。
旧年中は色々とお世話になりました。
2009年もよろしくお願いします。

ところで、2008年でホームページを更新した回数を数えてみて愕然としました。
学生で時間なんかたっぷりあるのになんだこの体たらくはww
これだから弱小は(ry
そういうわけで、2009年の抱負は「時間を有効利用して、充実したインターネット生活を送る」です。
なんだか不健康な抱負ですが、これを目標に頑張って生きたいと思います。


すでに正月休みの時間を有効に利用できてないわけですが…orz

リストから重複する値を取り除く 

No.320 : 2008/12/31(Wed) 02:51:32
List で保持しているデータに重複がある場合、それを取り除いて重複を無くすサンプルです。
色々な方法があるようですが、Dictionary クラスを用いたこのやり方はシンプルだと思います。
Dictionary クラスがハッシュテーブルであるから実現できるのですね。


public static void RemoveDuplicateKey<T>(List list)
{
var dic = new Dictionary<T, int>();
foreach (T temp in list)
{
dic[temp] = 1;
}
list.Clear();
foreach (T key in dic.Keys)
{
list.Add(key);
}
}


var はC#3.0 からの新機能・型推論ですね。
並び順は変わっちゃうかもしれません。

画像には必ず WIDTH 属性と HEIGHT 属性をつけましょう 

No.319 : 2008/12/27(Sat) 00:30:44
HTML において、画像を表示するためのタグとして IMG タグがあります。
このタグには WIDTH 属性と HEIGHT 属性があり、それぞれ読み込む画像の高さと幅を示します。
この属性は無くてもブラウザ(その描画エンジン)が画像を読み込んだ後に勝手に調節してくれるので問題ありません。
…と思いきや、WIDTH 属性と HEIGHT 属性が無いと困る場合があります。
それは画像を読み込んでいる最中です。
当たり前ですが、ブラウザは画像を読み込むまで高さと幅を知りません。そのためブラウザは画像を描画するためのスペースをどれだけ取ればいいのかもわかりません。読み込んでから初めてスペースをとるのです。
例えば、なぜか回線が糞重いとしましょう。早く光にしたいです、はい。
たとえブロードバンド回線だとしても読み込みには時間がかかります。
その間に記事に目を通すことがよくあります。たとえば個人のブログやニュースサイトなど。
そのときに WIDTH や HEIGHT が指定されていないとどうなるでしょう。
正解は「縦方向にどんどんと伸びていく」です。
画像を読み込んでる間に記事を読もうとしても記事がどんどんとしたに行ってしまって読めません。
「ふむふむ(スクロール)ふむふむ…(スクロール)ふむ…(スクロール)……あ゙ーーーー!!!11」
となるわけです。俺だけですかそうですか。
なので皆さん、IMG タグには必ず WIDTH 属性と HEIGHT 属性をつけましょう。
あと ALT 属性もあると尚良しです。
ちょっとしたことでサイトの利便性・可読性が上がります。

 

No.318 : 2008/12/25(Thu) 22:15:32
以前「Microsoft が全世界の学生にMS謹製ソフトの無償提供を行う」というニュースを耳にして超うらやましかったんですが、長野高専にも来ました。
ダウンロードできるソフトウェアは

・VisualStudio 2003 Professional Edition 日本語版
・VisualStudio 2008 Professional Edition 日本語版
・Expression Studio (Expression Web, Expression Blend, Expression Media, Expression Design) 日本語版
・Windows Server 2008 Standard Edition 日本語版
・SQL Server 2008 Developer Edition 日本語版
・XNA Game Studio 2.0 英語版

らしい。なにこれ超有りがたいんですけど。
でも色々と制限があって

・ドリームスパークで取得したソフトウェア製品は個人利用のみ
・ドリームスパークを通じて製品を取得した学生は、その学生が所有するデバイスに1コピーをインストールすることができ、所属する教育機関で履修する授業の学習や非商用の研究、デザイン、開発、テスト、デモンストレーションにソフトウェアを利用することが可能
・ドリームスパークを通じて取得した製品の商用利用は不可。その他、学内でのITインフラストラクチャ利用なども付加
・CAL(クライアントアクセスライセンス)も無し

最後の CAL ってのがよくわからなかったからググってみるとどうも Windows Server へアクセスするときに色々と必要になるものらしいね。マンドクセ)('・A・`)(

あと、どの範囲で使えるのかも気になる。「非商用の開発」ってのだけを抜き出すとフリーソフトを作って配布するのはOKなのかな?たとえばそれをカンパウェアにした場合は?DVDなどの媒体に記録して配布する場合は商用利用?などなど。
そしていつまで使えるの?卒業しても使える?(ダウンロードとインストール自体はかなり速い段階でできなくなりそう)

また、ダウンロードも1回のみ、アクティベーションも1回のみ、とかなりシビアな制限が付いてます(らしいです)。既にこれらの制限のせいで躓いている人がいて「ダウンロードに失敗したからやり直そうとしたら『ダウンロード回数が制限値に達しました』と言われてダウンロードできなくなった」「OSがクラッシュしたので再インストールしようとしたら認証できなかった」などの問題が発生しているようです。

うーん、正直よくわからんなぁ。
Windows Server 2008 は嬉しいけどパソコンが古いとドライバとか無さそうだし、CAL もあるし、VisualStudio も俺くらいのレベルだったら ExpressEdition で十分だからなー。
でも単体テスト機能は嬉しいかも。

マーシャリングではまる 

No.317 : 2008/12/20(Sat) 17:11:29
今 Sinku.dll を C# から使おうと努力してるんですが…
Sinku.dll はネイティブで書かれた DLL ですから、マネージド環境から使おうと思ったら
一工夫いるわけです。
まぁ C# のシの字くらいまでしか分かってない俺が挑戦したわけですが、マーシャリングで
はまりましたorz

Sinku.dll には FILE_INFO という構造体があって、その中に動画情報が格納されます。
FILE_INFO 構造体は

typedef struct {
char name[STR_MAX_LENGTH]; //IN : ファイル名
int type; //IN/OUT : ファイル種別
char container[32]; //OUT : コンテナ名(ある場合のみ)
char error[STR_MAX_LENGTH]; //OUT : エラー(ある場合のみ)
char video[VA_MAX_STREAM_COUNT][STR_MAX_LENGTH]; //OUT : 映像の詳細
int video_count; //OUT : 映像の詳細の数
char audio[VA_MAX_STREAM_COUNT][STR_MAX_LENGTH]; //OUT : 音声の詳細
int audio_count; //OUT : 音声の詳細の数
char extra[EX_MAX_STREAM_COUNT][STR_MAX_LENGTH]; //OUT : 付属情報
int extra_count; //OUT : 付属情報の数
double playtime; //OUT : 再生時間(秒)
unsigned __int64 size; //OUT : ファイルサイズ
} FILE_INFO;


こうなっています。
マーシャリングではまったのが 3 つある二次元配列。
ここには最大 10 個のビデオとオーディオのストリームに関する情報が格納されます。
extra は MPEG2-TS かなんかに使うみたいで、最大 5 個です。
これをどうやってもクリアできない。

char の一次元配列(要するに文字列)は

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = STR_MAX_LENGTH)]
public string Name;

などとすればOKです(STR_MAX_LENGH は Sinku.h に書いてありますが 512 です)。
でも二次元配列はさっぱり。
ArraySubType に Unmanaged.LPTstr とか色々入れてみましたが、Type なんちゃら Exception でそんなの使えないぞゴルァとか深刻そうな Exception 等が発生してお手上げ状態。
あきらめて以下のようにしました。

[MarshalAs(UnmanagedType.ByValTStr, SizeConst = STR_MAX_LENGTH)]
public string Video1;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = STR_MAX_LENGTH)]
public string Video2;
・・・
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = STR_MAX_LENGTH)]
public string Video10;

強引な力技です。配置さえあってりゃいいんですよ!HSP で構造体を扱うときもそうでした。

まぁコンテナ名や長さの取得はできましたが上に書いた Video や Audio の値は「C空VIDEO」や「C空LAME」などという謎文字列になってしまったので・・・謎です。

まぁ今回は PlayTime が取得できれば良しなのであきらめます。
最後に、「続きを読む」に俺が書いたクソコードを提示しておきます。
C# は深いなぁ。どなたか分かる方いらっしゃいましたら教えてください。


黒羽さんに Sinku.dll を .NET で書き直してもらうのが一番早(ry
▼... Read more ≫
BACK | HOME | NEXT

calendar

S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
09« 2017/10 »11

Profile

エイチム

Author:エイチム
programmingに
興味を示す高専生

Diary

Recent Comments

Archives

Category

Link

このブログをリンクに追加する

RSS


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。