2010-01-01から1年間の記事一覧

C#

参照渡しもあるが、outキーワードを用いた『出力引数』を使う方がよさそう。 http://ufcpp.net/study/csharp/sp_ref.html…と思ったけど、文字列配列を入出力しようとして問題発覚。 http://homepage3.nifty.com/midori_no_bike/CS/sample.html // Note: 関数…

その他の問題点

ClickOnceのアプリとインストーラのアプリの両方がインストールされているといろいろ面倒なことが起こるかも知れない。 インストール場所のバッティングはほぼ起きないと思う。 アンインストールのキーの名前は確実に一致するだろうから、インストーラの設定…

インストーラ作成用“仕込み”作業

プロジェクトフォルダを見つける(⇒プルダウンへ割付) binフォルダを見つける(⇒パスへ割付) 最新版アプリケーションフォルダを探す(『【アプリケーション名】+〔発行バージョン番号〕』のフォルダ名から探す。Release/Debug指定があればその範囲で探す…

表題のmsdn解説記事にも書かれているが、何とか実現できないものか。 手動でやるのはあまり難しくなく、発行されたプロジェクト/ソリューションフォルダ中の bin\Release(場合によってはDebug)\app.publish\Application Files\【アプリケーション名】_【…

かなり実用でも使ってみて、 画面ハードコピーをCntl+Alt+PrtScrで取得して、ペイントへペースト、メモとして裏紙印刷 という工程が多用されるので、この一連を機能化してみることにする。『フォームの印刷』ということになるので、すぐ見つかるだろうとたか…

constを宣言すると、インスタンスの変数としては扱えなくて、クラスの定数として公開される。インテリセンスでインスタンスの変数を探しても出てこない。配列はconstを宣言して定数に出来ないようだ。(追記;初期化が出来ない旨のコンパイルエラーが出てビ…

ツールチップはツールボックスからフォームにドラッグして出来たコントロールのインスタンスが、各コントロールのプロパティーに「toolTip1(←インスタンス名)のToolTip」として項目が増えるから、そこへ表示したいテキストを書いておけばいい。…だけならば…

TryParseの使い方

C#

返り値がboolなので if(double.TryParse(str, out dbl)) { //dblに変換後の数値が入っている。 } else { //変換に失敗した。dblには値0が入っている。 } のように使う。

ZedGraphのグラフにAddCurveしてもの再描画が、一旦別ウィンドウの下に隠れないと行なわれない。 zedGraphControl1.AxisChange(); だけではダメで、画面リフレッシュをしないといけない。探したらそのものズバリのメソッドがあった。 // Refresh to paint th…

AddCurveで折れ線グラフを書いているとどんどんカープの個数が増えてくるが、それを防ぐ方法は…

描画された曲線を一旦全部消してしまう。 zedGraphControl1.GraphPane.CurveList.Clear();

逆の、『文字列への変換』は「ToString()」という強力なメソッドがあるので、たかをくくっていたが、『実数(double)への変換』でこんなに苦労するとは思わなかった。 double.Parse(str) はとても脆弱で落ちまくる。 ここにあるようにtryを使うか double.Tr…

C#でZedGraphを使う

VBではサンプルコードあるけど、C#ではコピペするだけでいいのが見当たらない。っていうか、公式ページに英文でさんざん懇切丁寧に書かれているような気がするんだけど、多分自分に読み解こうという気力が沸かん。で、インテリセンス頼みなんだけど、コント…

ClickOnceアプリケーションかどうかを自分自身で知る[ClickOnce][Visual Studio Express 2010]

自分自身がClickOnceアプリケーションかどうかを見分けるには、 System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed を使う。自分自身のパス名は、 Application.ExecutablePath で分かる。それから、発行タブの『バージョンの発行』で…

プロジェクトの持ち運びは、マイドキュメントにあるProjectsフォルダー内のプロジェクトフォルダを丸ごと持ち運びで大丈夫。どこからの発行もOK。 但し、プロジェクトを開いた時の編集状態は全てリセットされてしまうので、ソリューションエクスプローラから…

既に遭遇しているが、デリゲートについてはいずれまとめないといけない。

その使い方もさることながら、仕組みと概念を明確に理解しておきたい。 具体的には、別クラス(別名前空間)に分けたcsvTrimを呼び出す時、 そのクラスが持つstaticでprivateな変数の値をSetは出来るがGetは出来ない。 [追記]これは入力ミスだった。メソッ…

ClickOnce配布つっかかった点をまとめておく

プロバイダのサーバ構成。 ページが認識しない。 これは、シンボリックリンクのコマンドでスペルミスをしていた。シンボリックリンクはスペルミスして実体がなくてもエラーは吐かない。 素直にテラタームをインストールしてやりやすい環境で作業すべし。プロ…

配布

なんとか最低限使えるものにでっち上げられてので、 さて続きは作業しながら必要な機能を充実させていこうと思い、 プロジェクトを持ち出そうと思ったが、その方法がわからない。 以前、メイルに添付しようとしてうまくいかなかったことがあった ため、その…

改行コード

C#

System.Environment.NewLine

他に保留したこと

・入力ファイル種別の吟味 以外に保留したこと ・入力ファイルが出力ファイル自身だった場合、ファイルを開かない ・入力ファイルがシフトJISエンコーディングのようなこと ・改行コードがLFのようなこと … そろそろReadME,txtを準備する。 以前に雛形に現状…

問題点⇒保留

まずい。CSVじゃなくたって、テキストファイルじゃなくたってすら、開けてしまう。そして何か読んでるし。EXEファイルなんかを何百行とか読んだことになってる。仮リリースの時には拡張子がCSVしか開けないとか限定して(これでも危険だ)後になんらかの対策…

csvTrim

ということでやっと本来の目的機能実装に辿り着いた。 CSVファイルを間引いたりして整形することをやりたい。 必要に迫られてPerlで2時間くらいででっち上げたものがその前身だ。 使っていくうちに、間引かずにある行数だけスキップして、ある行数だけ書き…

WriteLine の出力がでてこない

「デバッグ>オプションと設定>デバッグ/全般」 にある、 □出力ウィンドウの文字を全てイミディエイトウィンドウにリダイレクトする にチェックを入れる。そして、 System.Diagnostics.Debug.WriteLine("出力する文字"); とすればいいことが分かる。デメリ…

…その前に、2点OpenFileDialogについて。 このメソッドは、ファイルを選択するとカレントディレクトリも移動するようだ。この動作は良し悪しだが、選択後、元のディレクトリにカレントディレクトリを戻したい場合は、RestoreDirectoryを使う。 openFileDial…

ボタンを押してOpenFileダイアログを呼び出す

デザイナ上のcsvTrimボタンをダブルクリックする。 コードエディタが開き、Form1,csのbutton1_Clickのカーソル待ちになっている。 ここへ、次の記述をタイプする。 OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.InitialDirector…

OpenFileダイアログの配置

同様にファイルを開くときに出す『OpenFileDialog』を選択して、Form1をクリックする。ボタンと違ってそのアイコンは欄外に配置される。 この理由はちょっと考えれば思いつく。たとえばボタンを押したときにポップアップするように決めたとしても、そのボタ…

ボタンを配置

ツールボックスの『Button』を選択して、Form1上に長方形を描画するように配置する。 配置したボタンを選択して状態で、右下のプロパティーウィンドウで設定を行なう。 どうしようか? まずは1ボタンでcsvTrimの動作をやらせることにしよう。 とりあえず、…

新規プロジェクトの作成

スタートページから「新しいプロジェクト」をクリックする。『Windowsフォームアプリケーション』を選択した状態で名前に適当なアプリ名を決めて「OK」をクリックする。 初めから『Form1』が表示されているので、すかさずツールボックスにマウスを載せてアイ…

ソフトつくり環境のインストール

その前に、無償のソフト作り環境をインストールするところから早足で書き起こそう。 次のページからC#をインストールする。 http://www.microsoft.com/japan/msdn/vstudio/express/ その他の言語も全てインストールしてしまうのが良いだろう。 最初のインス…

悠長にやってる時間的余裕がない。

とにかく使えるものを段階的に仕上げていこう。 まずは、ファイルを開いて書き出すだけだ。 その時に行間引きを行なう。(間引かないのも含めて) ファイル選択と、タイムスタンプ情報取得のためのファイルオープンはこの前やったから、その復習というか、き…

使っていることと、作ることのギャップは、やってみると相当大きいことがわかるが、 このほど、グラフ、インストーラ、など、立て続けにこれまで隔絶していると思って諦めていた溝を生めることが出来て、なんとなく、楽観的な気分になっている。 一方、以前…