[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/30 17:15 / Filesize : 214 KB / Number-of Response : 904
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっとC#,C♯,C#(初心者用) Part43



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 ]
トイレ逝け







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<214KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef