トップページ⇒tech
1001コメント309KB

くだすれC#(Part2)

■ このスレッドは過去ログ倉庫に格納されています
0001毛の生えたブリーフNGNG
このスレッドは

「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。

ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、
勇気をもって書き込んでください。

少しずつC#プログラマを名乗るものが現れました。みなさん一緒に勉強しましょう。

前スレッドはこちら
http://pc3.2ch.net/test/read.cgi/tech/1023766485/l50
0232デフォルトの名無しさんNGNG
C#勉強しようと思って「独習C#」って本を買ってきました。
その本、各章の最後に「この章の理解度チェック」ってコーナーがあるんです。
その中に
「文字列の内容を逆順に表示する再帰的なメソッドを作成しなさい」とか、
「スタックは(スタックの説明)。charを保持できるスタッククラスStackを作成しなさい。」
で、ヒントとしてキュー(Queue)を使ったクラスの例があげられてるんですけど、相当考えないとわからないんです。
プログラムには向いてない頭じゃないかとか結構悩んでます。
ちなみにプログラムはC#が始めてです。
ネタじゃないです。
マジレスお願いします。

ちなみに先ほどの練習問題は6章のものです。↓独習C#目次
http://www.seshop.com/detail.asp?mode=spec&pid=2425
0233デフォルトの名無しさんNGNG
プログラミングが初めてなら相当考えないとわからないのが普通だろう。
で?
0234デフォルトの名無しさんNGNG
>>233
レスありがとうございます。
普通なんですか。
勉強するのやめようかと悩んでましたが続けることにしました。
0235228NGNG
>>231
どうもありがとうございます。
さっそくヘルプで探してサンプルがあったので
やってみます
0236デフォルトの名無しさんNGNG
sunのc#ってどこにあんの?マジで教えて。
0237229NGNG
>>229
おながいします・・・
0238デフォルトの名無しさんNGNG
.NET Framework SDK についてるような dexplore.exe で使う
.NET Framework のヘルプを、切り離して持ち運ぶ方法って
ありますか?

msdn library みたいに、CD に保存して CD ドライブから
ヘルプを閲覧できるようにしたいのですが。
0239毛の生えたブリーフNGNG
>>232
「独習C#」は解説が順序よく分かりやすく書いてある本だと思います。大半の日本語の
C#本を持っていますが、「独習C#」を一通り読んでから、他の本を読んだら分かりやすいと
思います。練習問題は飛ばしてもいいと思います。本文の例題が分かれば・・・。
0240229NGNG
自己レスです。
OnMouseDown,OnMouseMoveをオーバーライドすることで解決しました。

0241229NGNG
>>240
行頭に「パネルの」を脳内で付け加えてください。
0242228NGNG
richTextBoxをシリアル化しようとしたのですが
ISerializable が実装されてない為、継承コンポーネントを作成し
そのまんま[Serializable]だけ付けてコマンドラインからDll化して
ツールボックスのカスタマイズで追加してフォームに貼り付けようと
したら「オブジェクト参照がオブジェクト インスタンスに
設定されていません!」と怒られます。
何か他にも準備がいるのでしょうか。
0243228NGNG
事故レス
解決しました。
ソリューションエクスプローラで参照設定が必要でした。
0244デフォルトの名無しさんNGNG
先生!メールの受信がうまくいきません!
一番下のソースです。(;´Д`)宜しくおながいします。
↓
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1001650795&rm=100
0245全然動かさずにレスNGNG
>>244
ストリーム系のClose()をしてみるとか・・・
0246デフォルトの名無しさんNGNG
>>245
(;´Д`)してみたんですが同じですた。
LISTを送るとこまでは正常に動いてるようなんですが。。。
0247Google「.net C ◆apM2pDzl0U NGNG
>>246
ここのソースでやってみたらRETRもうまく動いてるよ。
http://www.codeproject.com/csharp/pop3client.asp
0248名前欄失敗NGNG
Google「.net C# pop3 retr」ね。
0249デフォルトの名無しさんNGNG
>>244
・LISTもRETRと同様に複数行読んであげる
・bufと比較するのはnullじゃなくて"."

これでうまくいった。
0250デフォルトの名無しさん NGNG
参照の追加でC#でつくったdllを追加するとそのプログラム内で使えるようになりますよね。
VC++だと、dllはエクスポートしたり、libファイルをリンクしなければ使えませんでした。
C#は内部的にVC++と同様なことをしていると考えてよいのでしょうか?
そもそもC#でdll作ってもlibができないのが不思議でなりません。
どなたか解説お願いします。
0251デフォルトの名無しさんNGNG
>>250
簡単に言うと。
そのlibをDLL側に取り込んだということ。
0252デフォルトの名無しさん NGNG
>>251
なるほど。やっと分かりました。どうもありがとうございます。
0253デフォルトの名無しさしNGNG
モードレスダイアログからOwnerフォームのPublicメソッドを利用する
方法は、どのようはものがありますか?
私は、モードレスダイアログフォーム内のメソッド内で、
MainForm form=(MainForm)this.Owner;
form.func();
などと、記述しています。
どなたか、これに代わる代表的な手法をご存知でしたら
教えてください。
0254228NGNG

改行を取り除くにはどうすればいいでしょう?

str.Replace("\r\n","");

こんな事しても無理でした
0255デフォルトの名無しさんNGNG
DataGridのセルにButtonなどのコントロールを配置しているサンプルを
どこかでみたことがあるのですが、自分でやってもできません。

コンパイル通るし例外も起きないのに、配置されているべき場所を
みると空白になってます。

〜〜.Columns.Add("コラムタイトル",typeof(System.Windows.Forms.Button));

してから、ボタンをnewして
NewRow["コラムタイトル"] = ボタンのインスタンス;
ですが、これじゃあダメなのですか。
0256デフォルトの名無しさんNGNG
>>254
str = str.Replace("\r\n","");
0257デフォルトの名無しさんNGNG
どなたか VS.NET 環境のフォームデザインでの
コントロール配列の作り方教えてホスィ・・。
0258257NGNG
ttp://www.runan.net/program/tips/csharp/2_04.shtml
ふむ…。ControlCollection を使う方法を発見しました。
他に何か方法があったら教えてください。
特に IDE からグラフィカルに操作できる方法キボン
0259228NGNG
>>256

ありがとん
0260デフォルトの名無しさんNGNG
251のは間違い。コンパイラが暗黙にlib相当のものを自動生成する。

0261デフォルトの名無しさん NGNG
>>260
使う側(exe側)からするとdllに取り込んだということでないと
使えない気がするのですが。
0262デフォルトの名無しさんNGNG
あ、そうか。コンパイル時のことですね。
dllから生成するということですね。分かりました。
0263261NGNG
262=261です。
0264デフォルトの名無しさんNGNG
.NETなんだろ?CD-ROMが付く少し前に買ってしまった
なんだか損した気分
0265デフォルトの名無しさんNGNG
>>264
ん?
0266デフォルトの名無しさんNGNG
下がりすぎじゃないかしら。
0267デフォルトの名無しさんNGNG
C#コンパイラのオプションで、
/t:exeと/t:winexeってなんですか?
/t:winexeだからって.net入ってないPCで
実行できないですよね?
0268デフォルトの名無しさんNGNG
>>267 ここらへん見てみると良いかも。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cscomp/html/vclrfwinexecreatewindowsprogram.asp
0269デフォルトの名無しさんNGNG
>>267
それぞれ
コンソールアプリのコンパイルとWinGUIアプリのコンパイル
の指定だよ。

>>268
英語版かよ(笑
0270268NGNG
>>269
ウチのIE6sp1で見たら日本語版の>>268は文字化けてたんで・・・
0271デフォルトの名無しさんNGNG
>>268
>>269
レスどうもです。
英語読めないので日本語のページを見てみました。
文字化けはUTF-8にしたら見ることが出来ました。

↓これをわかりやすく説明していただけると幸いです。
----------------------------------------------------
コマンド ラインで指定すると、次の /out、/target:winexe、
または /target:library のオプションまでに指定したすべてのファイルが
.exe ファイルを作成するために使用されます。
/target:exe オプションは、それ以前に指定された /out オプション
または /target:library オプション以降のすべてのファイルに有効です。
----------------------------------------------------
0272デフォルトの名無しさんNGNG
exeがでかくなるってことじゃないの?C#さわったことないが
0273デフォルトの名無しさんNGNG
ご存知の方がいらっしゃいましたらご教授下さい。
データグリッドでデータを表示しているのですが
データグリッドをクリックした時に、どの列/どの行をクリックしたのか
プログラム上で把握する方法を知りたいのです。
よろしくお願いします。
0274273NGNG
自己解決しました。ありがとうございました。
ちなみにこんな感じです。↓↓↓

System.Windows.Forms.DataGrid.HitTestInfo ht = dataGrid1.HitTest(e.X,e.Y);
int rw = ht.Row;
int cl = ht.Column;
0275デフォルトの名無しさんNGNG
動画を読み込んで、解析したり編集したりできるソフトの
サンプルコードが置いてあるサイトとかないですかね?
そういうソフトって1フレームずつ画像処理したりしてるんすか?
なんかシッチャカメッチャカでごめんなさい。
0276デフォルトの名無しさんNGNG
>>271
hogehoge1.cs hogehoge2.cs ...csとか指定してあったら、
それらのファイルがEXE作成に使われるぞってだけの話じゃ?
0277デフォルトの名無しさんNGNG
.configファイル自動生成ツールとかありましたら
名称・ゲトできるURLなどをお教えください
0278デフォルトの名無しさんNGNG
>>277
スタート−管理ツール−.NET Framework Configuration
0279デフォルトの名無しさんNGNG
恥ずかしい質問。
C#上でのDirectXの扱い方が今一と言うか、さっぱり分かりません。
馬鹿にも理解できるよう、教えてホスィの…(´・ω・` )
0280デフォルトの名無しさんNGNG
>>馬鹿にも理解できるように
うーんいまいちだね。
0281デフォルトの名無しさんNGNG
>>279
DirectX9が.NET対応する予定だから
馬鹿はそれを待つのがよろしいかと
0282デフォルトの名無しさんNGNG
こんなのありますた
ttp://www.geocities.co.jp/SiliconValley-SanJose/3333/txt/goab4.txt
ttp://www.geocities.co.jp/SiliconValley-SanJose/3333/tool/4034.zip
0283279NGNG
レスどうもです。
馬鹿は指くわえながら、DirectX9を待つことにしました。
失礼いたしました。
0284デフォルトの名無しさんNGNG
Form上にIeObjという名前でIEコンポを貼り付けたとして、
IeObj.Navigate("http://2ch.net", null, null, null, null);
ってやるとエラーでちゃうんですよね・・・
二つ目以降の引数の意味がよくわかりません。
ちなみに、VC++で同じ事をやった場合、NULLでうまくいくのですが。
C#だと「'<null>' から 'ref object' に変換できません。」
とか意味わかんないこと言われちゃうんですよね。
長くて初心者チックな質問ですが、よろしくお願いします。
0285デフォルトの名無しさんNGNG
>>284
Object o = null;
IeObj.Navigate("http://2ch.net", ref o, ref o, ref o, ref o);
ではどうかな。意味は知らん。
0286284NGNG
>>285
ありがとうございました。
うまくいったようです。
しかし、こういう部分結構C#謎だと思うんですが・・・
0287デフォルトの名無しさんNGNG
>>286
C#が謎なんじゃなく、Navigateメソッドの仕様だし。
0288デフォルトの名無しさんNGNG
この辺はVB.netのほうがラクだ。引数ばっさり省略できる、、、よね?確か。
0289超初心者NGNG
すみません。


Visual Studio C# .netをつかってるんですが

Formをまたがっての操作の仕方がよくわかりません。

(例)
 Form1の button を押すと Form2 を表示し
Form2 の textBox に文字を入れたのち
Form2の button を押すと Form2 が消えて
Form1 の textBoxに Form2 の textBoxの値が入る

というようなことをしたいのです

どうすればよいのでしょうか?
0290デフォルトの名無しさんNGNG
>>289
フォーム上のオブジェクトをpublicにして直接操作するなり
操作用のメソッドを作るなり
ウインドウメッセージをとばすなり
好きなようにスレ
0291デフォルトの名無しさんNGNG
スレッドの一番単純なサンプルをコピペしてもらえませんか?

OCX使っているんだけど、あるメソッド呼び出したらそこでメインクラスが止まるみたいなので、次の動作(そいつにキーを送る)をスレッドでやろうと思います。
ただキーを送るだけなので、とにかく一番シンプルなパターンをお願いします。
どっかのサイトのリンクでもOK。
0292デフォルトの名無しさんNGNG
ちなみに
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfSystemThreadingThreadClassStartTopic.asp
このサンプルを参考に自分のコードでやってみたけど、どうも動かない。
0293デフォルトの名無しさんNGNG
>>291
http://www.google.co.jp/
0294デフォルトの名無しさんNGNG
>>293
それで解決しないからここで聞いてるんだよ。292はその結果。見た?
0295デフォルトの名無しさんNGNG
>>291
http://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_022/csharp_abc04.html
にあるね。

>>293 つまらん煽りはするな。ここはくだすれなんだから。答える気のないやつはレスするなよ。

0296291NGNG
>>265 サンクス!
ここのチュートリアル全部わかりやすいね。
0297291NGNG
もとい
>>295
0298デフォルトの名無しさんNGNG
C#で特定のタイトルのウィンドウがあるかどうか調べるにはどうしたらよいですか?
FINDWINDOWみたいなやり方があれば教えてください。
0299デフォルトの名無しさんNGNG
だれかおしえて下さいませ。

DataGrid.EditItemIndex = (int)e.Item.ItemIndex;
ってな感じで、DataGrid を編集モード(テキストボックス)
にした際に、テキストボックスのサイズを制御する方法が
わかりません。
いろんなプロパティを見たが、どれも、テーブルのサイズやフォント
ばかりのように見える;;
0300299 NGNG
ちなみに、ASP.NETです
0301デフォルトの名無しさんNGNG
>>298
Processクラスあたりだと思い思われふりふられ。
0302デフォルトの名無しさんNGNG
ただいま他アプリケーションが吐き出すログファイルをリアルタイムで監視する
ソフト作ってるんですが、FileStreamを使って非同期でログファイルを
開いているものの、相手アプリがログファイルを更新終了するまでログの
更新内容を取得できません。
どうすれば書き込んでる最中のログファイルをリアルタイムで
読めるんでしょうか?
教えてください。お願いします。
0303デフォルトの名無しさんNGNG
>>301
processをベースにそのあたりやっててウィンドウタイトルで見つけるの難しそうだったからほかにないかなと。
結局その部分VB.netで組みました。VBだとappactivateとか便利なのがあるのにC#だとない。ちょっと不便な気がする。
0304デフォルトの名無しさんNGNG
C#でメールを読めるようになったのですが、
メール本体のfromとかtoとかを拾うクラスはないのですか?
よろしくおねがいします。
0305デフォルトの名無しさんNGNG
今TcpClientでTCP/IP通信するプログラム作ってます。
質問は、通信をこちらから終了するときはどうすれば良いのか、ということです。
こう書いてあって、
TcpClient client = server.AcceptTcpClient();
StreamReader sr = new StreamReader(client.GetStream());
StreamWriter sw = new StreamWriter(client.GetStream());

/*このへんで通信*/

/*終了処理として次のうちどれが正しいですか? */
/*あるいは他に方法がありますか?*/

/*1*/
sw.Close();
sr.Close();
client.Close();

/*2*/
sw.Close();

/*3*/
client.GetStream().Close();

(いちおう上のどれでも終了しますよね?)

よろしくおねがいします。
0306デフォルトの名無しさんNGNG
ほかに方法があるかは自分にはちょっと分からないんだけど、
閉じれるものは他の部分への干渉の恐れがなければ、全部閉じるのが良いと思うよ。
0307デフォルトの名無しさんNGNG
すごく低レベルな質問です…。

先日、Visual C#.netを購入したんですが、
テンプレートからASP.NET Webアプリケーション・ASP.NET Webサービスを作成しようとすると
(たとえば、プロジェクトをプロジェクト名・場所をデフォルトのまま作成しようとすると)

このプロヘクトの規定のwebアクセスモードはファイルの共有に設定されていますが、'http://localhost/WebApplication1'のプロジェクトフォルダをパス'\\〜(略)〜WebApplication1'で開けません。次のエラーが返されました :
webプロジェクト'WebApplication'を作成できません。UNC共有'\\〜(略)〜WebApplication1'は存在しないか、またはアクセス許可がありません。

と出て、実行できません…。いったい、どうすれば………
0308305NGNG
>>306
ありがとうございます。
とりあえず全部閉じることにしようと思いますが、
上のコードの/*1*/だと、sw.Close()の時点で、接続切れちゃってるんで、
その後が必要あるのかないのか、よくわからなかったのです。
0309デフォルトの名無しさんNGNG
>>307
コード・アクセス・セキュリティ(その1)
http://www.atmarkit.co.jp/fdotnet/technology/framework09/framework09_01.html
の「コード・アクセス・セキュリティの動作」当たりで言及されてる事例そっくりだね・・・

WebApplicationプロジェクトのプロパティ
 共通プロパティ
  Web設定
   Webサーバ接続

の中の「パス」を、UNC名でなく、「C:\〜」って感じで書いたらいけそうな予感(根拠レス)。
外したらすまん。
0310309NGNG
・・・ってか、作成で失敗するからプロパティもクソも無いのか。
どうすりゃいいんだ。
0311デフォルトの名無しさんNGNG
文字列(例:123456)を金額(123,456)のように編集して違う変数に代入したいのですが
どのようにすればよいのでしょうか?
宇宙仮面のページにあった例だとコンソールに出力しています。
変数に代入の方法が良くわかりません。
Console.WriteLine("n/N\t123456.789 = {0:n}", 123456.789);
宜しくお願いします。
0312デフォルトの名無しさんNGNG
>>311
string str = String.Fomat("n/N\t123456.789 = {0:n}", 123456.789);
0313307NGNG
自分でも、いろいろジタバタしてみたところ…
IISがインストールされていないからな様です。

当方、XP Homeedithionなんですが、
どうやらIISは付属されていないようですね。

もうこの際、Professionalに乗り換えてしまうべきなんでしょうか?


>>309様、レスありがとうございました。
0314311NGNG
>312
レスありがとうございます。
String.Formatで出来ました。
{0:n}より{0:C}の方が通貨なのでよいようでした。
0315axWebBrowserの日本語の完全なヘルプがほしいNGNG
axWebBrowserってアドレスを指定してnavigateで表示する方法しかないんですかね?

TextBoxみたいに
 textBox1.Text = "<html>\r\n</head>〜</html>";

とか
RichTextBoxのAppendTextみたいなメソッドはないんですか?
もしくはhtmlをちゃんと表示できるTextBoxなんかがあるといいんだけど



0316デフォルトの名無しさんNGNG


エラー対策として

public void test() {
//確実に使えるようにしておく
WebRequest request = null;
WebResponse response = null;
StreamReader streamReader = null;


// 既に使用していれば閉じて新しくつかう
if (!StreamReader.Equals(streamReader, null) streamReader.close();
streamReader = new StreamReader(....);


//最後に確実に閉じる
if (!WebRequest.Equals(request, null) request.Abort();
if (!WebResponse.Equals(response, null) response.close();
if (!StreamReader.Equals(streamReader, null) streamReader.close();
}


私はこんなかんじにしてるんだけど。
これって問題あるかな?
0317デフォルトの名無しさんNGNG
DirectX 9.0のManaged DirectXのヘルプがVS.netのヘルプに統合されちゃって、
重くて著しく使いづらい。

ノートだからHDDまわしまくり。
VB/C++のヘルプのように単独で読めるようにする方法知りませんか?
0318デフォルトの名無しさんNGNG
>>317
http://pc3.2ch.net/test/read.cgi/tech/1040435898/18
0319デフォルトの名無しさんNGNG
質問です。intの配列をobjectの配列にキャストするにはどうすれば
いいのでしょうか。
int[] intary = new int[] {1,2,3};
object[] objary = (object[])intary;
こんなふうにやろうと思いましたがダメでした。配列の要素を一個ずづ
キャストしないとだめなんでしょうか。
0320デフォルトの名無しさんNGNG
Array.Copyってつかえなかったっけ?
0321デフォルトの名無しさんNGNG
>>315
HTTPサーバ作るの簡単だから適当なスレッドの適当なポートに居座らせて
http://127.0.0.1:xxx/として自分でアクセスさせればテンポラリファイルは不要
もっといい方法があったら教えちくりくり
0322デフォルトの名無しさんNGNG
>>315
自動生成されたAxInterop.SHDocVw.dllをAnakrinoで見てみ
http://test.saurik.net/anakrino/Anakrino9.zip
0323デフォルトの名無しさんNGNG
>>320
ms-help://MS.VSCC/MS.MSDNVS.1041/cpref/html/frlrfsystemarrayclasscopytopic.htm
| Array.Copy メソッド
|
| 一方の Array の範囲を他方の Array にコピーし、
| 必要に応じて型キャストとボックス化を実行します。
0324319NGNG
まさにこれです。
キャストできました。
ありがとうございますm(__)m
0325デフォルトの名無しさんNGNG
WinXPは標準で.ZIPファイルの読み書きができるようですが、
なんのAPI、クラスを使えばいいんでしょうか?
0326デフォルトの名無しさんNGNG
>>322
おお、ありがとう
こんなツールがあったとは
0327デフォルトの名無しさんNGNG
http://www.dotnetmagic.com/
のMagic Libraryってフリーですか?

ReadMe読んだ限りではリンクウェアみたいな事が書いてあったんですが・・・
英語駄目なんで助けて(´Д⊂グスン
0328デフォルトの名無しさんNGNG
>>327
無料だってさ。
You can include the Magic Library in your own private or commerical applications free of charge.
0329デフォルトの名無しさんNGNG
>>327
リンクウェアで合ってる
0330デフォルトの名無しさんNGNG
>328,329
ありがとう!少し自分の英語に自信が持てた。
0331デフォルトの名無しさんNGNG
Magic Libraryにあとツールバー、リバーさえあればいいんだが。
■ このスレッドは過去ログ倉庫に格納されています