2010年8月6日金曜日

.NETマルチスレッドプ

2010年8月6日

1:スレッドの実行と同期
  • 競合状態
  • Monitor.Enter・Monitor.Exitメソッド
  • lock・SyncLockステートメント
  • 静的メソッドの同期
  • ロック専用のオブジェクト
  • MethodImplOptions.Synchronized
  • デッドロック
参照URL

2:マルチスレッド プロシージャのパラメーターと戻り値
参照URL

2009年10月6日火曜日

1

限らず
リージョンコード【region code】
DVDプレーヤー ソフト
リアルプレーヤー【RealPlayer】
コマ落ち【おち】
なめらか【滑らか】
すい‐じ【炊事】
はんじゅく‐たまご【半熟卵/半熟玉子】
ドラッグ【drag】マウスの操作
決まり切る:当然のことになっている
喋れば喋るほど
買いに行く
引越し先【さき】、引越し場所
~を気がします →そのように感じられる。そのような気になる。
ラボラトリー【laboratory】→研究室
取り込む→外に出してある物を取って中に入れる。とりいれる。
血液型【けつえきがた】
星座【せいざ】
占い【うらない】
めっちゃいい→とても、関西弁
おひつじ座(牡羊座、Aries)
おうし座(牡牛座、Taurus)
ふたご座(双子座、Gemini)
かに座(蟹座、Cancer)
しし座(獅子座、Leo)
おとめ座(乙女座、Virgo)
てんびん座(天秤座、Libra)
さそり座(蠍座、Scorpio)
いて座(射手座、Sagittarius)
やぎ座(山羊座、Capricornus)
みずがめ座(水瓶座、Aquarius)
うお座(魚座、Pisces)
汎用性を考え、他のプロジェクトへの対応や、臨検値以外の項目への対応も行えるように
更新するページタイプやフィールドはノーチェックにしています。すなわち、
LABExportから送信されるデータをノーチェックで更新いたしますがよろしいでしょうか?
開示状態でも更新する予定ですが、プロジェクトによっては修正理由が求められる場合があると思いますが、
更新履歴ファイルへは何も記載しなくてもよろしいでしょうか?更新履歴ファイルは本システムから書き込む場合、
更新者名が空欄となっておりわかりますので、私は修正理由が求められる場合も記載は必要ないと考えます。
治験が中止の場合にも更新をするつもりですが、問題はないでしょうか?(固定の場合のみ、エラーとしています。)
更新後にリスト情報ファイルの更新時刻は更新しますが、エラー数は更新しません
(エラー数の更新は処理が複雑となるため)。そのため、Site2003の起動時にエラー数が実際とは異なってしまう場合がありますが、構いませんでしょうか?
臨床検査値の異常変動の有無はMPIでは判断出来かねるため、更新後、医療施設側でチェックをしてもらう必要があると思いますが、その旨をプログラム終了時に表示させた方がよろしいでしょうか?なぜなら、プログラムの実行をした時点で臨床検査値が更新されるので安心して、チェックを忘れはしないかと懸念したためです。
昨日の打ち合わせ時にご指摘をいただきました点を
修正しました。
・出力ログのメッセージをフィールド単位ではなく、ページ単位とする
・印刷ダイヤログをwindows標準を用いる
・フローチャートを記載する
フローチャートについては、詳細に記載するとページを要しますし、
わかりにくくなりますので、機能仕様書には処理概略を記載しました。
詳細につきましては、(機能仕様書に合わせて修正していく予定の)
システム仕様書に記載いたしましたので、添付ファイルをご覧下さい。
ご確認よろしくお願いいたします。
また、質問が何点かございまして質問表(添付ファイル)にしています。
ご回答をお願いいたします。
以上、どうぞよろしくお願いいたします。
大江
【添付ファイル】
・臨床検査値更新システム-機能仕様書__大江.doc
・臨床検査値更新システム-システム仕様書_大江.doc
・臨検値システム質問表090929.xls
ご指摘いただきました点を修正いたしました。
再度、送信します。
ご確認ください。
また、これで大きな問題がなければ朱さんの仕様書にマージしようと
思います。用語の統一や章立ての変更等がありますので、
マージ後再度、レビューいただければと思います。
今度の設計では、汎用性を考えており「臨床検査値」のページ番号をプログラムで固定しない方法を考えています(機能仕様書にも記載いたしましたが、プログラム初回起動時に運用者に臨床検査値のページを選択してもらう画面を用意する予定です)。
サンド対応のみであれば抽出プログラムに「臨床検査値」ページを8,9を決めうちにしておけば臨床検査値のログのみを抽出できると思いますが、それだとやはりプロジェクト毎に修正が必要になりそうです。どちらの対応がよろしいでしょうか?
もしくは、他に臨床検査値のみ(署名ページなど自動設定されるページは除去)抽出する方法があればご教授ください。よろしくお願いします。
くしゃみ、
鼻づまり
目の充血、じゅうけつ
流涙、りゅうるい
かゆみ
杉、すぎ
センスがわからない
格差のところに黄色をつけている
断念でした、だんねん
印刷物が多くなった、いんさつぶつ
単一民族国家、たんいち、こっか
補正、ほせい
積極、せっきょく
消極、しょうきょく
大学時第二国語は中国語を選んだ
だいたい似てるじゃないですか
DVD再生できなくなる
患者が変えると画面を切り替えるする
そこまで気がしてない
自動入力項目:
このぺーじでは自動入力項目があるので、他のページで入力したらこの項目は自動的に記入する。
なお、Visit単位で、たとえ、このVisit2で自動入力項目あるページ1、Visit2で他のページ入力しても、
ページ1の自動入力項目が自動的に記入する。でも、Visit3のページで入力したら、
Visit2のページ1の項目が記入しないということです。
臨床検査ページ:
プログラムを開くと臨床検査頁設定の画面が出てくる、この頁では臨床検査頁の設定しかありません。
時刻、じこく
階層、かいそう
Site2003.exeの一階層うえのフォルダを選択する
親フォルダ
こね
資産、しさん
労働力、ろうどうりょく
質問の意図が不明で、申し訳ありません。→いと、不明のに(×)
シナリオ→脚本(きゃくほん)
大笑い、おおわらい
稼動140時間は4時間をひいてしまったら、大丈夫でしょうか。
決めうちに
貧困層、ひんこんそう
富裕層、ふゆうそう
歩行、ほこう
起こりえない
Excel1はエグゼと同じフォルダであれば、テンプレートファイルが消えてしまった
直さなくても良い
格差の部分を黄色をつける、かくさ
センス
レジストリ、registry
コンポーネント
その旨を操作マニュアルに記載した方がよいでしょうか?、むね

2009年9月27日日曜日

1

~ずくめ
全部,清一色
【名】+
試験には合格するし、恋人はできるし、いいことずくめです。
~ずにはおかない
肯定会…,一定要,非…不可
【動‐ない形】+
そんなことをしてみろ。痛い目にあわせずにはおかないぞ。→做试试,肯定会让你吃苦头
~たりとも
即使…也,连
【名】+
もう時間がない。1分たりとも無駄にできない。→一分钟也不能耽误
~つ~つ
又…又,一会儿…一会儿
【動-ます形】+つ+【動-ます形】+つ
ラッシュアワーの車内で、乗客は押しつ押しつしている。→挤来挤去
~といったら(ありはし)ない
极了,没有比…更
【動-辞書】/【い形‐い】/【な形‐(だ)】/【名‐(だ)】+
このところ残業続きで疲れるといったらない。
~とは
竟然,居然
【動・い・な・名】の普通+
こんな失敗をするとは、我ながら情けない。→不可原谅
コーヒー1杯で2000円とは、いくらなんでも高すぎる。→也太贵了吧
~ともなく/ともなしに
漫不经心,无意识地
【動‐辞書形】+
見るともなくぼんやり外を見ていたら、不意に大きなグラスが飛んできた。→ぼんやり(发呆)
~ともなると/ともなれば
一到…,一旦…
【動‐辞書形】/【名】+
急に外国へ行くともなると、準備が大変でしょう。
~ないまでも
即使不…,虽然不
【動‐ない形】+
彼は犯人だと断定できないまでも、いろいろと怪しいところがある。→あやしい
~ないものでもない
不是不,未必不
【動‐ない形】+
難しいけれど、何とか工夫すれば、できないものでもないだろう。→也不是没有可能
~ながらに
一边…一边,保持…状态
【動‐ます形】/【名】+
インターネットを活用すれば、居ながらにして世界中の情報を手に入れることができる。
~なくして(は)
如果没有
【名】+
人々の信頼なくして、リーダーの務めは果たせない。→はたす(起作用)
~なしに(は)
不…,没有
【名】+
ノックなしにわたしの部屋に入らないでください。→敲门
~ならでは
只有…才有的,除非…没
こんな新しい発想はあのデザイナーならではのものです。
お袋→おふくろ(母亲)
~なり~なり
或则,也好
【動‐辞書形】/【名】+
勉強ばかりしていないで、たまには外に遊びに行くなりスポーツをするなりして、気分転換をしたらどうですか。
ジュースなりコーラなり、お好きなものをどうぞ。
~に(は)あたらない
不必,用不着,不值得
【動‐辞書形】/【名】+
彼の実力を考えると、今回の彼の受賞も驚くにあたらない。→不用大惊小怪
~に即して/に即した→そくす
根据,符合
【名】+
違反者は、法律に即して処分されます。
実情に即した対応策を検討いたします。
~に足る→たる
值得,足以
【動‐辞書形】/【名】+
あの人は信頼するに足る人物です。→じんぶつ
~に足らない/に足りない
不值得,不足以
宇宙の大きさを思うと、今の私の悩みなんて取るに足らないものだ。→简直不值一提
~にひきかえ
相反,不同
【動・い・な】の名詞修飾型+の/【名】+
先月は食料品の売り上げが著しく伸びたのにひきかえ、衣料品の売り上げが落ち込んだ。→いちじるしい(显著的)
~にもまして
更加,超过
【動・い・な】の名詞修飾型+の/【名】+
試合に勝ったのにもまして、全力を出しきれたことを誇りに思う。→出し切る(用尽)、ほこる(自豪)
~ばこそ
正因为,正是
ーば形+こそ
優勝できたのは、チーム全員の協力あればこそだ。
~ばそれまでだ
就此完了,没用了
【動-ば形】+それまでだ
どんなにいい機械があっても、使い方がわからなければそれまでだ。
~べからざる
不应该,不许
【動‐辞書形】+
成人指定映画は青少年の見るべからざるものです。→せいしょうねん
~べからず
不要,禁止
【動‐辞書形】+
芝生に立ち入るべからず。→しばふ(草坪)、たちいる(进入)
~べく
为了,想
【動‐辞書形】+
恩師に会うべく、久しぶりに母校を訪れた。→ぼこう、おとずれる
試験に合格すべく、皆一生懸命に勉強している。
~まじき
不应该,不可以
【動‐辞書形】+
弱い者をいじめるなんて、許すまじきことです。→よわいもの、いじめる(欺负)
~まで(のこと)だ
只好,只有
【動‐辞書形】+
留守なら仕方がない。ここで帰ってくるのを待つまでだ。→しかた
~まで(のこと)だ
只是…罢了,不过是…而已
君にはあまり関係ないかもしれないが、念のため知らせたまでのことだ。
~めく
带有…的意思,变成…
【名】+
野山が薄緑になり、すっかり春めいてきた。→うすみどり
~もさることながら
自不必说,不言而喻
【名】+
両親の意向もさることながら、子ども自身が有名校にあこがれている。→あこがれる(向往)
~をおいて
除了
【名】+
彼をおいて議長適任者はいない。→ぎちょう(主席)、てきにんしゃ
~を禁じ得ない→きんじる(禁止)
禁不住,不禁
【名】+
彼女の身の上話を聞いて、涙を禁じえなかった。→み(身世)、うえばなし
~をもって
以…,凭
【名】+
彼は人一倍の努力をもって優勝カップを手にすることができた。→人一倍(比人更加),杯
~をもって

本日の営業は午後7時をもって終了いたします。
~をものともせずに
不顾,不怕
【名】+
度重なる失敗をものともせずに、宇宙開発計画が進められている。→たびかさなる(反复)
~を余儀なくされる/を余儀なくさせる→よぎない(不得已)
迫使,不得已
【名】+
不況のため労働者は賃金カットを余儀なくされてしまった。→ちんぎん(工资)
~をよそに
不顾,无视
【名】+
住民の不安をよそに、原子力発電所の建設工事が始まった。→げんしりょく、はつでんじょ
~んがため(に)/んがための
为了要
【動-ない形】+,する→「せんがため」
試験に合格せんがため、この1年間努力を続けてきた。
~あっての
正因为…才,有了…之后才有
【名】+
日々の練習あっての勝利だ。→ひび(平日,每天)
~からある/からの
足有,竟有
【名】+
その男は30キロからある荷物をひょいと肩に担いだ。→ひょいと(随便,轻松)、かつぐ
~こととて
由于,因为…所以
【動・い・な・名】の名詞修飾型+
何も知らぬこととて、失礼をいたしました。→因为全然未知
「‐ない」→「‐ぬ」
~しまつだ
结果,到了…的地步
【動・い・な・名】の名詞修飾型+
弟は昔から両親に手を焼かせていましたが、ついに家出をして、警察のやっかいにまでなるしまつです。→手を焼く(感到为难)、ついに(终于)、いえで、やっかい(麻烦)
~だに
即使,连…也
【動-辞書】+
科学の力で同じ遺伝子を持つ人間を造り出すなど、考えるだに恐ろしいことだ。→いでんし(基因)、おそろしい(可怕)
~だに
就连…也
【名】+
人類が月に行ける日が来るなんて、100年前には想像だにしなかったことだ。→じんるい、つき(月亮,一个月)
夢にだに思わなかった。→做梦都想不到
~たる
作为
【名】+
教師たる者、学生に対して常に公平であるべきだ。→「-べき」(应该,理应)
~でなくてなんだろう/でなくてなんであろう
不是…又是什么呢
【名】+
自分の命を犠牲にして多くの人を救ったあの男が英雄でなくてなんだろう。→ぎせい、すくう、えいゆう
~てやまない
非常,衷心
【動-て形】+
お二人の幸せを祈りしてやみません。
~と相まって→あいまって
与…相辅相成,与…想配合
【名】+
環境破壊と相まって、水や空気の汚染が進んでいる。→はかい、おせん
~というところだ/といったところだ
大致上…的程度
【動-辞書形】/【名】+
ゴールデンウイークといっても、我が家ではせいぜい日帰りで郊外に出かけるというところだ。→わがや(我家)、せいぜい(充其量)、こうがい、ひがえり
~ないではおかない
不能不,一定
【動-ない形】+
今度こそ、本当のことを言わないではおかないぞ。
~にかたくない
不难,很容易就
【動-辞書形】/【名】+
子どもを亡くした親の悲しみは、察するにかたくない。→かなしみ、さっする(推测,谅解)
~にして
只有…才,就连
【名】+
この味は経験を積んだプロの料理人にしてはじめて出せる味だ。→はじめて(初次,才)
~にして
同时,既是…又是
彼は出版社の社長にして詩人でもある。→しゅっぱんしゃ、しじん
~の至り
非常,…之极
【名】+
こんな立派な賞をいただきまして、光栄の至りです。
若気の至り→わかげ(年轻朝气)、过于幼稚
~の極み→きわみ
…之极,极尽
【名】+
徹夜続きて、疲労の極みに達している。→たっす
ひとり~だけでなく/ひとり~のみならず
不仅,不只
ひとり+【動・い・な】の名詞修飾型/【名】+
リーさんのかかえている問題は、ひとり彼女が悩んでいるだけでなく、ほかの留学生たちにも共通の問題である。→抱える(承担)
~を皮切りに(して)/を皮切りとして→かわきり
以…为开端,自从
【動-辞書/た形】/【名】+
朝の連続ドラマに主演したのを皮切りに、彼女はスターへの道を歩み始めていた。→れんぞく、しゅえん、あゆみ(步伐)
競技場→きょうぎじょう
さんざん→狠狠地,糟糕
徒歩→とほ
お得です。→合适,合算
品切れ、しなぎれ
売り切れ、うりきれ
売り切る、うりきる
ダム、水库
婿、むこ

2009年9月18日金曜日

リソースファイル

.netには埋められたイメージファイルの使用
Formから、一度イメージファイルをインポートする、.resxファイルにバイナリ形式で保存され。
ソリューションファイル閉じて、元イメージファイルを削除する。
リソースファイルのアクセス
vs2003以前
http://dobon.net/vb/dotnet/programing/bitmapresource.html
vs2005以降
http://dobon.net/vb/dotnet/programing/resourcemanager.html
注:エグゼファイルが埋まられない。(埋まる前、圧縮して、埋まられるようになった)
リソースを取得する
http://dobon.net/vb/dotnet/programing/vsresource.html#section8
string txt = Properties.Resources.TextFile1;
バイナリファイルで保存する
リソースファイルにtextファイルを追加する、リリースするとtextファイルが見えなくした。
Unlha32.dllを使って書庫を展開する方法(lzhファイルの解凍)
http://dobon.net/vb/dotnet/links/extractarchive.html
コントロールの位置や大きさを自動的に調整可能にする
コントロールのAnchor属性を設定する。
コントロールのフォーカスの設定
コントロールのtabIndexに関係がある
単にMe.button2.Focus()→うまくゆかない
Me.ActiveControl = Me.button2→OK
あるいはコントロールのtabIndexを直す
vb6であれば、変数の定義は
Dim I,j as Integer→×
Dim I as Integer,j as Integer→○
vb6であれば、引数が既定はByRef
VB6では、非クライアントエリアのフォントの情報取得
tagNONCLIENTMETRICS
SystemParametersInfo
dictionaryの使い方(.net2.0のみ)→.net3.5ならdic.values(0)ができるように
http://www.atmarkit.co.jp/fdotnet/dotnettips/429dictionary/dictionary.html
SortedDictionary→ソートできる
KeyValuePair
C#変数
float f =1.23f;
long l =45L;
int m=0x1345;
Visual Studioのソースファイルのエンコード
Visual Studio .NET 2002/2003(以降、VS.NET)の日本語版で作成したソース・ファイルの多くは「シフトJIS」でエンコードされており、
逆にVisual Studio 2005(以降、VS 2005)のソース・ファイルは基本的に「UTF-8」でエンコードされている。
変更すれば、
各ページで[保存オプションの詳細設定]で「日本語シフト JIS」を選んで。
Visual Basic 6.0 と Visual Basic .NET とのフォルダやファイルの操作方法の違いについて
http://msdn.microsoft.com/ja-jp/library/cc440853.aspx
Visual Basic 6.0 でフォルダやファイルを作成する場合、
FileSystemObject の CreateFolder メソッド、CreateTextFile メソッドを使用します。
実装コードは以下のとおりです (事前に、[プロジェクト] メニューの [参照設定] で「Microsoft Scripting Runtime」にチェックを付けておく必要があります)。
CopyFolderがある
一方、Visual Basic .NET で実装する場合、
Directory クラスの CreateDirectory メソッドや File クラスの Create メソッドを使用します。実装コードは以下のとおりです。
フォルダのコピーメソッドがない。
My.Computer.FileSystem.CopyDirectoryがある。
データの暗号化
http://msdn.microsoft.com/ja-jp/library/as0w18af.aspx
暗号化と復号化のためのキーの生成
http://msdn.microsoft.com/ja-jp/library/5e9ft273.aspx
ファイルアクセス基礎
TextReader (抽象クラス)
StringReader
StreamReader
TextWriter (抽象クラス)
StringWriter
StreamWriter
If I am writing a routine that needs to read Text, generally I will write it
based on a TextReader. This way I can pass it either a StreamReader or a
StringReader & the routine itself is non the wiser.
StreamReader は、特定のエンコーディングの文字を入力する場合に使用します。
他に指定がない場合、現行システムでは StreamReader は ANSI コード ページではなく、既定の UTF-8 エンコーディングに設定されます。
StringReader は、 文字列から読み取る
BinaryReader クラス は、プリミティブ データ型を特定のエンコーディングのバイナリ値として読み取ります。 (保存しても、普通に中身が見えない。)
BufferedStream クラス は、他のストリームに対する読み取り操作および書き込み操作にバッファリング層を追加します。このクラスは継承できません。 (一時的保存する。他のStreamと一緒使う、いい効率)
MemoryStream クラスは、バッキング ストアとしてメモリを使用するストリームを作成します。
FileShare 列挙体 は、同一のファイルに対して他の FileStream オブジェクトが保有できるアクセスの種類を制御する定数を格納します。
読み取り専用ファイル、読み取り以外のアクセスできない。必ず属性を解除する
// -----------------------------------------------------------------------------
///
/// 指定したファイルを削除します。

///
/// 削除するファイルまでのパス。
/// -----------------------------------------------------------------------------
public static void DeleteFile(string stFilePath) {
System.IO.FileInfo cFileInfo = new System.IO.FileInfo(stFilePath);
// ファイルが存在しているか判断する
if (cFileInfo.Exists) {
// 読み取り専用属性がある場合は、読み取り専用属性を解除する
if ((cFileInfo.Attributes & System.IO.FileAttributes.ReadOnly) == System.IO.FileAttributes.ReadOnly) {
cFileInfo.Attributes = System.IO.FileAttributes.Normal;
}
// ファイルを削除する
cFileInfo.Delete();
}
}
演算子
論理 AND
優先順
&


論理 XOR
^

論理 OR

BinaryReaderのアクセス
BinaryReader binReader =
new BinaryReader(File.Open(fileName, FileMode.Open));
while (binReader.PeekChar() != -1)
{
aspectRatio = binReader.ReadSingle();
lookupDir = binReader.ReadString();
autoSaveTime = binReader.ReadInt32();
showStatusBar = binReader.ReadBoolean();
string s = binReader.ReadString();
}
using (BinaryWriter binWriter =
new BinaryWriter(File.Open(fileName, FileMode.Create)))
binWriter.Write((float)aspectRatio);
binWriter.Write((string)lookupDir);
binWriter.Write((int)autoSaveTime);
binWriter.Write((bool)showStatusBar);
プログラムの処理に「同期」と「非同期」があります。
「同期」は、処理をしたら結果が返ってくるまで待って次の処理を実行していきます。
「非同期」は、処理をしたら結果を待たずに次の処理を実行していきます。
シリアル化 と 逆シリアル化
http://smdn.invisiblefulmoon.net/programming/netfx2/overview/serialization/
http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%A9%E3%82%A4%E3%82%BA
逐次化
public、protected、internal、private、protected internal(Public、Protected、Friend、Private、Protected Friend)の違い
http://dobon.net/vb/dotnet/beginner/accessibilitylevel.html

2009年8月25日火曜日

コレクションの列挙(IEnumerable, IEnumerator)

http://smdn.invisiblefulmoon.net/programming/netfx2/overview/enumeration/
App.path の代替
configfile = My.Application.Info.DirectoryPath & "\config.txt"
http://iijima.auemath.aichi-edu.ac.jp/pw/programming/pukiwiki.php?VB6%A2%AAVB2008
VB.NET: ByRef パラメータにリテラル値を渡す
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard48.htm
PDF以外のソフト
http://homepage3.nifty.com/e-papy/o1.html#s3
ファイルのプロパティ→BuildAction プロパティ
http://msdn.microsoft.com/ja-jp/library/0c6xyb66(VS.80).aspx
Visual SourceSafe6.0 < Visual SourceSafe2005
AndAlsoとOrElse
Microsoft.Office.Interop.Excel.dll→Office PIAである(Officeインストール時インストールことができる)
Dim chA As Char→vb.netではCharの使用方法
chA = "A"c
C#:n=a>b?a:b;
b, a, b) ">vb.net:n = If(a > b, a, b)
例外処理
http://architect360.apricot-jp.com/300/post_20.html
例外は基本的にシステムのエントリポイント(アプリケーションを起動するところ)で捕捉し、例外が発生したらそれ以降の処理は中断して画面にメッセージを表示する
例外が発生してもリトライ、スキップ、修正など特別な処理を行う場合は、例外が発生する可能性がある箇所にTry~Catch句を書き、その例外が発生した時の処理をCatch句の中に書く。
//メッセージ表示
System.Windows.Forms.MessageBox.Show(e.Message, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Stop);
ListViewコントロール
http://akademeia.info/index.php?VB.NET%2F%A5%B5%A5%F3%A5%D7%A5%EB%2F%A5%B3%A5%F3%A5%C8%A5%ED%A1%BC%A5%EB%2FListView
http://www.atmarkit.co.jp/fdotnet/dotnettips/258listviewadd/listviewadd.html
RichTextBoxコントロールのフォント設定について
https://www.grapecity.com/japan/support/search/faqcontent.asp?id=24117
String.split()
デフォールトではCharで区切る。直接ストリングを入れたら、""(0)→ストリングの先頭Charで区切る
String.split(new String(){""},None/Remove)→Removeの場合、空の文字列を含む配列要素が格納されません。
Strings.Split(input string,String)→文字列でも区切られる。
s1 = System.Text.RegularExpressions.Regex.Split(strText, "\r\n");
String.Trim
Charでトリムする。あるいはCharの配列、全て削除する。
直接ストリングを入れたら、""(0)→ストリングの先頭Charしか削除しない。
正しいシグネチャを持つ、アクセス可能な 'Main' メソッドは、'' に見つかりませんでした。
プロジェクトに Public Sub Main プロシージャを定義します。クラス内で定義する場合にだけ Shared として宣言します。
JAG配列
http://www.asahi-net.or.jp/~ef2o-inue/vbnet/sub13_09_010.html
http://d.hatena.ne.jp/fyts/20071104/array
structureとclass
①structures are value typed where as classes are refernce typed
②Class can be inherited But Structure can't be inherited
③In structures we cannot initilase the variable during the declaration while in classes we can
http://msdn.microsoft.com/ja-jp/library/2hkbth2a(VS.80).aspx
List/ArrayListのコピー
Listの格納したオブジェクト関係がある。Valueタイプなら、List.Cloneができる。Refタイプなら、List.Cloneできない。
命名は明確的、意味がわかりやすくて
例え、InfoContainer→Containerは容器の意味である、Form、Panelみたいなもの
Collection→集合の意味である、だれの属性として使っている。例え、table.Rows→Collection
Collectionを実装するとImplements Ienumerableが必要である。
例え、Class A Inherits ArrayList→クラス本来はArrayListである、クラス内に他のArrayListの定義は必要ない。
コントロールTag プロパティ
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.tag.aspx
dictionary とhastable、hashset違う
http://tenmon.g.hatena.ne.jp/waka0529/20090203/1233642871
区別:
①この場合は KeyNotFoundException がはしる。
HashTable クラスを使用した場合、Dictionary とは違ってエラーを返さず null となる。
②hastableで検索が早い
③dc(key)戻り値はvalueのタイプ、ht(key)の戻り値はobject
同点:
①keyとValueの形式にデータを保存する.key重複できない、keyはnullできない
// Dictionaryクラスによる単語テーブル
Dictionary dictTable
= new Dictionary();
// 単語が未登録なら追加してから表示
if (!dictTable.ContainsKey(word)) {
dictTable.Add(word, null);
Console.WriteLine(word);
}
}
// HashSetクラスによる単語テーブル
HashSet hsTable = new HashSet();
foreach (string word in lincoln.Split(' ')) {
// 単語を追加。未登録なら表示
if (hsTable.Add(word)) {
Console.WriteLine(word);
}
Visual Studio 2005ウィンドウ
Visual Studio 2005 コマンドウィンドウ
http://wikiwiki.jp/hirase/?Visual%20Studio%202005%20%A5%B3%A5%DE%A5%F3%A5%C9%A5%A6%A5%A3%A5%F3%A5%C9%A5%A6
オブジェクトブラウザ
クラスビュー
ドキュメントアウトライン
できるだけ、更新、実行前にチェック処理を行う。OKだったら次の処理をする。
開発すると向こうの環境を考えて、できるだけ最新Framework3.0/3.5をやめる。
二重起動を防止する
①Mutexを利用する
②既存のウィンドウを最前面に移動する。→user32.dllのSetForegroundWindow(Inptr hwnd)
③vb.net→Me.IsSingleInstance=true
Imeを利用して、文字を変換する
①Imm32.dllのImmGetCompsitionString、ImmGetConversionList
②WordBreaker、WordSplit
メッセージ キューに現在ある Windows メッセージをすべて処理します。
Windows フォームを実行すると、新しいフォームが作成され、フォームはイベントが処理されるまで待機します。
フォームがイベントを処理するたびに、イベントに関連付けられたコードがすべて処理されます。
My.Application.DoEvents()
'ディレクトリのコピー(ディレクトリの属性の維持)
Dim Attr As IO.FileAttributes = IO.File.GetAttributes(sourceDirectory)
My.Computer.FileSystem.CopyDirectory(sourceDirectory, destDirectory)
IO.File.SetAttributes(destDirectory, Attr)
プロセスの戻り値
'*******************************************************************
'機能: 標準のShell関数では拾えない戻り値を得る
'引数: Program = 実行プログラム
'   Argument = 引数(ないときは"")
'   TimeOut = タイムオウト(0>ミリ秒、0<=タイムアウトしない)
'   WaitFlag = 待機フラグ(True:終了まで待機する、False:待機しない)
'   Val = 戻り値(コンソールに出力した文字列)
'戻値: 終了コード
'*******************************************************************
Public Function ShellStart(ByVal Program As String, _
ByVal Argument As String, _
ByVal TimeOut As Integer, _
ByVal WaitFlag As Boolean, _
ByRef Val As String) As Integer
Dim exitCode As Integer = -1
Dim pID As Integer
Dim psi As New Diagnostics.ProcessStartInfo
Dim proc As Diagnostics.Process = Nothing
Try
psi.FileName = Program
psi.Arguments = Argument
psi.CreateNoWindow = True
psi.UseShellExecute = False
psi.RedirectStandardOutput = True
proc = Diagnostics.Process.Start(psi)
pID = proc.Id
'プロセスの戻り値
Val = proc.StandardOutput.ReadToEnd
If TimeOut > 0 Then
proc.WaitForExit(TimeOut)
Else
proc.WaitForExit()
End If
If proc.HasExited Then
exitCode = proc.ExitCode
End If
Catch ex As Exception
Throw ex
Finally
If Not proc Is Nothing Then
proc.Dispose()
End If
End Try
Return exitCode
End Function
Assemblyを利用して、dllのメソッドを呼び出す
Public Shared Function InvokeDll(ByVal Path As String, _
ByVal ClassName As String, _
ByVal Method As String, _
ByVal ParamArray Params() As String) As Object
Dim assem As Assembly
Dim obj As Object
Dim t As Type
Dim ms() As MethodInfo
Dim out As Object = Nothing
assem = Assembly.Load(Path)
obj = assem.CreateInstance(Path & "." & ClassName)
t = obj.GetType()
ms = t.GetMethods()
For Each m In ms
If m.Name.Equals(Method) Then
out = m.Invoke(obj, New Object() {Params})
End If
Next
Return out
End Function

2009年8月13日木曜日

圣殿祭司的ASP.NET 2.0开发详解使用C#
C#设计模式
http://222.241.95.104/softii/C3sjmspdf.rar?0000000951784822099tflag=1250405004opin=3a39db9ecb9fc439ea656d75cca8f6d7&ip=.rar

ftp://221.238.195.3/uploads/computer/圣殿祭司的ASP.NET2.0开发详解_使用CS%5Bwww.TopSage.com%5D.zip