1 名前:デフォルトの名無しさん mailto:sage [2009/07/26(日) 11:01:47 ] このスレッドは 「どんなにくだらないC#プログラミングに関する発言でも誰かが優しくレスをしてくれるスレッド」です。 ほかのスレッドでは恐ろしくて書き込めないような低レベル、もしくは質問者自身なんだか意味がよく分からない質問など、 勇気をもって書き込んでください。 内容に応じて、他スレ・他板へ行くことを勧められる、あるいは誘導される場合がありますがご了承下さい。 >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 前スレ ふらっとC#,C♯,C#(初心者用) Part42 pc12.2ch.net/test/read.cgi/tech/1245836827/
152 名前:147 mailto:sage [2009/08/01(土) 21:54:49 ] 1このとこで変えられたら、 その瞬間は全部の場所で同じ値に変わるというのはOKですか?
153 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 22:00:06 ] >>152 だからこそ遅延評価 総称関数でパックしてやれば評価されるタイミングは関数依存 だから大丈夫
154 名前:147 mailto:sage [2009/08/01(土) 22:04:26 ] >>153 意味わかんないです
155 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 22:06:22 ] >>154 メンバ変数への参照が一箇所でも残されていれば大丈夫ということ だから手ごろな無名関数でクロシージャ作ってやればおk
156 名前:147 mailto:sage [2009/08/01(土) 22:07:07 ] >>155 それならわかります パラサイトルーチンを使ってクロージャを生成すればよいのですね?
157 名前:デフォルトの名無しさん mailto:sage [2009/08/01(土) 22:11:41 ] こんな自作自演して何が楽しいんだ
158 名前:デフォルトの名無しさん [2009/08/02(日) 08:07:09 ] webBrowserでドキュメントの読み込みが終了したタイミング で次の処理をするプログラムです。当然、DocumentCompleted で次の処理をして行くのですが、そのサイトは表示後に JavaScriptで描画している部分があって、完全に描画が終了 するまで若干のタイムラグが生じています。なので、 DocumentCompletedにそのまま記述しただけではうまく動作 しないので、今は、timerを使って次の処理のスタート時間 を遅らせていますが、スマートなやり方でないので、何か うまい方法はないでしょうか。
159 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 13:56:12 ] >>147 からの流れが意味不明すぎてワロタ
160 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 15:45:30 ] Adv/ノベルゲーというのは、皆が思っている以上にOVAのセルビデオに近いんだ。 既に一定の市場が確保できているからそう簡単に廃れることはない。 だが年単位で推移を見ると市場規模が倍になったり逆に半分になったりはするだろう。 すると会社を大きくできるところがあるかと思えば大手でもつぶれるところが出てくる。
161 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 15:48:14 ] どこの誤爆だww
162 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:28:44 ] アセンブリを動的ロードし使用する為に、次のコードを書いたのですが、 (A)の部分でどうすれば文字列型の引数("あいうえお")を渡せばいいか分りません。 どうすれば new Type[0] の部分に引数 "あいうえお" を指定する事が出来ますか? ※引数を渡さないメソッドの呼び出しは普通に出来ています。 string assemblyPath = @"C:TestLibrary.dll"; Assembly asm = Assembly.LoadFrom(assemblyPath); type = asm.GetType("TestClass"); insDll = Activator.CreateInstance(type); //TestMethodメソッドの宣言・・・(A) MethodInfo mi = type.GetMethod("TestMethod", new Type[0]); string getMessage = Convert.ToString(mi.Invoke(insDll, null));
163 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:31:28 ] 意味わからん。引数を渡すのは、Invoke のときだろ?
164 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:32:07 ] なんで動的ロードはできてそんなくだらないところで躓くんだ 思い込みは捨てて全体を見ようぜ string getMessage = Convert.ToString(mi.Invoke(insDll, null)); なんでnullを渡してると思う?
165 名前:162 mailto:sage [2009/08/02(日) 16:33:07 ] >>163 そうなんですか。てっきり(A)の部分でしなくちゃならないと思ってました。 因みに、 string getMessage = Convert.ToString(mi.Invoke(insDll, null)); の部分でメソッドに引数 "あいうえお" を渡す場合にはどうすれば良いでしょうか?
166 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:33:08 ] ついでに > MethodInfo mi = type.GetMethod("TestMethod", new Type[0]); 第二引数の意味は知ってるよな?
167 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:36:48 ] なるほどそこでエラーが出るから(A)がおかしいと考えてたのかw
168 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:37:33 ] public Object Invoke( Object obj, Object[] parameters ) だろ、ヘルプ見ろよハゲ。 new object[]{ "あいうえお" }
169 名前:162 mailto:sage [2009/08/02(日) 16:40:17 ] 引数を渡す為に次の様なコードに修正してみたのですが、 駄目でした。。。なぜ???困った。 これじゃ、動的ロードが出来ても肝心の引数を渡すが事が出来ない。。。 動的ロードしたい意味が無い。 object[] o = new object[1]; o[0] = "あいうえお"; string getMessage = Convert.ToString(mi.Invoke(insDll,o));
170 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 16:43:00 ] (A) がおかしいんだろ。Type の配列じゃなくて、BindingFlags.Public でも指定しとけ。
171 名前:162 mailto:sage [2009/08/02(日) 17:03:19 ] 出来ません。。。 やっぱり引数を指定するとエラーが出ます。 自分なりに(A)(B)に色々と引数を渡す為に試してみたのですが、 ことごとく「オブジェクト参照が存在しません。」みたいなエラーが出てしまいます。 どなたか具体的に引数を渡す方法をぜひお願いします。 //(A) MethodInfo mi = type.GetMethod("TestMethod", new Type[0]); //(B) string getMessage = Convert.ToString(mi.Invoke(insDll, null));
172 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 17:15:19 ] サンプルでも探せよハゲ www.atmarkit.co.jp/fdotnet/dotnettips/389methodinvoke/methodinvoke.html
173 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 17:17:47 ] これでリフレクションによく手を出す気になったモンだなぁ
174 名前:162 mailto:sage [2009/08/02(日) 18:24:59 ] >>172 ありがございます!! 出来ますた!!
175 名前:デフォルトの名無しさん [2009/08/02(日) 19:22:09 ] 流れたので再度 webBrowserでドキュメントの読み込みが終了したタイミング で次の処理をするプログラムです。当然、DocumentCompleted で次の処理をして行くのですが、そのサイトは表示後に JavaScriptで描画している部分があって、完全に描画が終了 するまで若干のタイムラグが生じています。なので、 DocumentCompletedにそのまま記述しただけではうまく動作 しないので、今は、timerを使って次の処理のスタート時間 を遅らせていますが、スマートなやり方でないので、何か うまい方法はないでしょうか。
176 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 19:26:17 ] そのサイトを出せよ
177 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 19:30:31 ] 無理だろ。 JavaScript の最後にイベントくっつけるくらいしかないんじゃね?
178 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 19:33:41 ] 同じく流れたので再度 Formsの単体テストって皆さんどうやって記述してます? デバイスに依存する部分があって、 マウスカーソルをじかに読んだりする部分もあるから どうやって書いたらいいのか途方にくれてしまって……。
179 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 19:38:24 ] フォームは単体テストなんてやらない。
180 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 20:05:22 ] そういうライブラリはあるらしいけど、 使ったことないので知らない
181 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 23:25:37 ] string[] か IEnumerable<string> で部分配列を取得したいんですが、 string[] ary = {...}; ary.Hoge(start,length); みたいなメソッドありますか?
182 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 23:32:40 ] Array.Copy
183 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 23:37:10 ] IEnumerable<T>相手ならSkipとTakeの組み合わせ
184 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 01:14:20 ] .netのexeの中身が分かるツールって知ってます? 雷みたいな水色のアイコンで、 ISDN.exeみたいな名前でした
185 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 01:16:31 ] それは知らんが ildasmとReflector
186 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 02:08:50 ] 正規表現で次の様にHTMLページ内にある<title></title>タグの中の文字列を 変更するにはどうすればよいでしょうか? <title>太郎</title> ↓ <title>マイケル</title>
187 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 02:20:33 ] スレ違い
188 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 02:22:19 ] せめて こうやってみたが(結果がこうなってしまった|こんな例外が出た|こんなコンパイルエラー) ぐらいは書けよ
189 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 09:29:42 ] www.atmarkit.co.jp/fdotnet/basics/regex02/regex02_03.html Regex regex = new Regex(@"(<title>)(.*)(</title>)"); string s = regex.Replace(html, @"$1マイケル$3");
190 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 12:56:41 ] みんな見れる? 見れなくなった。 C# と VB.NET の質問掲示板 - ASP.NET bbs.wankuma.com/index.cgi
191 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 13:04:10 ] わんくま掲示板が落ちているのは稀によくあること
192 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 13:04:41 ] >>191 日本語でOK
193 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 13:14:24 ] わんくま掲示板とブログが落ちているのはよくあること。 ああまたか、という感想しか湧かない。
194 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 13:26:15 ] C#でメソッド内静的変数が使えない理由がわからないんですが…
195 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 13:28:55 ] ヘジたんの趣味
196 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 13:34:47 ] C風に使いだす馬鹿が出るから
197 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 15:18:08 ] 必要な場面があまりないからだろ。 大抵単なるstatic変数で事足りるし。
198 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 15:37:53 ] オブジェクト指向的にはstatic変数で状態持つこと自体極力避けるべきなんだから それを助長するような機能をわざわざ付けるわけがない
199 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 18:39:30 ] 最大の理由はマルチスレッドが普通にプログラミングモデルに組み込まれる事になったので 一撃必殺でスレッドセーフを叩き潰す関数内staticは、無い方がいいだろうって所だと見た。
200 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 19:15:55 ] そういえば、VB.NETではメソッド内静的変数が使えるんだけど、 どう実装されてんのかReflectorで見たら、ものすごい力技で笑った。 基本的にはインスタンスのメンバ変数なんだけど、それをうまくメソッドローカルな静的変数に見せかけてる
201 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 21:22:49 ] >200 ほーほー、スコープ的に他のメソッドから見えないようにしてるのかな? と、尻馬に乗って試してみた。 Public Class Class1 Shared a As Integer Dim a2 As Integer Public Shared Sub Test() Static Dim a As Integer a = 0 End Sub Public Sub Test2() Static Dim a As Integer a = 0 End Sub Public Shared Property prop() As Integer Get Return a End Get Set(ByVal value As Integer) Static Dim a As Integer a = value End Set End Property (続く)
202 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 21:24:50 ] Public Property prop2() As Integer Get Return a End Get Set(ByVal value As Integer) Static Dim a As Integer a = value End Set End Property End Class これの結果が Int32 a2 Int32 $STATIC$Test2$2001$a Int32 $STATIC$set_prop2$20118$a Static Int32 a Static Int32 $STATIC$Test$001$a Static Int32 $STATIC$set_prop$0118$a という感じになる。 Static とか Int32 は区別のためにつけた。 VBだとSharedがクラス変数っぽい。
203 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 21:26:41 ] おまけ class Program { static void Main(string[] args) { Class1 cls = new Class1(); Type typ = typeof(Class1); FieldInfo[] infos; infos = typ.GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static); foreach (FieldInfo f in infos) { Console.Out.WriteLine((f.IsStatic?"Static ":"") + f.ToString()); } } }
204 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 21:26:56 ] っぽい、ってそれはMSDN見ればわかるじゃんことじゃん言っちゃ悪いがw
205 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 21:30:50 ] VBのStaticはVB6にもある。 Staticがクラス変数扱いになったのはCOMの影響。
206 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 21:32:12 ] Out って何? Java?
207 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 21:34:59 ] 1つのメソッドでしかつかわないRegexオブジェクトとかを置いときたいなと思ったことはある
208 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 21:48:27 ] htmlの解析とか無理だろ・・・ Cはやめて今日からC#するってうちの教授なにかんがえてんだよ・・・ そもそも俺プログラムなんてVBAしか知らないしorz すまん、ぐちってみた
209 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 21:50:41 ] VBA → VB.NET → C# でおk
210 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 21:53:20 ] html の解析なんて、DOM ですぐじゃん。
211 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 21:56:04 ] >>209 VB.NETってのをかますと勉強しやすいのか。 ってか、Cの授業自体、休憩時間とかしてたしな・・・ がんばってみるよ。そもそもHTML自体分からんのだがな。 何でも、formタグの中にある<input type="ほにゃほにゃ" name="ほにゃほにゃ2" size="30" maxlength="20"> ほにゃほにゃとほにゃほにゃ2を抜き出して表示させろだと。さて、イミフだ
212 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 21:58:54 ] VB.NETなんか無意味だからやめとけ VBAできるっていったってそんな深くまで理解して使ってるわけじゃないだろ
213 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 22:05:02 ] HtmlAgilityPackとXPathでサクサクっと
214 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 22:09:42 ] IEコンポ関係が一般的では?VBAでもC#でも。
215 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 22:11:45 ] >>214 IEが不具合起こしたら手がつけられんからなー。 HTMLブラウジングそのものが目的じゃないんだったら避けたほうがいいんじゃないかな。
216 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 22:15:37 ] mshtml がどれだけの実績あると思ってんだよ
217 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 22:18:38 ] 極端な話,HTMLの解析自体はHTMLが全くわからなくてもできちゃう それよりもC#覚える方がずっと大変だからがんばれ
218 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 22:42:53 ] 皆さん、サンクスです・・・ いろいろなアドバイスを頂、少し前向きに取り組んで意向と思います。 input type = A name = B value = C html中のA,B,Cを取得して一覧表示させればいいみたいです。 とりあえず教授の話してることメモしてるのを読み直しとこんな感じみたいです。 なにか参考書を買ってがんばってみようと思います。 WebBrowserを使えばhtmlの表示とソースの取得は出来ると教えてもらいました。 まずはその辺から組み立てていこうと思います。
219 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 01:31:56 ] >>208 まじめにやると意外と大変。多分、html tidyあたりでxhtmlに変換した上で、XMLDocumentで読み込むべきかな。
220 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 04:29:37 ] 218の教授がWebBrowserと言っているんだからそれ使ってやろうぜ。
221 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 08:06:45 ] >>218 それ、たぶん不可能だと思うんだけど・・・ 教授にきちんと聞いたほうがいい。なんか聞き間違いとかあるんでない?
222 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 09:18:32 ] >>221 GetElementByName GetAttribute InnerText 等を使えばいけると思うけど
223 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 09:20:43 ] C#でMySQLに接続するプログラムを作っています。 接続の際のID、パスワードをユーザーから隠したいのですが どのような方法がありますでしょうか?
224 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 09:29:22 ] どういうレベルで隠したいわけ?
225 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 09:58:22 ] >>224 すいません、どういうレベルでと聞かれるとどう答えればいいのかわからないのですが・・・。 とりあえず今、考えているのはIDやパスワードをWeb上のファイルから都度読み込んで あくまでソース内にはIDやパスワードを入れておかないようにしようかと思っています。 他にいい方法があればと思って質問しました。
226 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 11:01:49 ] >>222 いけるのか? 参考HPなにかありませんか?
227 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 11:19:31 ] それjavascriptじゃない? 翻訳記事だけど、 ttp://japan.internet.com/developer/20051115/25.html とかどう
228 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 11:20:21 ] XMLだった
229 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 11:37:18 ] >>226 いや Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.WebBrowser1.Navigate("c:\hoge.html") End Sub Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted Dim hdoc As HtmlDocument = Me.WebBrowser1.Document Dim inputs As HtmlElementCollection = hdoc.GetElementsByTagName("input") For Each inputElement As HtmlElement In inputs Dim type As String = inputElement.GetAttribute("type") Dim lvi As New ListViewItem(type) Dim nsi As New ListViewItem.ListViewSubItem(lvi, inputElement.Name) lvi.SubItems.Add(nsi) Dim value As String = "" Select Case type.ToLower() Case "text" value = inputElement.InnerText Case "radio", "checkbox" ' 繝√ぉ繝・け縺輔l縺ヲ縺・k縺九←縺・°縺ョ蝣エ蜷・ value = inputElement.GetAttribute("checked") ' value縺ョ蝣エ蜷・ 'value = inputElement.GetAttribute("value") End Select Dim vsi As New ListViewItem.ListViewSubItem(lvi, value) lvi.SubItems.Add(vsi) Me.ListView1.Items.Add(lvi) Next End Sub という感じで組めば、リストビューにリストアップできるけど。 こういうことではないのか!?
230 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 11:40:05 ] ゴメン文字化けしてたので、再レス Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.WebBrowser1.Navigate("c:\hoge.html") End Sub Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted Dim hdoc As HtmlDocument = Me.WebBrowser1.Document Dim inputs As HtmlElementCollection = hdoc.GetElementsByTagName("input") For Each inputElement As HtmlElement In inputs Dim type As String = inputElement.GetAttribute("type") Dim lvi As New ListViewItem(type) Dim nsi As New ListViewItem.ListViewSubItem(lvi, inputElement.Name) lvi.SubItems.Add(nsi) Dim value As String = "" Select Case type.ToLower() Case "text" value = inputElement.InnerText Case "radio", "checkbox" ' チェックされているかどうかの場合 value = inputElement.GetAttribute("checked") ' valueの値の場合 'value = inputElement.GetAttribute("value") End Select Dim vsi As New ListViewItem.ListViewSubItem(lvi, value) lvi.SubItems.Add(vsi) Me.ListView1.Items.Add(lvi) Next End Sub
231 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 12:52:12 ] >>230 C#じゃなくないですか? C#.NET開発で、自分も似たようなことで悩んでいます。 パーサーというものの使い方がいまいちわからない……
232 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 13:00:39 ] VB.NETはコードの見た目がなんとなく違うだけのC#。 C#できるならVB.NETもできるようにならないともったいない。 だからってわざわざVB.NETで貼るのはどうかと思うけど。
233 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 13:09:19 ] >>231 あ、そだった、すまん。C#でのソースを再レス private void Form1_Load(object sender, EventArgs e){ this.WebBrowser1.Navigate(@"c:\hoge.html"); } private void WebBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { HtmlDocument hdoc = this.WebBrowser1.Document; HtmlElementCollection inputs = hdoc.GetElementsByTagName("input"); foreach(HtmlElement inputElement in inputs) { string type = inputElement.GetAttribute("type"); ListViewItem lvi = new ListViewItem(type); ListViewItem.ListViewSubItem nsi = new ListViewItem.ListViewSubItem(lvi, inputElement.Name); lvi.SubItems.Add(nsi); string value = ""; switch(type.ToLower()) { case "text": value = inputElement.InnerText; break; case "radio": case "checkbox": value = inputElement.GetAttribute("checked"); //value = inputElement.GetAttribute("value"); break; } ListViewItem.ListViewSubItem vsi = new ListViewItem.ListViewSubItem(lvi, value); lvi.SubItems.Add(vsi); this.ListView1.Items.Add(lvi); } }
234 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 13:18:42 ] >>232 すまん。よく使う言語がVB.NETのほうだもんだから、 時々こうC#スレでVB.NETのソースをはっつけてしまうことがある。
235 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 13:22:32 ] いいわけするな
236 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 13:29:42 ] >>235 別に言い訳ではないんだが。
237 名前:デフォルトの名無しさん [2009/08/04(火) 15:41:05 ] フォルダ内にあるファイル名を配列に、 ファイル名順で入れたいのですが上手くいきません。 string[] fs = System.IO.Directory.GetFiles(フォルダ指定, "*.*"); Array.Sort(fs); フォルダ内のファイルは temp0・temp1・temp2……temp10 です。(拡張子略) 結果は temp0・temp1・temp10・temp2…… となります。数字が二桁を超えるとおかしくなります。
238 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 15:55:30 ] 文字列で比較してるんだから当然の並び順になってるだけ
239 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 15:56:43 ] >>237 別におかしいわけではないよ。 そもそもエクスプローラとC#(というか.net)の文字列の比較方法が異なる どのくらい分からんのかよく分からんので、適当にぐぐった結果はってみる ttp://dobon.net/vb/dotnet/string/stringcomparer.html ttp://nekoaruki.com/wp/posts/programming/csharp/1159.html
240 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 16:06:41 ] >>238 >>239 ありがとうございます。 まさにエクスプローラの表示順にしたかったのです。 リンク先で可能そうです。ありがとうございました。
241 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 16:38:40 ] あれ、Explorerも昔はC#的な並べ替えだったよね・・・? 気のせいかな・・・
242 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 16:46:03 ] XP辺りから変わった レジストリに使用する比較関数の項目があるんで変更も可能なはず ロジックは相当複雑
243 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 16:49:35 ] >>241 intuitive sortってやつだろ。XPの目玉機能だよ >>240 Explorerと同じにするならStrCmpLogical使うべき。
244 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 20:47:02 ] >>233 記憶があいまいですまないのだが、確かフレーム分割されてるとだめだよな 違ったっけ?
245 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 21:32:20 ] >>244 そんなん、frames で取ればいいだろ。 適当言うなよハゲ
246 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 22:35:34 ] >>245 いや、フレームごとに取得は無理だろ 一括で取得なら可能だけど。 まぁ、>>218 がどこまで作るのか知らないけど
247 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 22:37:41 ] >>242-243 あーやっぱXPから変わったんですか。 ありがとう
248 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 01:11:01 ] Form1からForm2を開くようにしたいのですが、 Form2は1こしか作らせない。 Form1_loadあたりで、Form2を作っておきたい。 Form2の変数をForm1でも使いたい。 どのようにすればいいんでしょうか?
249 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 01:15:48 ] shingleton
250 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 01:37:38 ] やりたいことは、 Form1を半分隠すみたいなかんじで、 ボタン押すと、ぴーって出るみたいな できないかな?
251 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 01:45:26 ] >>246 いや、可能だよ foreach (HtmlWindow f in this.webBrowser1.Document.Window.Frames) { HtmlDocument hdoc = f.Document; // 以下略 }
252 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 01:51:27 ] トイレ逝け