したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

VBでつくられた2chブラウザ

20名無しさん:2003/04/02(水) 15:37 ID:kxWIrIPw
てゆうか>1はこの辺りから勉強したほうが良いかと思われ…
ttp://www.amazon.co.jp/exec/obidos/ASIN/4881357204/

21畑ななし:2003/04/02(水) 15:50 ID:ejvaLbVo
Live2ch以外にあるの?

221:2003/04/02(水) 18:14 ID:mhOQL5Ws
>>19
VBの弟がVBScriptだ。
>>20
さいきんVB.NETの本ばかりでVB6.0の本は少ないなあ。
>>21
さあ。
ソースコードを公開してあるVB製2chブラウザはまだ1個も無いようだ。

23名無しさん:2003/04/05(土) 12:00 ID:ezctQ07Q
>>21
昔「みにちゃんねる」というVB製の2chブラウザがあった。
今は配布されていないけど。
他には無いはず。

>>18
> 完成すればVBの優秀性を広めさせられるはず。
どの言語を使っても、良いものができるかどうかはプログラマ次第だと思うけど。
〇〇の言語だから良い2chブラウザが作れるとか速いとか・・・よりも
プログラマの技術とやる気に左右されているのが2chブラウザの現状。
そう言う意味で言うと・・・・もっと勉強しようね。

241:2003/04/06(日) 07:10 ID:ryWeMwx.
>>23
自分は天才だと思う

25名無しさん:2003/04/06(日) 12:22 ID:GSp7H9M.
>>24
そういうのは他人がいう事だと思う

26名無しさん:2003/04/06(日) 20:19 ID:ldnJZPrs
>>24
天才なら人にサンプルを求めなくてもその位作れるだろと小一時間…

271:2003/04/11(金) 03:15 ID:iaEMrU7Q
>>25-26
オレさまは自信過剰気味なときは調子がいい証拠なんだ

28名無しさん:2003/04/17(木) 10:32 ID:l2U2LriU
VBはランタイムがな…

291:2003/04/18(金) 15:20 ID:wp6J2mAU
>>28
VisualStudio.NETのソフトも.NETフレイムワークをユーザがインスコしなきゃならんからめんどいの

30名無しさん:2003/05/02(金) 10:32 ID:l2U2LriU
ピン動作キボン

311:2003/05/27(火) 22:14 ID:3rVlaDcI
やっぱりだれかが作ってそのソースファイルがほすぃ

32名無しさん:2003/06/08(日) 00:05 ID:P7N4HUME
やだ

33名無しさん:2003/06/28(土) 07:59 ID:ZS0bkGsc
この流れだと、書き込みテストの対象にされた板が
悲惨な状態になりそうな予感・・・

34名無しさん:2003/07/05(土) 12:10 ID:e3GPzJUs
結局>>1はできたのか?

>>5「Referer」がわからないって…
HTTTPプロトコルのヘッダのこと?
WinSockでべた書きすればいいんじゃないのか?

35あぼんぬ:あぼんぬ
あぼんぬ

36名無しさん:2003/07/09(水) 15:58 ID:htANL54E
>>13
なんでRefererはmusic2.2ch.net/〜なのにhostはpc.2ch.netなのさ?

37名無しさん:2003/07/10(木) 23:23 ID:/BXtQqeY
>1は逃げたか?

38名無しさん:2003/07/11(金) 08:19 ID:15/uRFuo
>>1は2ヶ月もしないで飽きたんだな。

391 </b><font color=#FF0000>(GQrDul2E)</font><b>:2003/07/11(金) 19:52 ID:BzAJ4.TY
>>32-38
オレにはだれかが作ったVB製2chブラウザのプログラムを改造するぐらいしかできん。
よって、まずはだれかがVBのプログムを公開してくれないとどうにも手出しできん。

>>34
それがムズイ
>>36
そこがなおったとしても結局ほかになおすところがたくさんありそうだからもういい。

4034:2003/07/12(土) 04:29 ID:zDKKXdRY
Winsockで

send("GET http://news.2ch.net/news7/dat/1238379739.dat HTTP/1.1\r\n")
send("Host: news.2ch.net\r\n")
send("User-Agent: Monazilla/1.00 (toolname j/ver 1)")
send("Connection: close\r\n")
send("\r\n")

とでも書けばよかろう。

41名無しさん:2003/07/14(月) 23:56 ID:2okm/Hq.
根本的な問題発見
なぜ書き込み処理からやるんだ?
荒しプログラムでも作るつもりだったのか?

42名無しさん:2003/07/15(火) 17:18 ID:Um9di5aM
今41がいいこと言った!

431:2003/07/16(水) 15:46 ID:6GMjmmz2
>>40
まずオレ自身が、WinSockとは何か?をしらべてからそのプログラムを試してみる。
いまのところVB6.0のInetコントロールでインターネット上の画像をダウンロードしてきて
ハードディスクにその画像を保存するプログラムをつくったことしかないから、
WinSockについてはまだよくわからんし。
>>41-42
オレはインターネットエクスプローラが好きだから、
みかけや操作感覚がIEそっくりの2chブラウザを作りたいだけだ。
----------------------
にしてもオレはVB.NETを使い始めた。いわゆる.NET Framworkというやつだ。
VB6.0とVB.NETはぜんぜん違うので覚えることがたくさんある。

44名無しさん:2003/07/16(水) 17:19 ID:bjzr.MiM
IEそっくりに作るとしてもまずやるのは読み込み処理ですが…
で、読み込み処理にRefererは要りませんが…
ちなみにVB.NET=VB7.0ですが…
て裕香.NET Framework使わなければ普通のVBと一緒ですが…

451:2003/07/16(水) 17:28 ID:6GMjmmz2
>>44
読み込みはオレにも余裕でできる。
.NET FrameworkをつかってVB6.0独自のdllをあまり使わないようにしようと思っておる。

46名無しさん:2003/07/17(木) 10:33 ID:Uxp4CHZ.
>45
じゃぁ読み込み処理だけのバージョンを公開しろ話はそれからだ。

471:2003/07/17(木) 18:39 ID:JJDqpTVY
>>46
そのうちな

481:2003/07/17(木) 20:27 ID:JJDqpTVY
2chブラウザの開発に時間をかけるのはやめてもっと有意義に寿命をつかうことにした。
開発終了

49名無しさん:2003/07/18(金) 00:38 ID:xsMLZn7.
>>48
はじめからそういえよ。
飽きたんだろ。

501:2003/07/18(金) 00:49 ID:JJDqpTVY
>>49
いくらがんばっても幸せになれないことをオレはしない

511:2003/07/18(金) 19:33 ID:JJDqpTVY
まずはHTTPやTCP/IPについて調べたり、
VC++と言うのもやってみようかなと思ったり。
VC++の入門書でいいのがあったら買ってくる。

52名無しさん:2003/07/19(土) 21:34 ID:YNDmQoCI
>>50
スレ立てる前に気づけよこの人生無駄遣い人間

531:2003/07/19(土) 23:37 ID:PpIlVqq6
>>52
アッソ

54名無しさん:2003/07/23(水) 20:08 ID:iwOwqiH.
VC++の入門書でいいのはあったか?

551:2003/07/24(木) 08:18 ID:pbxQiawk
>>54
MFCの本しかまだみつかっとらんから、
もっと言語の基礎から解説している本を電車でとおくに出かけて見つけてこなければ。
なにしろVC++は自分で関数を構築してアプリをつくるらしいから、MFCの本だけでは
コンポーネントをぺたぺたはるプログラミングしかできひんし。
まあしばらくはVB.NETであそべそうだが。

561:2003/07/24(木) 08:22 ID:pbxQiawk
2chの記事を取り込むソフトつくりちう
ttp://nyannyan.minidns.net/upload3/upfile/20030723232633_up024.png

57名無しさん:2003/07/24(木) 23:27 ID:Hqb7gYrw
>1
む〜んは勘弁してください。
キショイです。

58名無しさん:2003/07/26(土) 06:14 ID:iwOwqiH.
>>56
お前でも作れるソフトがあんのか?

591:2003/07/27(日) 00:24 ID:aRVcqw9o
>>57
もっとエロいのがほしいのか。
>>58
デスクトップの壁紙を変更するソフトとかも作ったことある。

601:2003/07/27(日) 10:36 ID:wE2cYaQQ
2chの記事であるdatを解析しているところだが、
<b>タグの使い方がおかしい。これはbbs.cgiのミスだ。

61名無しさん:2003/07/27(日) 15:43 ID:iwOwqiH.
>>60
逆になっているとでもいいたいん?

62名無しさん:2003/07/27(日) 16:26 ID:u.DE4J6w
>60
トリップ部分の<b>タグが逆になっているのは仕様です。
(htmlに変換したときにボールドを解除する為)

つうか、何でそうなってるのぐらい調べろよ

631:2003/07/27(日) 21:32 ID:wE2cYaQQ
>>61-62
キミたちの言ってることがよくわからないので、しばらくdatを眺めてからまたもの申す

641:2003/07/27(日) 22:45 ID:wE2cYaQQ
2chの記事をダウンロードしてWindowsマシンで見ても文字化けしてないから、
2chサーバはWindows Server 2003とかのShift-Jis系オペレーティングシステムを使っていると予想される。
EUCコードは出力していないようだ。

65名無しさん:2003/07/27(日) 22:56 ID:2R1BFHdQ
>64
(゜д゜)ポカーン

661:2003/07/27(日) 23:06 ID:wE2cYaQQ
>>65
まあSIft-JisとEUCコードの違いに悩んだことがない人には64の意味がわからんだろうな

67名無しさん:2003/07/27(日) 23:20 ID:2R1BFHdQ
>64
2chのサーバーはApache(Unix)ですが…

681:2003/07/27(日) 23:40 ID:wE2cYaQQ
>>67
わしはVBのInetコントロールで
Inet.OpenURL("http://2chのスレのアドレス")
とやって記事をダウソしているが、
じゃあなぜそのダウソしたのを「Shift-Jisしかあつかえないテキストエディタ」
で開いてもちゃんと記事をよめるのだ?
わざわざApacheでShift-Jisを出力しているか???????それはどうやるのだ???

691:2003/07/27(日) 23:48 ID:wE2cYaQQ
最近のUNIXはShift-Jisなのか?

70名無しさん:2003/07/27(日) 23:54 ID:2R1BFHdQ
>68
えーと、少しは自分で調べたほうが良いと思います。

71名無しさん:2003/07/28(月) 02:05 ID:QR27JOfg
だんだん>>1が哀れになってきたな…。

もう少し勉強してからプログラム組んだほうがいいと思うけど、とりあえず
2ch関係なら ttp://age.s22.xrea.com/talk2ch/ あたりで仕様についても
理解してからやってね。無駄に負荷かけられても、その…なんだ。困る。

721:2003/07/28(月) 06:59 ID:wE2cYaQQ
>>70-71
2chの仕様を調べる時間がある人はいいね。あーいそがし

731:2003/07/28(月) 07:17 ID:wE2cYaQQ
・解説
次の板があったとする。
ttp://hobby.2ch.net/warhis/
↑にsubject.txtを付加する。
ttp://hobby.2ch.net/warhis/subject.txt
そうするとスレ一覧が表示される。
スレIDとスレタイトルはデリミッタ<>で区切られている。
各スレは改行コードで区切られている。
記事数は各行の最後の()内にある。

これを元にスレ情報を取得するやからもいる。
が、オレはちがう。つづく

741:2003/07/28(月) 07:47 ID:wE2cYaQQ
では原点にもどって、さいしょからの流れをみてみよう。
まず2chのメニューを読み込む。
ttp://www.ff.iij4u.or.jp/~ch2/bbsmenu.html

メニューのソースを見ると、各サーバ(大カテゴリ)は<BR><BR>で区切られるのがわかる。
<BR><BR><B>地震</B><BR>
<A HREF=http://aa2.2ch.net/eq/&gt;臨時地震</A><br>
<A HREF=http://aa2.2ch.net/eqplus/&gt;臨時地震+</A>
<BR><BR><B>ニュース</B><BR>
<A HREF=http://book.2ch.net/bizplus/&gt;ビジネスnews+</A><br>
<A HREF=http://news2.2ch.net/newsplus/&gt;ニュース速報+</A><br>
<A HREF=http://news2.2ch.net/mnewsplus/&gt;芸スポ速報+</A><br>

<BR><BR>または<BR><BR><B>でメニューをスプリットすると、
スプリット結果の配列には大カテゴリごとの情報が格納される。
たとえば、
Array(0)=
地震</B><BR>
<A HREF=http://aa2.2ch.net/eq/&gt;臨時地震</A><br>
<A HREF=http://aa2.2ch.net/eqplus/&gt;臨時地震+</A>

751:2003/07/28(月) 07:51 ID:wE2cYaQQ
Array(0)=
地震</B><BR>
<A HREF=http://aa2.2ch.net/eq/&gt;臨時地震</A><br>
<A HREF=http://aa2.2ch.net/eqplus/&gt;臨時地震+</A>
を、
<A HREF=を目安に文字列操作すると、
Arr3(c10, 0) = インデックス
Arr3(c10, 1) = サーバ(大カテゴリ)
Arr3(c10, 2) = 板名
Arr3(c10, 3) = 板URL
のように板情報を抜き出せる。
インデックスは2ch内での板の並び順だ。

761:2003/07/28(月) 07:57 ID:wE2cYaQQ
板の抜き出しが終わったので、次はスレを抜き出す。
私の場合は、subject.txtではなく、subback.htmlを利用してスレを抜き出している。
ttp://pink.bbspink.com/ascii2d/subback.html

Arr4(1000,8) スレインデックス、所属サーバ、所属板、スレタイトル、スレID、スレURL、datURL、保存フォルダ、保存ファイル名
↑スレ方法を抜き出して配列変数に格納したところ。

ここまでできたので、
今はスレ自身(記事)を読み込むプログラムをつくっているところ。

77名無しさん:2003/07/28(月) 10:51 ID:UP9xp.y.
>>76
何故どのソフトもsubject.txtを使ってるのか小一時間考えろ。
解らないなら、今のうちに開発やめたほうがいいよ。
というか、死んだほうがいいよ。

781:2003/07/28(月) 11:05 ID:wE2cYaQQ
>>77
負荷の問題とか思ってたらおまえこそお笑い者だぞ

791:2003/07/28(月) 11:17 ID:wE2cYaQQ
>>76のArr配列の中身を具体的に見てみると、
----------------------------
1
地震
臨時地震
大地震のときにこれだけはもって逃げたいベスト3
1059353768
http://aa2.2ch.net/test/read.cgi/eq/1059353768/
http://aa2.2ch.net/eq/dat/1059353768.dat
地震 臨時地震
大地震のときにこれだけはもって逃げたいベスト3 (1059353768)
-----------------------
2
地震
臨時地震
今回の地震をドラクエ風に語るスレ
1059217529
http://aa2.2ch.net/test/read.cgi/eq/1059217529/
http://aa2.2ch.net/eq/dat/1059217529.dat
地震 臨時地震
今回の地震をドラクエ風に語るスレ (1059217529)
-----------------------
のようにスレ情報が抜き出されたのがわかる。

80名無しさん:2003/07/28(月) 13:16 ID:UP9xp.y.
>>1は批判要望板とかあまり見ない人なのかも。

811:2003/07/28(月) 15:38 ID:wE2cYaQQ
>>80
数ヶ月前、オレがうわさになっているスレがあったときはよく訪問してた

821:2003/07/28(月) 17:17 ID:wE2cYaQQ
ビルゲイツは好きだがイラクで一般市民に暴力を振るってるアメリカ人はムカツクな

831:2003/07/28(月) 22:10 ID:VBK9gk7I
おれはすごいことをハッケンした。
datファイルの各カキコミはラインフィードでくぎられておる。
キャリッジリターンはふくまれていない。
スプリットの実験結果でとんでもない事実を発見しちまったもんだ。

841:2003/07/29(火) 11:10 ID:VBK9gk7I
datファイルを<>でスプリットして、
名前やメールや書き込み日・IDや記事本文に分解したところ。
------------------
4,0
ななしさん
------------------
4,1
sage
------------------
4,2
03/07/28 13:27 ID:TTjw+clX
------------------
4,3
どーですかー
------------------

85名無しさん:2003/07/29(火) 21:12 ID:BHPXiVWQ
>>84
------------------
4,4

------------------

これも忘れずに。

861 </b><font color=#FF0000>(GQrDul2E)</font><b>:2003/07/30(水) 00:06 ID:6DkpxaNM
>>85
うぃ

871 </b><font color=#FF0000>(GQrDul2E)</font><b>:2003/07/30(水) 00:06 ID:6DkpxaNM
>>85
うむ

881:2003/07/30(水) 00:07 ID:6DkpxaNM
どーですかーだって。ゲラ

891:2003/07/30(水) 00:09 ID:6DkpxaNM
つまりだな、スレ一覧というのはスレ自身とは違って、
あまり何回も読み込まれるものではないから、
subject.txtではなくsubback.htmlを読みに行ってもゆるされるということだな。
それにたいして、スレの読み込みはread.cgiを通さないで、つまりサーバーサイドプログラムを起動させずにdatを取得しようというわけ。

901:2003/07/30(水) 17:24 ID:6DkpxaNM
眠い病 になってしまった

91名無しさん:2003/07/30(水) 19:40 ID:LYcH02ps
subject.txtではなくsubback.htmlを読みに行クメリットはなんですか?

921:2003/07/30(水) 20:07 ID:6DkpxaNM
>>91
subbackを使うとスレ情報を抜き出すのは大変になるから短所ばかりになるだろう。
他の人がやっていないことをやっているという満足感だな。
それに、バックという言葉にさそわれないかい?

931:2003/07/31(木) 01:20 ID:6DkpxaNM
オレもう
ロールプレイングツクール
っていう言語に移行する。

94名無しさん:2003/07/31(木) 11:41 ID:RfPlHLJM
VBA製なんですが混ぜてもらってもいいですか?

"=2ch"
http://turedure.s8.xrea.com/2ch.xls

951:2003/07/31(木) 15:46 ID:6DkpxaNM
>>94
いいよ。
おっすごい。
めったに人をほめないオレもあなたには敬意を表する。

96名無しさん:2003/07/31(木) 18:19 ID:UP9xp.y.
>>94
おお、なんか凄いな。>>1とは大違いだ(プ

97名無しさん:2003/07/31(木) 18:56 ID:sK0CBwSQ
306デフォルトの名無しさん[sage] 03/07/31 18:45 ID:
IEそっくりの2ちゃんビューアを作るとしてもまずやるのは読み込み処理だと思うんですがどうでしょう?
また、VB.NET=VB7.0でて.NET Framework使わなければ普通のVBと一緒ですよね?

307デフォルトの名無しさん[sage] 03/07/31 18:53 ID:
>>306
別物です。

981:2003/07/31(木) 19:43 ID:hgSpDnJw
>>96アッソ
>>97
のカキコミはオレも知っているが、それを書き込んだのは別人

99名無しさん:2003/07/31(木) 19:54 ID:UP9xp.y.
>>92
subback.htmlを読むのはやめてって夜勤さんが言ってた気がします…

1001:2003/07/31(木) 21:05 ID:hgSpDnJw
>>99
オレも冗談でsubbackを読むといっていただけだ。

101名無しさん:2003/07/31(木) 21:58 ID:H/QlMEBE
http://ip.tosp.co.jp/i.asp?I=kami1008

1021:2003/07/31(木) 22:54 ID:hgSpDnJw
2chねるではドキュメントの間隔を一行あけるときに
<P>タグではなく<BR><BR>を使ってるのがオレの好みと一致していてグッド

103"=2ch":2003/08/01(金) 07:36 ID:RfPlHLJM
バージョン上げてみました。
http://turedure.s8.xrea.com/2ch.xls

1041:2003/08/01(金) 09:21 ID:hgSpDnJw
>>103
りょうかい

105名無しさん:2003/08/01(金) 11:01 ID:BKXUuIns
2ch用ブラウザ って
どこで手にはいるの?

106名無しさん:2003/08/01(金) 11:01 ID:BKXUuIns
2ch用ブラウザ って
どこで手にはいるの?

1071:2003/08/01(金) 11:23 ID:hgSpDnJw
>>105,106
ttp://www.monazilla.org/

1081:2003/08/01(金) 12:15 ID:hgSpDnJw
関連リンク
ttp://www.nikkansports.com/ns/entertainment/f-et-tp0-030731-0020.html

1091:2003/08/01(金) 17:57 ID:kvU7tSoQ
dat保存プログラムができたところ
Forever1 = AppPath & "\File\" & Ar1(i, 7)
Forever2 = AppPath & "\File\" & Ar1(i, 7) & "\" & Ar1(i, 8)
If Not fs.folderexists(Forever1) Then
fs.createfolder(Forever1)
End If
If Not fs.folderexists(Forever2) Then
fs.createfolder(Forever2)
End If
ft = fs.createtextfile(Forever2 & "\" & Ar1(i, 8) & ".dat")
ft.write(S1)
ft.close()

1101:2003/08/01(金) 18:36 ID:kvU7tSoQ
途中経過
ttp://nyannyan.minidns.net/upload3/upfile/20030801183934_hc1.png

111名無しさん:2003/08/01(金) 22:34 ID:RfPlHLJM
WindowsのUIをことごとく無視してますな。
後、捕まるから画像削除しとけ。

1121:2003/08/01(金) 23:14 ID:kvU7tSoQ
>>111
ナイスデザイン賞受賞してきた。

1131:2003/08/01(金) 23:20 ID:kvU7tSoQ
かわいい
ttp://nyannyan.minidns.net/upload3/upfile/20030801223845_DOA_mizugi.zip

1141:2003/08/02(土) 01:08 ID:kvU7tSoQ
プログラムで頭をなやませすぎてすこしノイローゼ気味

115"=2ch":2003/08/02(土) 17:21 ID:RfPlHLJM
ふと気付いたんですが、VBじゃなくてVB.net?

やっつけ仕事でWebサイト作ってみました。
http://turedure.s8.xrea.com/equal2ch/

1161:2003/08/02(土) 21:21 ID:kvU7tSoQ
>>115
ホームーページもできたなんていいなあ。
オレのももうちょっとで完成しそうだけど。
さて、
こちらにはVB.NETやVB6.0やエクセルや、VC++とかJAVAとかあるが、今はVB.NETをメインでつかっている。
でも本当の得意分野はASPプログラミングだ。

117"=2ch":2003/08/02(土) 21:24 ID:RfPlHLJM
ASPで作ればおもしろいのに。
最近サーバサイドでごにょごにょするツール増えてきてるし。

1181:2003/08/03(日) 11:18 ID:AsM2icN6
>>117
もちろんその計画もある。
自宅が光回線になったら自宅サーバでASPアプリを公開しようと思っていた。
もっとも、まず最初に公開するASPアプリは画像アップロダだけどん。

1191:2003/08/03(日) 15:13 ID:AsM2icN6
オレのも完成したが、オレのパソコン環境でしか動かなそうなので
自分だけが使うことにした。

120名無しさん:2003/08/03(日) 20:11 ID:QR27JOfg
>>115
お気に入りへの登録はどうすればいいですか?

121"=2ch":2003/08/03(日) 20:16 ID:RfPlHLJM
>>119
じゃあこのスレもらってもいいでつか?

>>120
板リストでお気に召した板名を右クリックして下さい。
削除する場合はお気に入り無いの板名を右クリックです。

122名無しさん:2003/08/03(日) 20:24 ID:QR27JOfg
ありがとうございます。
お気に入りにスレッドを登録する方法もありますか?

123"=2ch":2003/08/03(日) 20:53 ID:RfPlHLJM
取りあえずは無いです。

124名無しさん:2003/08/03(日) 21:16 ID:QR27JOfg
了解しますた。今後の発展に期待してまっすヽ(´ー`)ノ

1251:2003/08/03(日) 21:21 ID:AsM2icN6
>>121
自分のスレを立てるのも選択肢の一つだ。
ただし、なぜか大勢の人がこのスレを監視してるから、
ここだとブラウザの宣伝効果絶大だ。

126名無しさん:2003/08/04(月) 03:30 ID:QR27JOfg
ちなみに>>1さんと>>123さん以外の発言は全部俺ですよ?www

1271:2003/08/04(月) 06:39 ID:AsM2icN6
>>126
アッソ

128名無しさん:2003/08/04(月) 11:21 ID:YhiT09I.
>126
漏れも発言してるぞ

1291:2003/08/04(月) 19:24 ID:pjvQTAAw
>>128
りょうかい

130126=128:2003/08/04(月) 22:50 ID:UP9xp.y.
釣れた。

131128=126:2003/08/04(月) 23:57 ID:cGAn1gLM
わーい

1321:2003/08/05(火) 00:03 ID:pjvQTAAw
フーン。

重要事項
l50=エルごじゅう(ライン50)
150=ひゃくごじゅう

1331:2003/08/05(火) 16:50 ID:pjvQTAAw
画像収集ソフトの
Windows98や古いパソコンでも動くような軽量版をつくってみた。

まずこのなかのsetup.exeを実行すると各種コントロールがセットアップされる。

ttp://www.interq.or.jp/guitar/lead/up/20030805155739_setup.zip

つぎにこのなかのreadme.txtを読んで、
HtmlChanger004.exeをこのソフト専用のフォルダを作ってその中で実行するだけ。ルートフォルダでは動作しないようになっている。

ttp://www.interq.or.jp/guitar/lead/up/20030805164310_setup2.zip

ソフトが起動したら、板リストの下のほうの半角二次元を選択してみる。それからOKボタンを押して1日待つ。
画像はFileフォルダに保存されている。

134最新版 1:2003/08/05(火) 19:09 ID:pjvQTAAw
バージョンアップ完了
>>133の下側のリンクのファイルに上書き保存すると更新完了。
ttp://www.interq.or.jp/guitar/lead/up/20030805190636_setup2.zip

135名無しさん:2003/08/06(水) 11:35 ID:IswKq1J6
で、もっと汎用性があるソフトが複数あるわけだが

軽さでもしょっぱいなw

136名無しさん:2003/08/06(水) 12:31 ID:3fM1fqCw
>92
実際の利用に違いの出ないそんなしょぼい事じゃなくてさ、
使ってびっくり嘗て誰も成し得なかった驚愕の新機能とか
搭載してみようよ。
リモートあぼーん とか、

1371 </b><font color=#FF0000>(GQrDul2E)</font><b>:2003/08/06(水) 20:49 ID:giDg90sM
>>135
動作が重いのは認める
>>136
自分に必要でない機能はつくらない

1381:2003/08/06(水) 23:21 ID:giDg90sM
・HtmlChanger004最新板

Dim i as integerというプログラムをDim i as Longに書き換えて変数のケタ数を増やしたのでスレが500個以上ある板も取り込めるようになった。

ttp://nyannyan.minidns.net/upload3/upfile/20030806231929_setup2.zip
前回アップしたファイルに上書き保存するとアップデート完了

1391:2003/08/08(金) 03:02 ID:2I3pHf6I
ゲームボーイアドバンスを買ってきた。あの液晶、暗くて画面が見づらい。
プログラミングの勉強のひとつに、ゲームをプレイしてみる、というのがある。

140名無しさん:2003/08/09(土) 20:43 ID:bM2CQowA
はいはい

1411:2003/08/10(日) 12:50 ID:c1yhuuB6
>>140
このスレは終了します。

142"=2ch":2003/08/10(日) 18:46 ID:RfPlHLJM
じゃあ、遠慮なく頂きます。

143名無しさん:2003/08/11(月) 00:55 ID:eo4Kdy4w
>>142
ワロタ

144名無しさん:2003/08/11(月) 02:29 ID:QR27JOfg
>>142
じゃあ、糞スレに削除以来出して来いや

2ちゃんねる用ブラウザ「=2ch」
http://pc2.2ch.net/test/read.cgi/software/1060268973/l50

145名無しさん:2003/08/11(月) 16:46 ID:RfPlHLJM
>>144さん向こうのスレで偽=2chさんやってる

146名無しさん:2003/08/12(火) 01:20 ID:QR27JOfg
偽って?

147名無しさん:2003/08/14(木) 16:53 ID:KN/qz29M
Version 1.1a で板メニューを選ぶとエラーが出ます。
実行時エラー 1001
アプリケーション定義またはオブジェクト定義のエラー
だそうだ。

当方環境
Win2k + Office2k

専用スレがあったんだね。

148147:2003/08/15(金) 09:27 ID:A75x.09o
>147 の件はサクーシャ様に解決していただきました。
ありが㌧>サクーシャたん

149名無しさん:2003/09/17(水) 10:02 ID:xsUplLnE
1は何処に行った?

150名無しさん:2003/09/17(水) 14:12 ID:grVGbHx.
tes

151名無しさん:2003/09/18(木) 11:10 ID:zBzf0EAk
1は2chアク禁中です。

152あぼんぬ:あぼんぬ
あぼんぬ

153あぼんぬ:あぼんぬ
あぼんぬ

154あぼんぬ:あぼんぬ
あぼんぬ

155あぼんぬ:あぼんぬ
あぼんぬ

156あぼんぬ:あぼんぬ
あぼんぬ

157あぼんぬ:あぼんぬ
あぼんぬ

1581 </b><font color=#FF0000>(GQrDul2E)</font><b>:2004/05/26(水) 21:30 ID:VTeJDP8U
</b><b>
2ちゃんてbタグの使い方おかしくね?

159名無しさん:2004/12/12(日) 23:19 ID:ZfHrRhgY
なんか面白くて夢中で読んでしまいました。

自分には内容がサッパリ分かりませんでしたが、今進行中のプロジェクトや予定などありましたらお聞かせ下さい。

ガンガレ1タン

160名無しさん:2004/12/15(水) 14:52 ID:ElBFXn8M
で、1は死亡ですか?

161名無しさん:2004/12/17(金) 23:53 ID:LBQvNyRw
きっと、忘れた頃に戻って来てくれるよ

162名無しさん:2004/12/18(土) 20:59 ID:It8MITLE
test

1631 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/02/07(月) 21:18:23 ID:r3h4LYLg
2chブラウザを作るときに難しいのはカキコミプログラムだが、心配することは無い。
ほとんどの人にとって大事なのは2ch記事の読み込みと、2chに貼られているファイルの保存だ。
私はカキコミはあきらめて、2chの記事を読み込んで保存するツールと、スレに書かれているリンク先にあるお宝ファイルのみの収集を行うことにしている。

164159:2005/02/07(月) 23:10:28 ID:F2nZkys2
おかえりなさい、1さん

了解しました。完成したらぜひベータテストさせてください。

1651 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/02/08(火) 02:19:16 ID:r3h4LYLg
インフルエンザにつきしばらくお休み

166名無しさん:2005/02/08(火) 12:44:51 ID:F2nZkys2
おだいじに

1671 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/02/08(火) 18:13:44 ID:r3h4LYLg
病院で点滴を打ってきたばっかりだが少しずつプロジェクトをすすめていこう。
プロジェクトの目的は2chに貼られている画像などを収集することだ。
2chの吐き出す文字コードはShift-Jisなのでかなり簡単に作ることができるだろう。
しかし2chのサーバの一部はUTF-8を吐くようだし、これからは2chの使用がUTF-8になる可能性もあるので
当ソフトではUTF-8として文字を扱うことにした。UTF-8はShift-Jisをそのまま含んでいるので特に文字コード変換せずに
Shift-JistをUTF-8として扱ってしまって大丈夫だ。EUCコードを扱うときは文字コード変換メソッドをかます必要がある。
Yahoo占いを毎日収集するソフトを作ったことのアル人はEUCコードを扱った経験もあるだろう。
Windowsアクセサリにある文字コード表のUnicode(UTF-8はUnicodeの一種)を見ればShift-Jisに無いトランプ記号などを見つけてきっとUnicodeに魅せられることだろう。

1681 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/02/08(火) 18:25:49 ID:r3h4LYLg
さてネットドキュメントをローカルにダウンロードする方法だがいろいろある。
Winsock,InetControl,WebBrowser(いわゆるIE),WebClientなどが有力だ。
一番使いやすいのはInetControlで、VB6.0の場合はこれがよい。
VC++などではWinsockが良く使われる。WebBrowserコンロロールはブラウザにファイルを表示しながらファイル収集する場合などに使うこともある。
今回はVB.NETを開発言語にするので.NETのクラスであるWebClientを使ってみる。

1691 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/02/08(火) 18:31:08 ID:r3h4LYLg
WebClientはIEの設定を継承しているのでIEのプロクシ設定やファイヤーウォールを正しく2chドキュメンが読めるようにしておこう。
これについては各自のセキュリティソフトのマニュアルにしか載っていないことなのでこちらからはこれぐらいしか言えない。
この設定をちゃんとやらないとネット上のファイルをダウンロードできない。
ファイルを収集する人というのはセキュリティソフトをオフにしているぐらいのつわものであるのも言っておこう。
自分のパソコンを守りすぎる神経質なひとはファイル集めには向いてない。

170名無しさん:2005/02/08(火) 19:33:25 ID:wLpr1Ldo
>UTF-8はShift-Jisをそのまま含んでいるので
んなこたない
全然違う
UTF-8の漢字なんて3バイトだし
>自分のパソコンを守りすぎる神経質なひとはファイル集めには向いてない。
Winnyを使う人はアンチウィルスソフトを切ってくださいとそういうことですね?

1711 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/02/08(火) 19:58:00 ID:r3h4LYLg
せっかくのネタを壊すのはおまえか?

スレを保存するときは.htmlファイルとして保存するわけだが、そのときにHTMLファイルの文字エンコード指定もファイルに書き込んでおく。
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">

1721 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/02/08(火) 23:09:36 ID:r3h4LYLg
・メモ
2/11吉野家牛丼復活

1731 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/02/14(月) 11:57:54 ID:yKycIhiw
作るソフトがたくさんあるため、2ch用ソフトはまたしばらくしてつくる。
しばらくは日記を書く。当スレが削除されないうちに読んでおいてくれ。
[1さんブログ]
グリンジャンボ宝くじ本日発売

1741 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/08(火) 00:37:37 ID:HPcrc27o
ここで2chにⅠⅡⅢなどを書き込んだときに123と書けと言われることについて言及しておきたい。
Windowsアクセサリの文字コード表でWindows日本語を見てみよう。
ⅠⅡⅢが含まれているのがわかる。これを書くと怒り出すのはマッキントッシュユーザーだ。
しかしマカーに遠慮する必要は無い。
Sift-JISというのはMS漢字コードとも呼ばれてマイクロソフトが策定したものだ。
そしてそのSift-JISを2chサーバは出力するように設定されている。
つまり、2chにおいてはⅠⅡⅢを使っても良いのである。
2chを見るからにはユーザはSift-JISを見れる(見られる)環境を自分で準備する必要があるのだ。
2chの外では全員が見れる文字を書く必要があるが、2chではSift-JISに特化してよいのである。
さああなたもⅠⅡⅢを書き込んで怒り出してくるヤツらを釣ろうではないか。

1751 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/08(火) 19:51:28 ID:HPcrc27o
さて、みんなのハードディスクにあるテキストファイルはほとんどがShift-JISだ。
しかし.NETからはUTF-8をデフォルトで扱うようになった。
テキストファイルの作成、書き込み、読み込みは文字コードを正しく設定しないと文字化けする。
ある文字コードを別の文字コードに変換することを文字エンコードといい、もとに戻すことをデコードと言う。
.NETにはEncodeクラスが用意されているが、わざわざこのクラスを使うのも大げさだと思うので、
System.IOのStreamReaderやStreamWriteの引数で文字コードを指定するのが簡単だ。
Dim sw As New StreamWriter(Path1, False, System.Text.Encoding.GetEncoding("UTF-8"))
System.TextのEncoderクラスを使ってももちろんよいが、その場合は文字列をバイナリとして扱う箇所があるのでちょっとしたエンコードをやるだけでも大げさになる。
EUC,JISなども同様に扱える。
これでサーバがどんな文字コードを出力していても対処できるようになったと思う。
テキストファイルの扱いができるようになったら次はバイナリファイルの扱いだ。
バイナリファイルを操作できるといよいよ2chに貼り付けられている画像ファイルを自動保存するプログラムが作れる。

176名無しさん:2005/03/09(水) 01:43:37 ID:LA2kBWRs
>>174
それは違う。content="text/html; charset=Shift_JIS"としたときは
符号化方式にShiftJIS、文字集合としてJIS X0201とJIS X0208を
使用しているとするべきで、そこにⅠⅡⅢは含まれない。
明示的にⅠⅡⅢを含むWindows文字集合で表示されることを期待
するときのcharsetはWindows-31Jになる。(Webブラウザが解釈
できるかどうは知らんが)
参照: http://www.iana.org/assignments/character-sets
ⅠⅡⅢがローマ数字の123に見えるのは偶々そういう環境で
見ているというだけに過ぎないよ。

もちろん書き手が「大部分のWindowsユーザーのところで意図した
とおり表示されればいいや」と考えるのはそれはそれで有りだと
思うけどね。

1771 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/09(水) 07:30:45 ID:HPcrc27o
どうやらオレのお手本にしたページ自身が間違ってたようでこちらも間違ったことを知識として持っていたようだ。

1781 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/09(水) 07:33:03 ID:HPcrc27o
ひろゆきの持ってるパソコンがIBMなのでⅠⅡⅢを使ってもよいとさせていただく。
ひろゆきがルールなので。

1791 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/09(水) 09:14:38 ID:HPcrc27o
ADOを使いこなせるプログラマーも.NETをやるからにはADO.NETへの移行が必要だ。
ADOはCOMコンポーネントゆえの制限があるので.NETクラスのADO.NETを使う必要があるということだ。
ADO.NETはADOとはまったく違うので習得はそれなりの手間だ。それでADOを使い続けるプログラマーも多いと思うが、
ADO.NETを2日勉強すればADO.NETの便利な部分に魅せられることだろう。
ADOに限界を感じるのはサーバーにアクセスが増えてきたときだ。ADOはシングルスレッドのCOMコンポーネントなのでアクセスの多いサーバーではマルチスレッドのADO.NETが良い。
-------------------------------
'レコード削除
Dim conn As New SqlConnection(ConnectionString)
Dim SQL As String
SQL = "Delete From Categories2 where CategoryID=@CategoryID"'←SQL文に変数を埋め込める名前付きパラメータ@〜は便利
Dim cmd As New SqlCommand(SQL, conn)
cmd.Parameters.Add("@CategoryID", T3_1.Text)'←パラメータに値をセット
conn.Open()
Dim num As Integer = cmd.ExecuteNonQuery'←numには操作されたレコードの数が返ってくる。
MSG.Text = num
conn.Close()

1801 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/09(水) 09:28:31 ID:HPcrc27o
2chデータベースの仕様をきぼんぬ

181名無しさん:2005/03/09(水) 14:42:39 ID:Oq2JCyZU
2chにデータベースなんてあるんですか?

be.2ch.netのユーザー管理しているMySQLのことかなぁ・・・

1821 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/09(水) 16:57:25 ID:Y.qpgkLw
気にせんといてー

1831 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/09(水) 20:41:05 ID:Y.qpgkLw
2chに貼られているファイルを集めるソフトを稼動させると
数百メガバイトのファイルもゴロゴロ拾ってくる。
このファイルはゲームの体験版や動画などだ。
そこで、パソコンのメモリは最低でも1GB必要だ。メモリタイプPC3200 DDR SDRAM 1GBの値段は新品バルク品で12000円ぐらいである。
純正だともっと高い。
ファイルのサイズはダウンロード前には取得できないようなのである。
これはサーバ側の情報が漏れないようにとのサーバOSやWebサーバの仕様のようである。
したがってファイルのサイズはダウンロードしたあとに取得する。
そして、このファイルが〜メガバイト以上のときは削除するなどといった保存時の場合分けをすれば保存先のディスクが満タンになってしまうことを避けやすい。
さらにファイルサイズが数キロバイトのときはダウンに失敗してたりするのでダウンリトライしてみたりする。
あとは、すでにダウンロード済みのファイルを再びダウンロードしてしまうようなこともしないようにする。
ここらへんはプログラミングの知識ではなく各自のアイデアによる。
ブラクラへの対処、保存するファイルのタイプ、スキップリストなど考慮することはたくさんある。
本講座では基本的な事のみを解説するので各機能は自分で作って欲しい。
とりあえずあとはバイナリファイルの保存方法とリモートファイルのダウンロード方法だけを解説すればもうファイル収集ソフトについては十分だと思っている。

さらに大事なことを言うならばサーバーがメンテナンス中や混んでいる時にクライアントに返してくるエラーメッセージ処理だろう。
ファイルのダウンロードに失敗するとエラーが起こり、2chに貼られているリンクのほとんどはすでにリンク切れでエラーを返してくるので
エラーが起こっても動き続けるプログラムを書く。

1841 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/10(木) 03:54:03 ID:Y.qpgkLw
アプリには環境設定を保存しておく仕組みが必要だが、
保存はテキストでもいいがXMLやリレーショナルデータベースの方が機能性が高いので、
今回はAccessのデータベースを使ってみるつもりだ。
Accessには環境設定だけでなくブラクラURLなども登録しておく。
Accessの.MDBファイルを扱う時にはADO.NETとSQLを使う。
名前空間はSystem.Data.OleDbをインポートする。名前付きパラメータは@ではなく?を使う。

1851 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/10(木) 10:35:47 ID:Y.qpgkLw
SQL Server,MSDEの場合はImports System.Data.SqlClient
Accessの場合はImports System.Data.OleDb
を使うが、同じマイクロソフトの製品なのに仕様がかなり違う。
Accessでは@名前付きパラメータが使用できず、?ブレースホルダを使う。
?を1コ使っている例は見つかるが、2コ以上の?を使っている例は検索しても解説ページが見つからなかったので自分で作ってみた。
2コ以上の?を使っている例は現時点ではこの解説が唯一だと自負している。
ブレースホルダ付きSQLステートメントは値をセットする順序が大事で、パラメータ名には支配されない。
SQL文に?が出てきた順にcmd.Parameters.Addで値をセットする。
OLE DBの場合は
SQL="Select _ from TABLE Where Field=" & 変数
としてブレースホルダを使わない方が良いような気もするが、
cmd.Parameters.Addはユーザに入力して欲しくない特殊文字を自動的にエスケープしてくれるのでセキュリティ的には有利だ。
とはいえ、各言語やSQLの予約語・特殊文字はそう多くは無いので自前でエスケープしてOLE DB SQL文には従来の変数代入方式でもよい。
------------------------------------
Dim conn As New OleDbConnection(接続文字列)
Dim SQL As String
SQL = "Update Categories2 Set CategoryName=?,Description=? where CategoryID=?"
Dim cmd As New OleDbCommand(SQL, conn)
cmd.Parameters.Add("CategoryName", 値)'←SQL内の?の順にパラメータをパラメータコレクションに追加
cmd.Parameters.Add("Descriotion", 値)'←
cmd.Parameters.Add("CategoryID", 値)'←
conn.Open()
Dim num As Integer = cmd.ExecuteNonQuery
conn.Close()

1861 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/10(木) 10:46:45 ID:Y.qpgkLw
SQL特殊文字のエスケープの他に、
HTMLエスケープ(HTML Encode)
URLエスケープ(URL Encode)
は必須である。
よくJavaScriptをユーザに書き込まれて破壊されている掲示板を見かけるが、
アレは投稿記事をHTMLエンコードしないで表示しているから投稿されたスクリプトが有効になっているのである。
ご愁傷様!

1871 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/10(木) 23:22:06 ID:Y.qpgkLw
アプリを作る場合はコントロールに色をつけることがよくある。
色を指定しない場合は灰色のボタンなどシステム定義の色しか表示されない。
Button.BackColor = ?
さて?のところは.NETではどう書く?答えは後ほど。

1881 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/11(金) 10:10:32 ID:Y.qpgkLw
Button.BackColor = "#33FF66"
Button.BackColor = "White"
と書きたいところだがエラーになる。
色を指定するにはSystem.Drawing.Colorを使う。.NETでは名前空間やクラスや構造体を意識していないとBackColorの指定みたいなちょっとしたこともできない。
CadetBlueは緑ががかった青色で、ボタンの背景色を指定するには
Button.BackColor = Color.CadetBlueとする。
HTMLに慣れている人は#33FF66みたいな16進数の色見本を持っていると思う。
数値による色指定はRGBにアルファチャンネルを加えたARGBを指定する。
ARGBの各要素は10進数で指定する。
FromArgbを使うと数値をカラー構造体に変換できる。
BackColor = Color.FromArgb(255, 95, 158, 160)
↑BackColor = Color.CadetBlueと同じ色

CadetBlueという色は数値だとどんな色なのかをネットなどで調べると#5F9EA0と書いてある。
これを.NET ARGBにするには10進数に直さなければならない。
Windowsアクセサリの中の電卓を開き、表示→関数電卓とすると16進、10進ボタンが現れる。
#5F9EA0のうちの赤要素は5Fであるから、関数電卓の16進を選択した状態で5Fと入力する。
それから10進ボタンを押すと値が16進から10進に変換される。
こうして#5F9EA0=95, 158, 160と求まった。アルファ値は透過度で、透明にしたくない場合は255を指定する。
なので#5F9EA0=255,95, 158, 160で良い。
いちばん驚いたのはWindowsアクセサリの電卓が便利なこと。

189名無しさん:2005/03/11(金) 13:51:14 ID:IVP6rgUE
Visual Style…

1901 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/13(日) 21:04:25 ID:Y.qpgkLw
電卓を使わないで自動で16進→10進に変換するにはCDecを使う。
LabelA.BackColor = Color.FromArgb(255, CDec(&HFF), CDec(&HDD), CDec(&HCC))
コードの中でコントロールの色を指定するのは
動的にコントロールを作成した場合に必須。
動的コントロールは特に画像アップロード掲示板のようなWebアプリを作るときに出番が出てくる。
ボタンが数個のアプリならボタンをフォームにドラッグドロップするだけだけど、
データベースアプリなんかはレコードを何百行もずらずらと表示して、各レコードに編集ボタンとか削除ボタンとかを付けるのでその時には動的にボタンを作成する。
画像掲示板はあまりすぎなぐらい存在するので作らなくてもよい。
2chで不足してるのは100MB以上の大物アップロダである。
どんよくな2chねらーがアクセスするとすぐにサーバーが参ってしまう。そこで大勢が大物アップロダを作れば各ロダの負荷が減る。
光回線の方はロダ作りをしてみては?
好ましくないファイルをアプられたらすぐに削除する義務があるのでファイル一覧には動的に作成した削除ボタンが必須なわけ。

1911 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/13(日) 22:47:57 ID:Y.qpgkLw
CDec(expression)

expression =任意の文字列 (String) 式または数式。
--------------------------------------------------
CDec関数は引数が文字列でも数式でもよい。これは非常に特筆すべきことだ。
たいていは
String="&H" & 〜
という文字列として16進を作成するからだ。

192名無しさん:2005/03/14(月) 11:52:13 ID:IVP6rgUE
uploaderは何でミラーリングしないんだろうか…

1931 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/14(月) 20:57:44 ID:Y.qpgkLw
ロダは個人でコソコソやってて、ミラー用マシンを持ってるほどの大きな組織はロダ運営しないし。
ロダはグレーゾーンだもの。
2chネラーに良心があるならロダにはまじめなファイルしかアップされないが。
個人同士でミラーするには光回線とマシンをボランティア的につかわせてくれる仲間も集めんと。
結局はパソコンも回線もユーザーのニーズを満たすほどのスペックには程遠いのが原因だ。
今から物理化学数学やって次世代ネット環境を構築して伝説になるしかない。

194名無しさん:2005/03/14(月) 21:42:53 ID:IVP6rgUE
1さんよ〜
2chブラウザはいいからGoogle並みのスピードのうpろだつくってくれや
ついでに上げた物の検索もついてるとなお良い

1951 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/15(火) 00:38:14 ID:Y.qpgkLw
>>194
しかしなー
最近は2chねらにやさしくしても何もいいことはないのではないかと思い始めたしなー
たとえばすでに流れてるファイルを再うpキボンヌしてもスルーされるからのぉ
そういう冷たい2chねらを見てるとモナジラプロジェクトのがんばりもかわいそうになってくるわい

196名無しさん:2005/03/15(火) 14:43:36 ID:1gzXPR1s
>ファイルを再うpキボンヌしてもスルーされるからのぉ

ワロタ

1971 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/15(火) 20:44:00 ID:Y.qpgkLw
|│ /
| ̄\
|− ゜ )─
|_/
|∧ \
|−゜)
|∧∧
| ゜−゜) ソー
|⊂/

1981 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/17(木) 21:09:19 ID:Y.qpgkLw
ドイツへ春休み旅行にいくのでしばらく講義休み

1991 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/25(金) 21:56:48 ID:INERpPZw
自然界を支配している法則の多くはドイツ人に発見された。
ユダヤ追い出しがなければドイツの科学力は今よりも高くなっていたはずだ。
人類はこれからどうなるのか?自分が一生生きていける確信が持てなければ毎日将来が不安で楽しめないだろう。
ただしゃべっている2chねらーと理想の衣食住の構築を考えているモナジラメンバーははっきりと区別されるべきである。
ざんねんながら2chで難しい話ばかりすると疎外される。たとえ人類に必要な事にプライベートで取り組んでいたとしても。
2chねらーに冷たくされた科学者は環境問題に取り組んで2chねらーを含む人類に貢献するのがばからしくなってしまう。
他の人が幸せになることはやめて自分だけが幸せになる方向に切り替える。
2chスレ内に貼られているファイルを取り込むソフトも公開しないで自分だけが使うようにした方がいいだろう。
まったく2chねらーは冷たすぎる。

2001 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/25(金) 22:10:31 ID:INERpPZw
さてADO.NETを勉強しているうちにとても魅力的な機能を発見したので書いておく。
ADO.NETのオブジェクトのうちのひとつにデータセットがある。
データセットをデータベースの操作をするためだけに使っていたのではフーンという感じである。
おそらくADO.NETを勉強したばかりのときは直接アクセスでデータベースを操作しているだろう。その場合はデータセットの恩恵は少ない。
データセットについてわかってくるうちにその大事さがわかってくる。
データセットはずばりメモリ内データベースなのだ。
サーバを運営している方にはわかるのだが、サーバには多くの2chねらーがアクセスしてきてハードディスクがカラカラ音しっぱなしなのである。
ハードディスクは値段も高いし壊れやすいしであまりアクセスされたくない。
そこでできるだけデータはメモリ内で扱うのである。

2011 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/25(金) 22:20:28 ID:INERpPZw
いままで
Array(0,0)="1"
Array(0,1)="a"
Array(1,0)="2"
Array(1,1)="b"
と配列で扱っていたものをデータセット内のテーブルとして扱えば実に扱いやすい。
ID 値
1  a
2  b
↑を並び替えるメソッドも用意されているからクイックソートやバブルソートなどのアルゴリズムを書かなくとも並び替えができてしまう。
VB6.0も好きでVB6.0の方が優れている点もかなり多いのだががこういったことを見てしまうと.NETに移行せざるを得ないのである。

2021 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/25(金) 22:29:41 ID:INERpPZw
メモリの中にテーブルを作成するコードを掲載しておく。
Dim Dt As New DataTable("Creature")
Dt.Columns.Add("ID")
Dt.Columns.Add("Name")
Dim NewRow As DataRow = Dt.NewRow
NewRow("ID") = 1
NewRow("Name") = "みるきーぱい"
Dt.Rows.Add(NewRow)
Dim NewRow2 As DataRow = Dt.NewRow
NewRow2("ID") = 2
NewRow2("Name") = "スーチーパイ"
Dt.Rows.Add(NewRow2)
'データセット内の値の変更
'Dt.Rows(0)("Name") = "みるきーぱい2"
Dim Ds As New DataSet
Ds.Tables.Add(Dt)
DataGrid1.DataSource = Ds.Tables(0) 'またはDt 、 テーブルがひとつだけのときはデータセットを使わないでデータテーブルDtでよい
DataGrid1.DataBind()
DataGrid1.Visible = True

2031 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/25(金) 22:47:53 ID:INERpPZw
データベースを設計する場合にフィールド(列)に型を指定するとおり、メモリ内テーブルにも型を指定する。
Dt.Columns.Add("ID", Type.GetType("System.Int64"))'←IDを数値型のうちのひとつに指定
Dt.Columns.Add("Name", Type.GetType("System.String"))'←名前フィールドは文字列型

2041 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/25(金) 23:12:14 ID:INERpPZw
用語について注釈しておく。
フィールド=列=Column=カラム
レコード=行=Row=ロー

ドットdt=ピクセルpx<>ポイントpt
ポイントは画面解像度によって値が変わってしまうので<>

2051 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/26(土) 02:13:23 ID:INERpPZw
[実行結果]
メモリ内テーブルCreature
ID  Name
1  みるきーぱい
2  スーチーパイ
データベースを持っていなくてもデータをデータベース的に扱うことができるようになった。
これで多次元配列の混雑さから開放された。
もちろん、メモリ内のデータはいつか消えるので任意のタイミングで
データベースやXMLやテキストやCSVとして記録しておく。
ちなみにデータセットはApplicationオブジェクトとして常駐させないとページごとにデータセットが作成されパソコンをいたわる意味がなくなる。
あとは排他ロックなども必要なときは使ってデータの整合性を保つこと。

2061 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/26(土) 15:08:39 ID:INERpPZw
ところでプログラミング中に変数の中を見てみたいことがあるが、
その変数が配列だと画面に表示するためには
For i=〜
For j=〜
 出力 多次元配列
Next
Next
みたいに配列を総当りで読み込むプログラムが必要だ。
しかしデータをデータセットで扱っていたなら
デバッグ用データグリッドコントロールのデータソース = データセット
としてデータグリッドにデータをバインド(連結)表示させるだけだ。

207& </b><font color=#FF0000>(wNEVt54c)</font><b>:2005/03/26(土) 16:19:44 ID:I1tMITBc
あのー、モzyいや、なんでもない

208名無しさん:2005/03/26(土) 17:33:00 ID:bMcCgW.w
俺様のチラシの裏

VBコーナー
ttp://www.geocities.co.jp/SilkRoad/4511/vb/vb.htm

2091 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/26(土) 19:22:20 ID:INERpPZw
日本対イランがどうしたって?

2101 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/26(土) 19:42:32 ID:INERpPZw
ところでテーブルと聞くと机や食卓しか想像できない方もいるだろう。
で、HTMLをかじると表を作るためのテーブルタグだとわかってくる。
さらにデータベースと出会うとデータを格納するための行と列を持った表だと知る。
今までの解説でも特にどのテーブルかは言っていないが、文脈からデータベースやHTMLや机を区別できているだろう。

211名無しさん:2005/03/26(土) 21:43:11 ID:I1tMITBc
行、列よりもどこでも配置、机最強説を唱えます。

2121 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/26(土) 22:09:07 ID:INERpPZw
         ,..-──- 、
        /. : : : : : : : : : \
       /.: : : : : : : : : : : : : : ヽ
      ,!::: : : :,-…-…-ミ: : : : :',
   r、r.r {:: : : : :i '⌒'  '⌒'i: : : : :}
  r |_,|_,|_,|{: : : : |  ェェ ェェ|: : : : :}
  |_,|_,|_,|/.{ : : : :|    ,.、 |:: : : :;!    なるほどなるほど・・・
  |_,|_,|_人そ(^i :i   r‐-ニ-| : : :ノ
  | )   ヽノ |イ!  ヽ二゙ イゞ
  |  `".`´  ノ\ ` ー一'丿 \
  人  入_ノ   \___/   /`丶´
/  \_/ \   /~ト、   /    l \
      /    \/l::::|ハ/     l-7 _ヽ
     /i    ⊂ニ''ー-ゝ_`ヽ、    |_厂 _゙:i
    /|    >‐- ̄`    \.  | .r'´  ヽ
    / |    丁二_     7\、|イ _/ ̄ \

2131 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/27(日) 01:20:09 ID:INERpPZw
C++を勉強することにした。ゲームプログラミングの本はほとんどC++(VC++含む)だからだ。
C++はハードウェアを直接制御できるネイティブコードを作成できるのがよい。
これからC++の本を見に行くとしよう・・・

214名無しさん:2005/03/27(日) 11:34:02 ID:QPmiSey6
MozillaのXPCOM使ってマルチプラットフォームに仕上げてくれ

2151 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/27(日) 14:18:42 ID:INERpPZw
ひまができたらな。

2161 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/27(日) 23:38:49 ID:INERpPZw
ではアップローダで良く使われるSessionやApplicationオブジェクトについて
初学者が知らない重要事項を述べておく。
どちらも変数として使う分には同じ構造なのでSessionについての例にする。

2171 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/27(日) 23:43:43 ID:INERpPZw
変数にはスコープ(適用範囲)があるが、Sessionは各クライアント内で有効な変数で、
Applicationはアプリケーション全体で有効である。
Webアプリの場合はあるページから別のページにジャンプするときにジャンプもとのページの情報はジャンプ先に引き継がれない。
したがって、ページどうしで値を送受信するいくつかの方法のうちのひとつがSessionやApplicationである。
Sessionの値はサーバ内にあり、クライアントには送信されないのでパスワードなどを格納しておくときはSessionが良い。
フォームやクエリストリングで渡すのは見られても良いデータである。

2181 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/03/27(日) 23:54:13 ID:INERpPZw
SessionやApplicationはコレクションであり、つまりその中には複数の要素が格納されている。
コレクションをひとつずつ操作することはできず、セッションを配列として扱いたいときに、
Session("A")(0)=1と値を代入するとエラーになる。
なので、いったん通常の配列を使い、それを丸ごとセッションに代入する。
Dim A(2) as Integer ={1,2,3}
Session("A")=A
これでセッションで配列を扱えるようになったとおもう。
あとはメモリに余裕があるならセッションが消えるまでの時間を長くする。
Session.Timeout=60(分)
これでキミも大物アップロダの管理人だ!

2191 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/07(木) 16:20:59 ID:cJyFducs
2chねらーの一部にはやさしくしてやりたいが、
スレ内でいいことをすると
ダメ2chねらーにも利益が行ってしまうから困ったもんだ。

220名無しさん:2005/04/07(木) 16:31:17 ID:juyXAnEU
自分のサイトに誘導してIP抜けば良いよ

2211 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/09(土) 23:09:36 ID:NeXcfvRM
ふーむ

2221 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/10(日) 00:34:48 ID:NeXcfvRM
記事を読み込むプログラム。
Dim myWeb As New WebClient
Dim b() As Byte
b = myWeb.DownloadData(URL)
Dim bStr As String = Encoding.UTF8.GetString(b)
画像などのファイルの場合はbのバイナリのままでよいが、掲示板の記事は文字列bStrに変換。
これが.NETのWebClientを使ったときのインターネットドキュメント取得方法である。
上記クラスを使うときは名前空間
System.Net
System.Text
をインポートします。
System.Net=WebClientクラス用
System.Text=文字コードのエンコード用

2231 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/10(日) 00:52:36 ID:NeXcfvRM
2chの場合は
Dim bStr As String = Encoding.GetEncoding("Shift-Jis").GetString(b)
シフトジスで文字列を得て、
それからさらにUTF-8にコンバートするのがよい。

2241 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/11(月) 04:10:18 ID:NeXcfvRM
2chに貼られているttp://abc.jpgにアクセスしたとしよう。
さてこれはなんだろうか?見かけは画像ファイルだが、クライアントに画像が送られてこないことの方が多い。
404のファイル無しの場合や503のサーバービジー状態の場合などである。
さらに、どこか画像とは関係ないアダルトページに飛ばされることもある。
これはサーバー側がリダイレクト機能を有効にして別ページにジャンプさせているのである。
正常なjpgだけを保存するには一旦ピクチャボックスに読み込ませてエラーになるかならないかを見てからがよい。
On Error Resume Nextを使ってエラートラップする。
PictureBox image=abc.jpg
Err.Number<>0のときはエラーなのでその.jpgは保存しない。
エラー判別しおわったら
Err.Clear
On Error Go To 0
でエラーが起こったらプログラムが止まる状態にしておいてデバッグしやすいようにしておく。

225名無しさん:2005/04/11(月) 16:45:18 ID:juyXAnEU
1.HTTPヘッダをチェック(Locationヘッダがあったらリダイレクト、404/403/500だったらファイルが存在しない)
2.画像かどうかのチェック
とやるのが良いのでは?

アプロダって直ぐに消えちゃうからP2Pの仕組みを付けてふたばブラウザのような仕組みを付けるべき。
ウェブページにも同様のことが言える。

2261 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/11(月) 23:49:25 ID:NeXcfvRM
>>225オレがすでにつくりおわてるのはそうしてあるが、あまりここではすべてのことは言わないようにしてるだけ。
---------------
おまいらエラーのでる.jpgも偽装ファイルとしてのちゃんとしたファイルかもしれんから
捨てずに保存しておくのがよいかもよ。エラーが出たら
偽造.jpgみたいにリネーム保存するのがよいかもよ。

227名無しさん:2005/04/12(火) 00:18:49 ID:juyXAnEU
極窓との連携とかすれば?
うpろだは*.jpg.htmlのようなものがあるけどあれって*.jpg.htmlをリファラに設定して*.jpgにアクセスすれば一発で見れそうだけど実際どうなんだろうか

2281 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/12(火) 02:31:47 ID:NeXcfvRM
極窓で判別できるファイルなら極窓コンポーネントをプログラムで利用すれば簡単だが、
最近の2chでの偽装は極窓では対応できないのがほとんどだから、結局2chのスレを読まないと正常なファイルに変換できない。

*.jpgのあるディレクトリをアップロダを観察してみてわかた場合は*.jpgに直接アクセスするためのアドレス文字列を作成するのは簡単。

2291 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/12(火) 02:58:14 ID:NeXcfvRM
abc[001-099].jpgというカキコミを自動的に
abc001.jpg

abc099.jpg
という名前に直してアクセスする操作も必要だな。

それに、自動取り込みソフトにはタイマーをつけたほうがいいぞっと。
〜時〜分にあるスレのファイルを取り込むといった時間指定取り込みがすぐにファイルが消える2chでは必要。

現行スレと過去スレを自動的に分ける機能も必須。
過去スレはどんどん別の記憶装置やDVD-Rに移動させちまおう。

まだまだこちらのアイデアはあるが機嫌がいいときに教えてやろう。

230名無しさん:2005/04/12(火) 16:43:55 ID:vcnCr0mk
掲示板システムで思ったがWinnyの掲示板システムを改良してShareの拡散うpっぽく他の人に任せちゃえば良いのではないかと思った。
その人がやめたらその時点で終わりだけど

#すれ違いスマソ

2311 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/12(火) 18:16:44 ID:NeXcfvRM
あえて シェアーと言ってみる

2321 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/13(水) 05:00:17 ID:NeXcfvRM
2chはShift-JisとUnicodeが混ざっているようなので
しばらくは文字コードについてしらべてみる。
スレはスレタイトルから?<>/などのWindowsのフォルダ名に禁止されている文字を消したり置き換えたりしたスレタイトルで保存する場合が多いが、
スレタイトルにまれにUnicodeが使われてるのを数回経験したことがある。
2chをShift-Jisと決めてかかると自作プログラムのどこが間違ってるのかわからないようなエラーに悩まされてうんざりすることは言っておく。

233名無しさん:2005/04/13(水) 17:14:03 ID:UgwMDIk.
内部でunicodeを使うべきでは?
ファイル名のエスケープは大変だろうね。
古いWindowsだとUnicode文字使えないし。
スレはスレ名が被る事もあるからそれも配慮しないと。
#余談だがVB6からも.NETのモジュールが使えるらしい

2341 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/14(木) 04:19:26 ID:B846RqWk
スレは
スレ名+スレIDで保存して重複を避けている。

2351 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/15(金) 11:55:14 ID:B846RqWk
スレタイトル 1234567890
スレタイトル(1234567890)

保存フォルダ名の作成にはいくつかパターンがあるがそこらへんは好みでよい。
上記例はどちらもスレタイトルとIDをいつでも文字列関数を駆使して分離できるのでマル
コンピュータの扱える形式で保存しておけばある程度プログラマの自由でよい。

236名無しさん:2005/04/16(土) 21:23:41 ID:ua06WDaY
クローラー&過剰リロード対策スレ2【新バーボン】
http://qb5.2ch.net/test/read.cgi/operate/1113647422/

厄介ですね

2371 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/16(土) 23:39:03 ID:DbGBN3FQ
機能制限のしすぎは嫌われる原因さ。
ほりえもんあたりが掲示板つくってくんないかな。

2381 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/16(土) 23:54:01 ID:DbGBN3FQ
雑談などはあまりしないリンク先のファイルにしか興味の無いオレたちのほうが
雑談中心の2chねらーよりはるかに2ch読み込み回数は少ないと言うことに気づけなかったみたいだね、2chの中の人は。
記事を丸ごと取り込むのは2chと裁判した一部の企業とかであってその組織は2chを高速で保存しまくるだろうが、
オレたちはリンク先のファイルのダウンロードの遅さに悩まされるから2chにはあまりアクセスしない。

2391 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/17(日) 00:05:28 ID:DbGBN3FQ
たとえば警察の自宅からのアクセスが禁止になったとしよう。
そうしたらその警察は2chにたいして機嫌が悪くなって
2chの悪い部分を見つけて2chを法律的に規制するだろう。
サーバがアクセス過多で止まるのはユーザーもしょうがないなと我慢できるが、
2chにアク禁にされたり規制されるのはサーバにやさしくなったとしてもユーザーからはうらまれる。
そこらへんのユーザー心理を2chはもっとうまく処理しないと2ch関係者はいつか刺されてしまうかもしれない。

240名無しさん:2005/04/17(日) 02:24:48 ID:dd7xbrxU
>>237
ここ?
>>239
>2chはもっとうまく処理しないと
そこでWinnyの掲示板ですよ

2411 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/17(日) 03:43:14 ID:DbGBN3FQ
まあねん

2421 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/17(日) 08:19:39 ID:DbGBN3FQ
このスレの下のほうになぜかVBグッズの商品リンクがあるからみんな将来の自分のために買ってみてくれ。
もれは金持ちになる1年後に買う余裕が出てくるが。

2431 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/17(日) 08:21:21 ID:DbGBN3FQ
『Webプログラマのための正規表現実践のツ...』をライブドアデパートで購入

さまざまなジャンルの選りすぐりアイテムがここに集結。お気に入りの商品がすぐに見つかる!じっくり選んで快適ショッピング。
depart.livedoor.com 『Visual Basicプログラマのため...』をライブドアデパートで購入

さまざまなジャンルの選りすぐりアイテムがここに集結。お気に入りの商品がすぐに見つかる!じっくり選んで快適ショッピング。
depart.livedoor.com

リンクはランダムだから何回かページ更新して見れ

244名無しさん:2005/04/17(日) 14:12:43 ID:eeUqVda2
言語仕様が標準化されてるC#マンセー

ところでmonoってどうよ>1

2451 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/17(日) 19:25:46 ID:DbGBN3FQ
WindowsServerが高いから開発用クライアントはWindowsXP ProfessionalでサーバーにはLinux+monoが使われるのが流行る可能性はある。
が、一生Windows系だけいじって生活していきたいのが多くのマイクロソフト好きの望み。

246名無しさん:2005/04/17(日) 21:07:52 ID:eeUqVda2
オープンソースマンセーな俺には関係ない話ダガヤ

2471 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/17(日) 21:09:37 ID:DbGBN3FQ
特許とかからめるとやはり隠蔽も必要だが技術発展には公開も必要だから悩ましいもんだ。

248名無しさん:2005/04/17(日) 21:21:16 ID:eeUqVda2
そこでインストール時にビルドですよ
ダウソサイズも大きくなるしインストールも時間かかるけど特許侵害防げるし

2491 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/18(月) 02:22:01 ID:DbGBN3FQ
うーむ・・

2501 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/18(月) 06:21:24 ID:DbGBN3FQ
とりあえずDiscとDiskについて調べておくことをおすすめする。

2511 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/19(火) 16:35:50 ID:hn0ZmOIA
まずアプリを立ち上げてから実行するのは
ディスクの空き容量をチェックするプログラムがおススめだ。
容量チェックはSystem.IOでもFile System Objectでもよい。

2521 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/21(木) 09:26:44 ID:94QWdl1w
VB6.0からVB.NETになってめんどうになったのが大文字小文字を分ける部分があることです。
DataTable オブジェクトにアクセスするときは、
条件付きで大文字と小文字が区別されることに注意してください。
たとえば、"mydatatable" という名前の DataTable と "Mydatatable"
という名前のテーブルがある場合は、
この 2 つのーブルのどちらかを検索する文字列は大文字と小文字を区別すると見なされます。
ただし、"mydatatable" という名前は存在するが "Mydatatable" という名前が存在しない場合は、
検索文字列は大文字と小文字を区別しないと見なされます。

2531 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/21(木) 14:44:45 ID:94QWdl1w
メモリ内でテーブルを扱うようになっていろいろ実験しているが、メモリ内テーブルをSQLステートメントのようなコマンドの実験の様子。
下記の例は.NETをやるなら一生役立つので各行の意味を1秒眺めただけで理解できるようでないなら
データベース、SQLの勉強が必要だ。
Dim mySort As String
'mySort = "FileSize,FileName"
mySort = "index"
Dim myFileter As String
'myFileter = "FileSize>=0"
'myFileter = "index>10"
'myFileter = "Flg is null"
myFileter = "FileName Like '%.zip%'"

Dim DataRows As DataRow() = Dt.Select(myFileter, mySort, DataViewRowState.CurrentRows)

2541 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/21(木) 15:11:12 ID:94QWdl1w
最初はDataTableのSelectメソッドによる返り値もテーブルだと便利かなと思っていたが、
しかしADOのレコードセットに相当するものが出力されることを考えるとDataRowコレクションが戻り値なのもうなずける。

2551 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/04/25(月) 21:59:45 ID:94QWdl1w
DataTableに何行ものレコードがあるとする。
そのデータから必要なデータを抜き出した場合はその抜き出されたデータは
DataRow()またはDataViewどちらに格納しても良い。
DataRowは1行のレコードだが、DataRow()は複数のレコードで動的配列である。
データの更新が行う場合はDataRow()で、表示に特化させたい場合はDataViewが良い。
データテーブルはスキーマ(構造)の作成に何行かの記述が必要なため
配列変数よりも使用に手間がかかるが機能が豊富なので積極的に使っていきたい。

2561 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/05/06(金) 11:43:32 ID:pt6.P2oE
VB.NETのFormオブジェクトをグローバルで宣言しておくとVB6.0のような
開発性でVB.NETを扱えた。
VB6.0の便利さをVB.NETで実現するためには自分なりの工夫をすればよい。

2571 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/05/10(火) 03:34:02 ID:na6kNfbY
あまり働かないでずっと掲示板にいるのが神だとは悲しいものだ。

2581 </b><font color=#FF0000>(GQrDul2E)</font><b>:2005/05/18(水) 00:13:58 ID:T8FibFIw
クライアントアプリにもSQL Serverを採用する時代が来たようだ。

259名無しさん:2005/05/18(水) 01:59:02 ID:StC70F4g
まぢですか?
庶民はAccess付属のMSDEでいいでしょ

2601 ◆ExGQrDul2E:2005/05/23(月) 21:55:19 ID:T8FibFIw
2chで神になろうとしなければMSDEでもよいが。

2611 ◆ExGQrDul2E:2005/05/24(火) 00:14:19 ID:T8FibFIw
2chで必要なのは何日間もファイルが流れないで多量アクセスにも余裕で答えられるアップロダであり、
Webサーバ+MSDEだと5人までしか同時アクセスできん。

2621 ◆ExGQrDul2E:2005/05/24(火) 00:22:47 ID:T8FibFIw
庶民のクライアントアプリも同時アクセス5だと
インターネットから自動的にファイルや情報を集めるアプリだとすると
そのアプリはほとんどの情報をスルーしてしまうことになり、自動的にお宝を集めるアプリを目指してるキミにはものたりたりないはずだ。

263名無しさん:2005/05/25(水) 09:05:39 ID:4Z1r0KjE
> MSDEだと5人までしか同時アクセスできん。
100でもいくつでもアクセスできるよ
しょうもない記事を鵜呑みにしてないで自分で試してから書け

それにクライアント側での最近の流行はユーザ側でSQL鯖(含むMSDE)を建てないで済むSQLiteだよ
これはDLL配布だけで済むし基本的なSQL文は解釈してくれるし言うことない
身近なところではRSSリーダーや2chブラウザに組み込んで使用される実例が増えている

勉強不足だ
しっかり汁

2641 ◆ExGQrDul2E:2005/05/27(金) 19:30:42 ID:rY7x7oOg
( ^▽^)このスレおもしろーい

2651 ◆ExGQrDul2E:2005/07/12(火) 22:45:14 ID:ihzvuwJE
日本にお金持ちが現れて2chのような掲示板をつくり、そこは2chよりもユーザ思いのシステムであろうと予測される。
数十年後の予言である。

2661 ◆ExGQrDul2E:2005/07/19(火) 21:55:13 ID:y8dbjjbM
ホントこのモナジラBBSはくそスレばっかだな

2671 ◆ExGQrDul2E:2005/10/13(木) 02:38:24 ID:GRrXdLqk
さて、ネットにあるテキストドキュメントをダウンロードしてディスクに保存するプログラムを作ったので紹介する。
まずは名前空間のインポートを行う。
Imports System.Net
Imports System.Text
Imports System.IO
---------------
サーバへの送受信を行うクラスを使用する。
Dim WC As New WebClient
このクラスは先ほどインポートしたSystem.Netに含まれているものだ。
---------------
そしてアドレス文字列を準備する。
Dim UStr As String = "とりこみ対象ページのアドレス"
たとえばhttp://www.abcd.net/efg.htmlなど。
-----------------------------------------
ネットドキュメントをバイナリデータとして読み込む。
Dim DownLoadData As Byte() = WC.DownloadData(UStr)
-----------------------------------
今回はEUCコードのページをUTF-8に変換する例を挙げておく。
Dim UTF8Bytes As Byte() = Encoding.Convert(Encoding.GetEncoding("EUC-JP"), Encoding.UTF8, DownLoadData)
(画像ファイルなどはこのコード変換作業は不要だ。WindowsXPではUTF-8のドキュメントが扱いやすいようなのでUTF-8にしてみた。私がフランス語やドイツ語も使うこともあるのであえてShift-JISは見送った。)
----------------
エンコード後のバイナリデータをディスクに書き込むところ。
Dim fs As New FileStream(AppPath & "\DownLoad.html", FileMode.Create)
Dim w As New BinaryWriter(fs)
w.Write(UTF8Bytes)
w.Close()
fs.Close()

268名無しさん:2005/10/13(木) 05:15:15 ID:N4pIWB/U
わーい、1さん、おかえりなさい

2691 ◆ExGQrDul2E:2005/10/13(木) 07:41:32 ID:GRrXdLqk
うむ

2701 ◆ExGQrDul2E:2005/10/13(木) 19:09:37 ID:GRrXdLqk
ちなみにバイト配列をファイルとして保存しないで、
メモリ内に文字列変数としておいておきたい場合は
S = Encoding.UTF8.GetString(UTF8Bytes)
みたいにGetStringメソッドを使えばよい。

2711 ◆ExGQrDul2E:2005/10/14(金) 08:07:08 ID:wkvnVpxM
ネットドキュメントで取得すべきは
ズバリ競馬データである。
競馬で生活していくためには過去のレース結果を収集して分析しなければならない。

2721 ◆ExGQrDul2E:2005/10/15(土) 06:58:58 ID:wkvnVpxM
今はパソコンで馬券を買えるので
JRAホームページで無料会員に入ること。
土日は自宅で競馬をすればよい。

2731 ◆ExGQrDul2E:2005/10/15(土) 15:54:59 ID:FNbh/Qr2
競馬データを解析するプログラムを何千行も書いた。
そしてバグがありうまくうごかない。ノイローゼになるほど探したがどこが悪いのか見つからない。
泣く泣く0行目から新規に書くことにした。つらすぎる・・・・

プログラムのデバッグはVB.NETよりVB6.0のほうが優れているというのが体験的に感じられた。

2741 ◆ExGQrDul2E:2005/10/15(土) 16:28:55 ID:FNbh/Qr2
しかし、今日は競馬で3万勝てたので
プログラムの書き直しも苦にならないほど機嫌がいいのだ。競馬は毎月8回あるから
いつもこれぐらい勝てれば毎月20万ぐらいになる。
だからなんとしてでも競馬ソフトを開発しなければならない。
大事なのは、どの人気番の馬券が来たか、である。
人気番の解析ができるソフトを作れれば高い確率で当たり馬券を買えるのだ。

2751 ◆ExGQrDul2E:2005/10/16(日) 07:14:46 ID:FNbh/Qr2
.NETではメモリ内データベースであるDataTableをよく使うが、
Dt.Columns.Add("abc",GetType(String))
で列を加えて、
Dim Row1 as DataRow = Dt.NewRow
Row1("abc")="あいうえお"
Dt.Rows.Add(Row1)
で行を加える。
列はフィールド、行はレコードともいう。

書き込んだデータをすべて削除するメソッドはClearである。
Dt.Clear()
テーブル構造さえも消去するメソッドはResetである。
Dt.Reset()
先ほど加えた特定の列を削除するメソッドはRemoveである。
Dt.Columns.Remove("abc")

2761 ◆ExGQrDul2E:2005/10/16(日) 08:40:47 ID:FNbh/Qr2
プログラミング自体は簡単だ。
問題はシステム設計、仕様だ。
とくにデータを蓄積する場合はデータベースの設計が悩ましい。
競馬ソフトでは日付ごとに格納するか、馬券の式別ごとに格納するか、それの決定が微妙なのだ。
ハードディスクに余裕があるなら両方採用でもよい。
馬券で儲けることが目的ならまずは式別ごとに格納しよう。
あと1時間半で馬の発走時間になってしまうので私も急ピッチでコーディング中だ。

2771 ◆ExGQrDul2E:2005/10/16(日) 21:58:32 ID:WLy9nzRo
バグでプログラムが動かない件については
VB.NETのバグだとわかった。
インテリセンスinstrrev関数の-1が1になっていたり
dim lng1 as long
do while instr(lng1+,......

loop
では
ループの前にlng1=0と書いておかないとダメなことなど
VB.NET自体に修正すべきところがある。
バグがあったら自分と言語両方を疑おう。

2781 ◆ExGQrDul2E:2005/10/17(月) 07:16:32 ID:WLy9nzRo
テーブルにNull値を代入するにはDBNull.Valueを入れる。
Nullかどうかの検査はIsDBNull関数を使う。

2791 ◆ExGQrDul2E:2005/10/17(月) 20:45:29 ID:kmK7nyDQ
完成図
http://www.interq.or.jp/guitar/lead/up/2005_10_17_keibasoft.png

競馬場に毎日通ってるおじさんたちはこういったデータを手入力しているのだが
競馬データは膨大で一生かかっても入力できるものではない。
しかし私たちプログラミング経験者はボタンをクリックしただけで自動的にデータを集めるソフトを作れてしまうのだ。
私はネットドキュメントをインターネットから取得してそれをバイナリのままあるいは任意の文字コードの文字列に変換する方法を解説した。
それからメモリ内データベースであるデータテーブルの作り方も述べた。
それらを使って競馬データも取得するのだ。
あとはその競馬データを自分なりに解析して競馬でのもうけかたをあみだす。
マーチンゲールに最適な馬券の買い方を見つけるのだ。
たとえばX番人気を掛け金をY倍にしながら買い続ける。など。
とりあえず
ギャンブル マーチンゲール
で検索すればわたしの言っている意味もわかるだろう。そしてお金持ちになれる可能性も沸いてくるだろう。
私との出会いがあなたの人生を良い方向に変えたはずである。

2801 ◆ExGQrDul2E:2005/10/25(火) 20:31:17 ID:yyu0AzNw
最近2ch板リストページのアドレスがiij4uから別のに変わったのはまだ漏れしか知らないみたいだね

281名無しさん:2005/10/25(火) 21:30:54 ID:PwzqRQvE
>>280
かなり前からですよ

2821 ◆ExGQrDul2E:2005/10/29(土) 22:29:37 ID:ajdWMgkE
((((((;゚д゚)))))

2831 ◆ExGQrDul2E:2005/10/29(土) 22:41:33 ID:ajdWMgkE
Dtというメモリ内テーブルが定義されていたとする。
その列(フィールド、カラムともいう)のコレクションを得るにはどうするか?
Dim DC() as DataColumn
のなかにテーブル内の列情報を格納することはできないのだ。
DataColumnCollectionというオブジェクトがありそれに代入する。
Dim DC as DataColumnCollection
DC=Dt.Columns

これで列コレクションをテーブルから独立して扱えるようになった。
そのあとは
dim dc2 as datacolumn
For each dc2 in DC
列名取得
列に定義されているデータタイプ取得
Next

SQL="Create Table メモリ内テーブルと同じ構造定義"
Execute SQL

などのコードを書いてテーブルと同じ構造でSQL Serverにテーブルを自動的につくったりする。
メモリ内テーブル(データテーブル、DataTable)とSQL Serverの両方でテーブル作成するのは大変なので
これでデータテーブルのみ設計すればSQL Serverではわざわざ列を手動で作る必要は無くなった。

2841 ◆ExGQrDul2E:2005/10/29(土) 23:09:18 ID:ajdWMgkE
こちらはすでに作り終わってるのでもうちょっと紹介してみると
カラムをFor EachでまわしてDC.DataType.ToStringの戻り値がSystem.Int32だったら
SQL=SQL & "int"
などとしてSQL文に列定義をどんどん追加していけば最後にはDataTableと同じ構造をくれるようなSQL文ができあがるので
それを実行すればSQL ServerにDataTableと設計が同じなテーブルが作成される。

2851 ◆ExGQrDul2E:2005/10/29(土) 23:14:57 ID:ajdWMgkE
日本のギャンブルでは払戻最高額は2億円までと決められているとのことで、
配当のデータ型はint型 -2^31 (-2,147,483,648) から 2^31 - 1 (2,147,483,647) までの整数
で扱うことにした。
ナイチンゲールの法則の計算などはbigintやそれ以上の
万億兆京がいじょじょうこうかんせいさいごくごうがしゃあそうぎなゆた
という大きな数が扱えるデータ型にすること。

2861 ◆ExGQrDul2E:2005/10/30(日) 07:39:32 ID:ajdWMgkE
さてメモリ内データテーブルをハードディスクのSQL Serverに保存するところをやっているわけであるが、
ADO.NETでは
レコードセット.EOFに相当するものはデータリーダー.HasRow
である。
HasRowがTrueかFalseかによってSQL文は
InsertにするかUpdateにするかを決める。

2871 ◆ExGQrDul2E:2005/10/30(日) 11:38:42 ID:ajdWMgkE
データベースをいじるときは
Where文を書き忘れないこと。書き忘れるとデータベース全部が削除されたり上書きされたりしてしまう。

2881 ◆ExGQrDul2E:2005/10/30(日) 19:56:09 ID:2lbTmlQA
競馬データには
'95インターナショナルジョッキーズ
というクオーテーションを含んだ文字列がありこの'はSQL文では予約記号なので
SQL文で扱える形にエスケープさせること。

2891 ◆ExGQrDul2E:2005/10/30(日) 20:10:41 ID:2lbTmlQA
SQLエスケープ
「'」→「''」
「\ 」→「\ \ 」

2901 ◆ExGQrDul2E:2005/10/30(日) 21:16:46 ID:2lbTmlQA
\0 ASCII 0 (NUL)
\n 改行文字
\t タブ文字
\r リターン文字
\b バックスペース文字
\z ASCII 26 (Control-Z)。
\' シングルクォート( ' )
\" ダブルクォート( " )
\\ バックスラッシュ( \ )文字
\% % 文字
\_ _ 文字

2911 ◆ExGQrDul2E:2005/11/01(火) 07:56:40 ID:2lbTmlQA
前回はDataTableのテーブル構造をSQL Serverに自動作成するプログラムを書いた。
次はSQL Serverのテーブル構造をDataTableなどに自動作成するために必要なスキーマの取得をしてみる。
Dim CS As String = "Data Source=(local);Initial Catalog=Keiba;User ID=kimagure;Password=kimagure"
Dim conn As New SqlConnection(CS)
Dim SQL As String
SQL = "Select * From Race Where ID=20000105100000"
Dim cmd As SqlCommand = New SqlCommand(SQL, conn)
conn.Open()
Dim DR As SqlDataReader = cmd.ExecuteReader
DR.Read()
Dim schemaTable As DataTable = DR.GetSchemaTable()
Dim myRow As DataRow
Dim myCol As DataColumn
SS = ""
For Each myRow In schemaTable.Rows
For Each myCol In schemaTable.Columns
SS = SS & myCol.ColumnName & " = " & myRow(myCol).ToString() & CL
Next
Next
DF_.RTB1.Text = SS : DF_.Show()
LnanComp2:
DR.Close()
conn.Close()
LandComp:
Button1.Enabled = True
App.DoEvents()

2921 ◆ExGQrDul2E:2005/11/01(火) 07:58:53 ID:2lbTmlQA
このプログラムではSQL ServerがWindows認証になっていないのでセキュリティをアップさせる必要があるような大事なことはWindows認証でSQL Serverを扱うこと。

2931 ◆ExGQrDul2E:2005/11/01(火) 08:01:39 ID:2lbTmlQA
上記プログラムでschemaTableがどのような構造になっているかはデータグリッドに表示させるとわかりやすいだろう。
DataGrid1.DataSource = schemaTable

2941 ◆ExGQrDul2E:2005/11/01(火) 08:07:03 ID:2lbTmlQA
schemaTableの戻り値で特に大事なのは
ColumnName
ColumnSize
DataType
で、これらを取得すればSQL Serverのテーブルと構造が同じなDataTableを自動作成できる。

今回と前回のことを知っていれば、
DataTableあるいはSQL Serverどちらか一方だけのテーブル設計をすればよくなる。
両方とも手動で設計していたのではテーブル設計の仕様変更のたびに両方とも修正しなければならなくメンテナンス製に乏しくなる。

2951 ◆ExGQrDul2E:2005/11/01(火) 11:05:12 ID:2lbTmlQA
ユニーク列(主キー)があるばあいはそのこともスキーマ作成時に付加すること。

2961 ◆ExGQrDul2E:2005/11/09(水) 12:15:32 ID:oxEmRE/U
データビューのRowFilterやSortには私たちの目的を達成できるほどの柔軟性がないので
結局はデータテーブルから自前でデータを加工することになりその結果をまた別のデータテーブルに保存するであろうから、
そのときもフィールド名を自動的に取得してくれる今回のサンプルは役立つはずだ。

2971 ◆ExGQrDul2E:2005/11/11(金) 02:11:57 ID:oxEmRE/U
.NETになってコーディングが厳密になったとささやかれているとはいえ、
デフォルトプロパティに甘えることは許されている。
レコードのフィールドを厳密に指定するなら
Row.Item(indexまたはフィールド名)
だが、Itemというプロパティがデフォルトなため省略してしまって
Row.(indexまたはフィールド名)
と書いてもよい。
そのほか大文字小文字を区別しないですむ仕様などは私の好みであるしグラマーの労力軽減に役立っている。
Windows携帯がついに発売されるとのことで、VB6.0、VB.NETを信じてきたグラマーに希望の光が見えてきた感じである。

2981 ◆ExGQrDul2E:2005/11/24(木) 20:31:41 ID:FyL9DViM
問題
vbCrLf,vbLf,vbCrの改行コードの混じったテキストの改行コードをすべてvbCrLfにするコードを書きなさい。

299名無しさん:2005/11/24(木) 21:04:43 ID:Fl3fPTYk
なんでまじっちゃったの?

3001 ◆ExGQrDul2E:2005/11/26(土) 03:24:12 ID:oxEmRE/U
(?_?)

3011 ◆ExGQrDul2E:2005/11/26(土) 03:32:46 ID:oxEmRE/U
データグリッドコントロールでもっともいじりたいのは列の幅ではないだろうか。
整数値の列は幅が狭いだろうし、String列は幅の広さが必要だ。
デフォルトではすべての幅が均等に表示されてしまう。

DataGridの任意の列の幅を変更するコードを作ってみた。
DataGridには
dim Dt2 as new DataTable("Dt2")
とDt2という名前のデータテーブルを作ってそれを表示する。
そしてDt2にはColumns.AddやDt2.Rows.Add(DataRow)で列と行が追加してある。
今回存在する列名はo、oSの2つであるとする。
参考:Dt2.Columns.Add("o",gettype(Single))
↑oというなまえの列をSingle数値型で追加
Dt2の列を定義したらデータグリッドの列幅も操作できる。

3021 ◆ExGQrDul2E:2005/11/26(土) 03:33:22 ID:oxEmRE/U
Dim ts As New DataGridTableStyle
ts.MappingName = Dt2.TableName
Dim DTS As DataGridTableStyle
Dim StyleName As String
Dim StyleExist As Short = 0
For Each DTS In DataGrid1.TableStyles
StyleName = DTS.MappingName
If StyleName = "Dt2" Then StyleExist = 1
Next
If StyleExist = 0 Then
DataGrid1.TableStyles.Add(ts)
End If

'Try
'DataGrid1.TableStyles.Add(ts)
'Catch
'End Try

DataGrid1.DataSource = Dt2
DataGrid1.TableStyles(Dt2.TableName).GridColumnStyles("o").Width = 35
DataGrid1.TableStyles(Dt2.TableName).GridColumnStyles("oS").Width = 35

3031 ◆ExGQrDul2E:2005/11/26(土) 03:38:24 ID:oxEmRE/U
最後の行に
.Width = 35
があるが、単にWidthを操作するにもVB6.0とは違って事前準備が必要なのだった。
しかしこれでDataGridの幅を好きに設定できてめでたしである。

3041 ◆ExGQrDul2E:2005/11/26(土) 04:36:18 ID:oxEmRE/U
テキストボックスでリターンキーを押したときに
ボタンを自動押下する例
If e.KeyCode = Keys.Return Then
Button12_Click(sender, e)
End If

3051 ◆ExGQrDul2E:2005/11/26(土) 06:43:28 ID:oxEmRE/U
テキストボックス内の文字列の一番右にカーソルがあるときに→キーを押すと次のテキストボックスにフォーカスが移動する例
Dim T As TextBox
T = CType(sender, TextBox)
If e.KeyCode = Keys.Right Then
If T.SelectionStart = T.Text.Length Then
o2.Focus()
End If
End If

3061 ◆ExGQrDul2E:2006/05/23(火) 04:52:22 ID:MziW6YcM
ASP.NET2.0からはIISがなくても開発できるようになり、すなわちWindowsXP HomeEditionでも開発できる。
ASPをつかったブラウザタイプの2chブラウザというのはまだないが、これからぼちぼちと出始めてもよいころではある。

307名無しさん:2006/05/25(木) 00:39:21 ID:X78H8gwM
明けましておめでとうございます、1さん

3081 ◆ExGQrDul2E:2006/05/26(金) 21:22:21 ID:MziW6YcM
ほぉ自分以外にこのスレに人がいるのかね。
---------------------------------------------------
さて今はVisual Studio 2005の時代になった。
マイクロソフト→開発ツール というホームページサーフィン(ネットサーフィン)
とうかただ単にホームページを見るということだが、それをすると
.NET2.0を開発するツールで無料のが見つかる。
Visual Web Developer 2005 Express Editionは無料で役立つので良いとしよう。
しかしSQL Server 2005 Express Editionは開発環境でしか動作しないので上位エディションのSQL Server 2000や2005を持っているのなら最初からそれを使ったほうがあとでデータベースを移行しなくてすむ。
このスレではデータベースを丸ごとコピーするコードを>>291で紹介したのでデータベースの移行などは恐れる必要はないし後でやってもいいことである。
ニュースなのはマイクロソフトが無料でつかえる開発環境を打ち出してきたことである。
マイクロソフトの配布してる無料ツールを使うユーザーが増えると言うことはWindowsやWindowsサーバーのユーザーが増えることにつながるのでそこがねらいだろう。

3091 ◆ExGQrDul2E:2006/05/27(土) 00:04:35 ID:MziW6YcM
.aspxファイルに名前空間をインポートする方法
<%@ Import namespace="value" %>
------------------
(特注)
2chブラウザに関係ないような書き込みは実はすべて2chブラウザを作るための準備である。

3101 ◆ExGQrDul2E:2006/05/27(土) 00:28:49 ID:MziW6YcM
では環境も.NET1.1から.NET2.0に変わったことだし基本的なことからまたはじめたい。
.NET2.0では便利なコントロールが増えたり従来のコントロールに新たなプロパティやメソッドが加わったが基本的なことは今までどおりのコードで良い。
まずはデータベースのなかのひとつのテーブルをホームページに表示するプログラムをやってみたい。

メモ帳でもVisual Web Developer 2005 ExpressでもなんでもよいのでUTF-8でコードを書いていく。
ページの先頭は次のように書く。今書いているファイルは.aspxファイルである。
<%@ Page Language="VB" %>
<%@ Import namespace="System.Data.SqlClient" %>

System.Data.SqlClientはデータベースを利用するための名前空間だ。
ページロードイベントでもボタンクリックイベントでもどこでもいいので次のコードを書く。

Dim ConnectionString As String = "Data Source=(local);Initial Catalog=Northwind;Integrated Security=SSPI;"
Dim SQL As String = "Select * From Products"
Dim conn As New SqlConnection(ConnectionString)
Dim cmd As New SqlCommand(SQL, conn)
conn.Open()
Dim DR As SqlDataReader = cmd.ExecuteReader
GridView1.DataSource = DR
GridView1.DataBind()
DR.Close()
conn.Close()

3111 ◆ExGQrDul2E:2006/05/27(土) 00:36:54 ID:MziW6YcM
ConnectionStringはデータベースへの接続文字列である。
Integrated Security=SSPIはデータベースへのログインをWindows認証で行うと言う意味だ。
接続文字列を正しく書いて、さらにデータベース側でASP.NETユーザーにアクセス権限を持たせれば無事接続できる。
接続さえしてしまえばあとは好きなようにデータを取ってこれる。
うまくホームページにテーブルのデータがずらずらと表示された。

3121 ◆ExGQrDul2E:2006/05/27(土) 00:51:31 ID:MziW6YcM
無料版のSQL Server とはMSDEの後継版ことだった!

従来のSQL Server 2000 に付属していた MSDE が Express Edition として新しくなりました。MSDE には GUI ベースの管理ツールは付属していませんでしたが、Express Edition にはサービスの起動を管理できる SQL Computer Manager が追加され、更に SQL Server 2000 のクエリアナライザとほぼ同等の機能を持つ SQL Server 2005 Express Manager が使用できるようになりました。SQL Server 2005 Express Manager は無償でダウンロードすることができます。これにより、Express Edition を利用したデータベース アプリケーションの開発がより簡単になります。

3131 ◆ExGQrDul2E:2006/05/27(土) 00:57:59 ID:MziW6YcM
Visual Web Developer 2005 Express Editionという無料のサーバーサイドアプリ開発ツールをインストールすると
SQL Server 2005 Express Editionも同時にインストールされる。
そのあとさらにマイクロソフトのページに行き
Microsoft SQL Server 2005 Express Edition with Advanced Services
をインスコする。
そうするとWindowsのスタート→プログラムメニューに
SQL Server 2005 Management Studio Express
のショートカットができる。これはなにかというと、上位SQL ServerのEnterprise Manegerのようなものでグラフィカルにデータベースを操作できるのだ。

3141 ◆ExGQrDul2E:2006/05/27(土) 01:11:54 ID:MziW6YcM
これからやる実験は、SQL Server ExpressでApp_Dataに作ったデータベースを
SQL Server 2005 Management Studio Expressでつくった別のデータベースにコピーする実験である。

Visual Web Developer 2005 Express Editionでプロジェクトを開始する。
するとソリューションエクスプローラの一番上の項目はフォルダ名になっているが、
Visual Web Developer 2005 Express Editionではこのフォルダをプロジェクトと呼んでしまってよい。
ソリューションエクスプローラのプロジェクトを右クリックしてASP.NETフォルダの追加→App_Data
を行う。次にApp_Dataを右クリックして新しい項目の追加を選択する。
するとSQL Serverを追加できる。
これこそがまさにApp_Dataの中にできたSQL Serverデータベースである。
このデータベースは開発環境でしか動かないのでこれから公開用のデータベースにデータを移行しようというのが今回の作業である。
もちろん学習用としてプロジェクトを作ったなら移行しなくてよい。
肝心なのは.NET2.0でSQL Serverをいじってみれる環境が誰でも手に入るのが今という時期なのである。
Visual Web Developer 2005 Express EditionでASP.NETをやれば
Windows XP Home EditionでもASP.NETファイルを動作させることができる。
いままではXPプロフェッショナルエディションでしかASP.NET開発できなかったがこれからは
ASP.NETに興味をもったばかりの人もすぐにASP.NETに取り掛かれてしまうのだ。

3151 ◆ExGQrDul2E:2006/05/27(土) 01:15:25 ID:MziW6YcM
ちなみにVisual Basic の無料版もあるのでそれもチェックしてみよう。

3161 ◆ExGQrDul2E:2006/05/27(土) 01:45:45 ID:MziW6YcM
SQL Serverのデータベースファイルは.mdfである。

App_Dataにある.mdfをローカルデータベース、
SQL Serverサービスにある.mdfをサーバーデータベースと呼ぶことにする。

App_Dataにあるデータベースはまさにローカルで開発する時用のデータなのである。

3171 ◆ExGQrDul2E:2006/05/27(土) 02:13:49 ID:MziW6YcM
いいかね?データベースのデータをWEBページに表示できるかどうかでプログラミングをつづけるかやめるかが決まると思ってよい。
データベースを読み込めないときっとあなたは泣きたくなるだろう。
これから書くことは私が一文字ずつ書いたものでありどの本にも載ってないのでぜひ読んでおくべきだ。

あなたはVisual Web Developer 2005 Express EditionでApp_Dataの中にSQL Serverを作ったとする。
さらにそのデータベースに1個テーブルを作り、テーブルにもフィールドを1個つくり、そこまでしたらいったん保存ボタンを押して保存しそのテーブルデザイン画面を閉じ、
Visual Web Developer 2005 Express Editionの右にあるデータベースエクスプローラの中にそのテーブルがあり、
テーブルを右クリックしてテーブルデータの表示をしてからいくつか値を入力する。
これでApp_Dataデータベース作成→テーブル作成→データ入力をしたことになり、
実験用データベースができあがった。先ほど入力したデータがホームページに表示されれば実験成功というわけである。

3181 ◆ExGQrDul2E:2006/05/27(土) 02:32:33 ID:MziW6YcM
App_Dataのデータベースを表示するのは簡単だ。
Webページを新規につくり、データベースエクスプローラを開き、データベースの中の方の階層にあるテーブルをWEBページにドラッグするだけだ。

テーブルをドラッグするだけというのが画期的である。
今回は凝ったことをやりたいのでもっと汎用性のあるデータベース操作をしてみる。

3191 ◆ExGQrDul2E:2006/05/27(土) 03:59:13 ID:MziW6YcM
まずデータベースエクスプローラからデータベースを右クリックしてデタッチというのを実行する。
これで現在のプロジェクトからデータベースは隔離された。
次にSQL Server 2005 Management Studio Expressを立ち上げてデータベースを右クリック→アタッチ→追加ボタンを押してしばらく待つ、を行う。
アタッチするファイルはプロジェクトフォルダのなかのApp_Dataフォルダの中の.mdfデータベースファイルである。
こうしてアタッチするとこの.mdfはローカルではなくサーバーで動作している状態である。
SQL Serverにはローカルデータベースとサーバーデータベースがあるが、
将来Webページを公開するときはサーバーにデータがないとだめなわけでそれでローカルからサーバーに移行する日がいつかくる。
SQL Serverのローカルデータベースは一生自分しか見ることはできない。
なぜかというと、SQL Server 2005 Express Editionは無料版ゆえの制限がありデータをネットで公開できないように制限がかかっているからだ。
SQL Server 2005 Management Studio Expressで先ほどアタッチしたデータベースもローカルデータベースをアタッチしたのだから公開はできないが、
将来公開するときにそなえてサーバー側っぽい挙動をさせてみた。

3201 ◆ExGQrDul2E:2006/05/27(土) 04:36:26 ID:MziW6YcM
アタッチしたデータベースの表示

Dim ConnectionString As String = "Data Source=.\sqlexpress;Initial Catalog=DATABASE.MDF;Integrated Security=SSPI;"
Dim SQL As String = "Select * From aaa"
Dim conn As New SqlConnection(ConnectionString)
Dim cmd As New SqlCommand(SQL, conn)
conn.Open()
Dim DR As SqlDataReader = cmd.ExecuteReader
GridView2.DataSource = DR
GridView2.DataBind()
DR.Close()
conn.Close()

アタッチすると通常のSQL Serverのように扱える。

3211 ◆ExGQrDul2E:2006/05/27(土) 10:39:29 ID:MziW6YcM
VBプログラマ質問スレ(6.0以前) Part39
http://pc5.2ch.net/test/read.cgi/tech/1099737063/l50

910 名前: デフォルトの名無しさん [sage] 投稿日: 04/12/11 10:03:35
ADOである名前のテーブルが存在するかどうかはどうやってしらべるのでしょう?
SQL="Table Exist('NorthWind')"
conn.execute(SQL)
みたいなものだと予想してます
911 名前: デフォルトの名無しさん [sage] 投稿日: 04/12/11 11:50:22
>910
え?
912 名前: デフォルトの名無しさん [sage] 投稿日: 04/12/11 11:54:37
>>910
ADOXを使うとか。
ADODB.ConnectionオブジェクトのOpenSchemaメソッドを使うとか。
新着レス 2004/12/11(土) 12:16
913 名前: デフォルトの名無しさん [sage] 投稿日: 04/12/11 12:16:10
自己解決してたけどどーも


Const adSchemaTables = 20
rc = conn.openschema(adSchemaTables)
で、データベース内のいくつものテーブル名はコレクションとしてとりだされるから
rc("TABLE_NAME").valueをさらにFor EachとかDo whileで1個ずつとりだせた。


do until rc.eof
S+=rc("table_name").value
rc.movenext
loop

debug.print S

914 名前: デフォルトの名無しさん [sage] 投稿日: 04/12/11 12:56:56
>913
さすが

3221 ◆ExGQrDul2E:2006/05/27(土) 12:36:47 ID:MziW6YcM
データベースの中にどんなテーブルがあるか列挙したい場合がある。

dim Dt as new DataTable("Dt")
'Const adSchemaTables = 20
Dim ConnectionString As String = "Data Source=.\sqlexpress;Initial Catalog=MyDataBase;Integrated Security=SSPI;"
Dim conn As New SqlConnection(ConnectionString)

'Dt = conn.getschema(adSchemaTables)
conn.open
Dt = conn.GetSchema("Tables")
gridview3.DataSource=dt
gridview3.DataBind
conn.Close()

接続文字列にあるとおりMyDataBaseというデータベースのテーブル一覧を取得する例である。

次は各テーブルの構造を取得するコードを作ってみる。

3231 ◆ExGQrDul2E:2006/05/27(土) 13:22:15 ID:MziW6YcM
テーブルの構造取得は>>291に書いた。

ハードディスクの中身をしるにはフォルダの階層構造とフォルダの中のファイルを取得するわけであるが、
それと同じ要領でデータベースの構造とデータを取得したわけである。
これができれば、データベースの移動、コピー、バックアップができる。
したがって、SQL Server 2005 Express EditionからSQL Server 2000などへデータを移行できるようになった。

3241 ◆ExGQrDul2E:2006/05/27(土) 18:43:07 ID:MziW6YcM
.NET2.0でテーブル構造取得プログラムを作ってみた。
Dim ConnectionString As String = "Data Source=.\sqlexpress;Initial Catalog=DATABASE.MDF;Integrated Security=SSPI;"
Dim SQL As String = "Select Top 1 * From ESODATA"
Dim conn As New SqlConnection(ConnectionString)
Dim cmd As New SqlCommand(SQL, conn)
conn.Open()
Dim DR As SqlDataReader = cmd.ExecuteReader
DR.Read()
Dim schemaTable As DataTable = DR.GetSchemaTable()
Dim myRow As DataRow
Dim myCol As DataColumn
Dim SS As String = ""
For Each myRow In schemaTable.Rows
For Each myCol In schemaTable.Columns
SS = SS & myCol.ColumnName & " = " & myRow(myCol).ToString() & "<br>"
Next
SS += "----------------------------------------------" & "<br>"
Next
DR.Close()
conn.Close()
Label2.Text = SS

3251 ◆ExGQrDul2E:2006/05/27(土) 18:43:51 ID:MziW6YcM
↑を実行するとホームページにテー部構造が次のように表示される。
ColumnName = 日付
ColumnOrdinal = 0
ColumnSize = 8
NumericPrecision = 23
NumericScale = 3
IsUnique = False
IsKey =
BaseServerName =
BaseCatalogName =
BaseColumnName = 日付
BaseSchemaName =
BaseTableName =
DataType = System.DateTime
AllowDBNull = True
ProviderType = 4
IsAliased =
IsExpression =
IsIdentity = False
IsAutoIncrement = False
IsRowVersion = False
IsHidden =
IsLong = False
IsReadOnly = False
ProviderSpecificDataType = System.Data.SqlTypes.SqlDateTime
DataTypeName = datetime
XmlSchemaCollectionDatabase =
XmlSchemaCollectionOwningSchema =
XmlSchemaCollectionName =
UdtAssemblyQualifiedName =
NonVersionedProviderType = 4

3261 ◆ExGQrDul2E:2006/05/27(土) 18:46:54 ID:MziW6YcM
同じテーブルを自動的に作成するSQLを作りたい場合は上記情報をSQL文に挿入すればよい。

あるデータベースから別のデータベースにデータを移動させたい場合に移動ユーティリティが存在しない場合は
今回のように自分でデータ移動プログラムを書くということである。

3271 ◆ExGQrDul2E:2006/05/27(土) 20:39:42 ID:MziW6YcM
そしてこれがテーブルをつくるためのSQLである。

Dim ConnectionString As String = "Data Source=.\sqlexpress;Initial Catalog=DATABASE.MDF;Integrated Security=SSPI;"
TableName = ""
Dim SQL As String = "Create Table TABLU (Field1 datetime,Field2 nvarchar(50))" 'datetime型を作るときにはサイズを指定しない
Dim conn As New SqlConnection(ConnectionString)
Dim cmd As New SqlCommand(SQL, conn)
conn.Open()
Dim num As Integer = cmd.ExecuteNonQuery
conn.Close()

実行してからデータベースをみてみるとテーブルとフィールドがきちんと作成できたのが確認できる。

3281 ◆ExGQrDul2E:2006/05/27(土) 20:48:33 ID:MziW6YcM
これぐらいできるようになれば
どのメーカーのデータベースをつかってもよい。
上記プログラムでいつでも別のデータベースにデータを移動できるからだ。

3291 ◆ExGQrDul2E:2006/05/28(日) 00:51:04 ID:MziW6YcM
データベース構造のコピー実験

Dim TableName As String
TableName = "ACCESS"

Dim ConnectionString As String = "Data Source=.\sqlexpress;Initial Catalog=DATABASE.MDF;Integrated Security=SSPI;"
Dim SQL As String = "Select Top 1 * From " & TableName
Dim conn As New SqlConnection(ConnectionString)
Dim cmd As New SqlCommand(SQL, conn)
conn.Open()
Dim DR As SqlDataReader = cmd.ExecuteReader
DR.Read()
Dim schemaTable As DataTable = DR.GetSchemaTable()
Dim myRow As DataRow
Dim myCol As DataColumn
Dim SS As String = ""
Dim SQL2 As String
SQL2 = "Create Table " & TableName & " ("
For Each myRow In schemaTable.Rows
Dim c1 As Integer
If Not c1 = 0 Then
SQL2 += ","
End If
Dim DType As String = ""
Dim Size As Integer
For Each myCol In schemaTable.Columns 'AAAAAAAAAAAAAAAAAAAA
'SS = SS & myCol.ColumnName & " = " & myRow(myCol.ColumnName).ToString() & "<br>"

If myCol.ColumnName = "ColumnName" Then
SQL2 += myRow(myCol.ColumnName).ToString
End If

If myCol.ColumnName = "ColumnSize" Then
Size = myRow(myCol.ColumnName)
End If

If myCol.ColumnName = "DataType" Then
Select Case myRow(myCol.ColumnName).ToString
Case "System.String"
DType = "nvarchar"
SQL2 += " " & DType & "(" & Size & ")"
Case "System.Int64"
DType = "bigint"
SQL2 += " " & DType
Case "System.DateTime"

DType = "datetime"
SQL2 += " " & DType
End Select

End If
'サイズ取得のほうがタイプ取得より前なのでここに書くと失敗
'If myCol.ColumnName = "ColumnSize" Then
' If DType = "nvarchar" Then
' SQL2 += "(" & myRow(myCol.ColumnName).ToString & ")"
' Else
' End If
'End If

Next 'AAAAAAAAAAAAAAAAAAAA
SS += "----------------------------------------------" & "<br>"
c1 += 1
Next
SQL2 += ")"

DR.Close()
conn.Close()
Label3.Text = SQL2

Dim ConnectionString2 As String = "Data Source=(local);Initial Catalog=AoM;Integrated Security=SSPI;"
Dim conn2 As New SqlConnection(ConnectionString2)
Dim cmd2 As New SqlCommand(SQL2, conn2)
conn2.Open()
Dim num2 As Integer = cmd2.ExecuteNonQuery
conn2.Close()
'↑ここまでがコピー先データベースのテーブル設計が終わった段階である。つぎはデータのコピーを行う。

3301 ◆ExGQrDul2E:2006/05/28(日) 00:54:11 ID:MziW6YcM
今回はSQL Server Express 2005のテーブルをSQL Server 2000にコピーしてみた。
無事成功。
SQL Serverはバージョンが違うと互換性が乏しく自作のプログラムでデータ移行する必要があったのだ。

3311 ◆ExGQrDul2E:2006/05/28(日) 01:12:03 ID:MziW6YcM
そして、ローカルマシンにしか表示できないApp_Dataデータベースをサーバーに移してネットで公開できるようになったことも意味する。
マイクロソフトはローカルマシンでしか扱えないようにしたり、高いお金を払った製品はネットで扱えるなどの差別化をしているので
こんかいのサンプルを利用すれば最初は安いローカルマシンで開発して、将来サーバー製品を買ったときにデータを移行して外部公開できるのである。

3321 ◆ExGQrDul2E:2006/05/28(日) 01:15:39 ID:MziW6YcM
プログラミングする前に最初からサーバー向けのデータベースを用意しなくても済むというのは
金銭的にも労力的にも大きいはず。データベースコピープログラムが書けるからこその恩恵だ。

3331 ◆ExGQrDul2E:2006/05/28(日) 02:34:51 ID:MziW6YcM
フィールド名に予約語や数字のみの名前をつけたいときは[ ]でくくる。
If myCol.ColumnName = "ColumnName" Then
SQL2 += "[" & myRow(myCol.ColumnName).ToString + "]"
End If

3341 ◆ExGQrDul2E:2006/05/28(日) 04:17:57 ID:MziW6YcM
↑の方ではテーブルの構造をコピーしたので今度はデータをコピーするプログラム。
'データベースA→データリーダーに読み込み→データベースBに書き込み
ConnectionString = "Data Source=.\sqlexpress;Initial Catalog=DATABASE.MDF;Integrated Security=SSPI;"
ConnectionString2 = "Data Source=(local);Initial Catalog=AoM;Integrated Security=SSPI;"
SQL = "Select * From " & TableName
conn = New SqlConnection(ConnectionString)
conn2 = New SqlConnection(ConnectionString2)
cmd = New SqlCommand(SQL, conn)
conn.Open()
DR = cmd.ExecuteReader
DR.Read()
schemaTable = DR.GetSchemaTable()
SS = ""
Dim i As Integer

'For Each myRow In schemaTable.Rows
' SQL2 = "Insert into " & TableName & "("

' For Each myCol In schemaTable.Columns
' 'SS = SS & myCol.ColumnName & " = " & myRow(myCol).ToString() & "<br>"

' Next
' 'SS += "----------------------------------------------" & "<br>"
'Next
Dim SQL2b As String
'While DR.Read 'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW'いったんリードしてるのでここではリードしない
Do
SQL2 = "Insert into " & TableName & "("
SQL2b = ") Values ("
For i = 0 To DR.FieldCount - 1
If Not i = 0 Then
SQL2 += ","
SQL2b += ","
End If
SQL2 += "[" & DR.GetName(i) & "]"
'文字列は' 'で囲むので列のタイプがわからないといけない。
schemaTable = DR.GetSchemaTable()
For Each myRow In schemaTable.Rows
For Each myCol In schemaTable.Columns
If myCol.ColumnName = "DataType" Then
If myRow(myCol.ColumnName).ToString = "System.DateTime" Or myRow(myCol.ColumnName).ToString = "System.String" Then
If Not IsDBNull(DR(i)) Then
SQL2b += "'" & DR(i) & "'"
Else
SQL2b += "Null"
End If

End If
GoTo LandB
End If
Next
Next
LandB:
' If schemaTable.Rows(DR.GetName(i))("DataType") Then
'SQL2b += schemaTable.Rows(0)("DataType").ToString
Next
'GoTo LandA
SQL2 += SQL2b & ")"
cmd2 = New SqlCommand(SQL2, conn2)
conn2.Open()
num2 = cmd2.ExecuteNonQuery
conn2.Close()
'End While 'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
Loop While DR.Read
' GridView5.DataSource = DR
' GridView5.DataBind()
LandA:
DR.Close()
conn.Close()
Label3.Text = SQL2

3351 ◆ExGQrDul2E:2006/05/28(日) 04:21:01 ID:MziW6YcM
↑データをコピーするときはSQL のInsertコマンドを使ってみた。
こうしてテーブル構造もデータもコピーできたのであった。

336名無しさん:2006/05/29(月) 04:45:30 ID:x4fpfJRM
めでたし めでたし

3371 ◆ExGQrDul2E:2006/06/03(土) 00:30:00 ID:PfJOdz9g
     _____
   /。    \
  /        \
 / ┏━━━━━┓   コ
 |  ┃ ⊂⊃|⊃|   /
 |  ┃ | \__/| |   ホ
 \┃ \___ / |  /
   \        /

338名無しさん:2006/07/18(火) 17:55:34 ID:AUWg3sMw
http://ime.s2ch.net/log.php

3391 ◆ExGQrDul2E:2006/07/29(土) 02:10:27 ID:SEZ8PBeg
ファイルをゴミ箱に移動させる方法
http://www.microsoft.com/japan/msdn/vbasic/migration/tips/SHFileOperation/

3401 ◆ExGQrDul2E:2006/08/04(金) 02:20:45 ID:SEZ8PBeg
パチンコおもすれーーーー

341名無しさん:2006/08/20(日) 07:24:45 ID:9yx2a7Ek
1って、>>338みたいなの作れる技量あるの?

3421 ◆ExGQrDul2E:2006/08/20(日) 10:46:33 ID:SEZ8PBeg
ノーコメント

3431 ◆ExGQrDul2E:2006/09/06(水) 01:32:00 ID:oJIhamyE
Visual Basic 言語リファレンス
ユーザー定義の日付/時刻書式 (Format 関数)
参照 使用例
すべて折りたたむ すべて展開 言語のフィルタ : すべて 言語のフィルタ : 複数 言語のフィルタ : Visual Basic 言語のフィルタ : C# 言語のフィルタ : C++ 言語のフィルタ : J# 言語のフィルタ : JScript
Visual Basic (宣言)
Visual Basic (使用法)
C#
C++
J#
JScript

ユーザー定義の日付/時刻書式を作成するときに使用できる文字を次の表に示します。以前のバージョンの Visual Basic とは異なり、これらの形式指定文字の大文字と小文字は区別されます。

文字 説明
(:)
時刻の区切り記号。ロケールによっては、時刻の区切り記号を表すのに別の記号が使用されます。時刻の区切り記号は、時刻値を表すときに、時、分、および秒を区切ります。書式指定された出力で、実際に時刻の区切り記号として使用される記号は、システムの LocaleID 値によって決まります。

(/)
日付の区切り記号。ロケールによっては、日付の区切り記号を表すのに別の記号が使用されます。日付の区切り記号は、日付値を表すときに、年月日を区切ります。書式指定された出力で、実際に日付の区切り記号として使用される記号は、ロケールによって決まります。

(%)
後に続く文字には関係なく、次の文字を 1 文字書式指定として読み取る必要があることを示すために使用します。1 文字書式指定をユーザー定義の書式として読むことを示すためにも使用します。詳細については、以下の説明を参照してください。

d
先行するゼロを付けずに日付を表示します (たとえば、1)。ユーザー定義の数値書式でこれが唯一の文字である場合は、%d を使用します。

dd
先行するゼロを付けて日付を表示します (たとえば、01)。

ddd
曜日を短縮形で表示します (たとえば、Sun)。

dddd
曜日をそのまま表示します (たとえば、Sunday)。

M
先行するゼロを付けずに月を表示します (たとえば、1 月は 1)。ユーザー定義の数値書式でこれが唯一の文字である場合は、%M を使用します。

MM
先行するゼロを付けて月を表示します (たとえば、01/12/01)。

MMM
月を短縮形で表示します (たとえば、Jan)。

MMMM
月をそのまま表示します (たとえば、January)。

gg
時代/年号を示す文字列を表示します (たとえば、A.D.)。

h
先行するゼロを付けずに、時を 12 時間制で表示します (たとえば、1:15:15 PM)。ユーザー定義の数値書式でこれが唯一の文字である場合は、%h を使用します。

hh
先行するゼロを付けて、時を 12 時間制で表示します (たとえば、01:15:15 PM)。

H
先行するゼロを付けずに、時を 24 時間制で表示します (たとえば、1:15:15)。ユーザー定義の数値書式でこれが唯一の文字である場合は、%H を使用します。

HH
先行するゼロを付けて、時を 24 時間制で表示します (たとえば、01:15:15)。

m
先行するゼロを付けずに、分を表示します (たとえば、12:1:15)。ユーザー定義の数値書式でこれが唯一の文字である場合は、%m を使用します。

mm
先行するゼロを付けて、分を表示します (たとえば、12:01:15)。

3441 ◆ExGQrDul2E:2006/09/06(水) 01:32:14 ID:oJIhamyE

s
先行するゼロを付けずに、秒を表示します (たとえば、12:15:5)。ユーザー定義の数値書式でこれが唯一の文字である場合は、%s を使用します。

ss
先行するゼロを付けて、秒を表示します (たとえば、12:15:05)。

F
秒の小数部を表示します。たとえば、ff は 100 分の 1 秒を表示し、ffff は 10,000 分の 1 秒を表示します。ユーザー定義の書式では f 記号を 7 つまで使用できます。ユーザー定義の数値書式でこれが唯一の文字である場合は、%f を使用します。

T
12 時間制を使用し、午前は大文字の A、午後 (11:59 P.M. まで) は大文字の P を表示します。ユーザー定義の数値書式でこれが唯一の文字である場合は、%t を使用します。

tt
12 時間制を使用し、午前は大文字の AM、午後 (11:59 P.M. まで) は大文字の PM を表示します。

24 時間制を使用するロケールの場合、何も表示されません。

y
先行するゼロを付けずに、年を 1 桁の値 (0 〜 9) で表示します。ユーザー定義の数値書式でこれが唯一の文字である場合は、%y を使用します。

yy
先行するゼロを付けずに、年を 2 桁の数値で表示します。

yyy
年を 4 桁の数値書式で表示します。

yyyy
年を 4 桁の数値書式で表示します。

z
標準時との時差を先頭にゼロのない数値として表示します (たとえば、-8)。ユーザー定義の数値書式でこれが唯一の文字である場合は、%z を使用します。

zz
標準時との時差を先頭にゼロのある数値として表示します (たとえば、-08)。

zzz
標準時との時差を完全な形で表示します (たとえば、-08:00)。


使用例
December 7, 1958, 8:50 PM, 35 seconds を使ったユーザー定義の日付/時刻書式の例を次に示します。

形式 表示
M/d/yy
12/7/58

d-MMM
7-Dec

d-MMMM-yy
7-December-58

d MMMM
7 December

MMMM yy
December 58

hh:mm tt
08:50 PM

h:mm:ss t
8:50:35 P

H:mm
20:50

H:mm:ss
20:50:35

M/d/yyyy H:mm
12/7/1958 20:50

3451 ◆ExGQrDul2E:2006/09/06(水) 20:52:28 ID:oJIhamyE
文字コードの判別
http://dobon.net/vb/dotnet/string/detectcode.html

346あぼんぬ:あぼんぬ
あぼんぬ

3471 ◆ExGQrDul2E:2007/11/05(月) 01:29:51 ID:PDUtZqkU
2chブラウザはWindowsフォームというアプリケーションなわけであるが、フォームの表示位置をコードで操作するプログラムを自作したので解説する。

3481 ◆ExGQrDul2E:2007/11/05(月) 01:33:07 ID:PDUtZqkU
FormのStartPositionプロパティにManualやCenterScreenという値があるが、今回は自分が指定した位置にフォームを表示させるのでManualにしておく。
そしたらForm1_Loadのプロシージャに次のコードを書く。

3491 ◆ExGQrDul2E:2007/11/05(月) 01:38:05 ID:PDUtZqkU
じゃなかった、フォームの中にリンクラベルコントロールをずらずらとならべるプログラムを書く。
リンクラベルを実行時に動的に生成する場合はコード中でリンクラベルの表示位置をX,Yで指定する。
VB6ではLabel1.LeftとLabel1.TopというプロパティがありX,Yの指定はカンタンだったが.NETではさてどうするかという問題。

3501 ◆ExGQrDul2E:2007/11/05(月) 01:39:20 ID:PDUtZqkU
Dim LinkLove As LinkLabel = New LinkLabel
LinkLove.Name = "LinkLove" & i
LinkLove.AutoSize = True
LinkLove.Text = S2(0)
If i = 1 Then 'HHHHHHHHHHHHHHHHHHHHHH
PX = 0 : PY = 0
Else 'HHHHHHHHHHHHHHHHHHHHHH
Dim o As Object
Dim LB As LinkLabel
For Each o In Me.Controls 'DDDDDDDDDDDDDDDDD
If o.Name = "LinkLove" & i - 1 Then
'CType
LB = CType(o, LinkLabel)
PX = 0
PY = LB.Location.Y + LB.Height
End If 'HHHHHHHHHHHHHHHHHHHHHH
Next 'DDDDDDDDDDDDDDDDD
End If
LinkLove.Location = New Point(PX, PY)
'→エラー'Form1.Controls.Add(LinkLove)'↓Form1でなくMeキーワードを使う
Me.Controls.Add(LinkLove)
'LinkLove.Visible = True
'ListBox2.Items.Add(FileString)
AddHandler LinkLove.LinkClicked, AddressOf LinkLove_LinkClicked

3511 ◆ExGQrDul2E:2007/11/05(月) 01:44:30 ID:PDUtZqkU
Dim LinkLove As LinkLabel = New LinkLabel
LinkLove.Name = "LinkLove" & i
LinkLove.AutoSize = True
LinkLove.Text = "←リンクラベルに表示する文字列"

ここらへんは動的にコントロールを作っている部分。Dimでコントロールを宣言したら各種プロパティの設定を行っている。
.Name コントロールの一意に定める名前で、コントロールにアクセスするときはこのNameを指定する。いわゆるコントロールのIDなので私の好みをいうと.IDと言うプロパティにしてほしかったがVB.NETでは.Nameである。
.AutoSize 表示文字の長さにあわせて自動伸縮
.Text 表示文字列

3521 ◆ExGQrDul2E:2007/11/05(月) 01:47:39 ID:PDUtZqkU
Dim o As Object
Dim LB As LinkLabel
For Each o In Me.Controls
If o.Name = "LinkLove" & i - 1 Then
'CType
LB = CType(o, LinkLabel)

ここらへん、凝っているが、LinkLabel1.Text="abc"ならできるが、
i=1
(LinkLabel & i).Text="abc"という変数iを使ったコントロールの指定ができないから特殊テクニックを使った。

3531 ◆ExGQrDul2E:2007/11/05(月) 02:15:41 ID:PDUtZqkU
ここらへんがフォームの位置座標を扱っているコード。
PY = LB.Location.Y + LB.Height

LinkLove.Location = New Point(PX, PY)
など。
Locationというキーワードを使うのもVB6.0の頃にはプログラマーが書かないでも自動でやってくれていたし、
New Point(PX, PY)というのも目新しく使いこなすのに慣れが必要だとおもふ

3541 ◆ExGQrDul2E:2007/11/11(日) 09:21:30 ID:PDUtZqkU
New Point(PX, PY)
などは構造体という言葉が思いつくであろう。

3551 ◆ExGQrDul2E:2007/11/12(月) 02:47:09 ID:PDUtZqkU
VB6.0のヘルプファイルはMSDNライブラリという膨大なものだが、
このライブラリのナンギガバイトものデータをハードディスクにインストールする余裕が無い場合は
Windowsスクリプトのヘルプファイルをマイクロソフトからインストールすると10MBぐらいですむようだ

3561 ◆ExGQrDul2E:2008/02/10(日) 12:04:43 ID:YyQ2hNss
VB.NETであるフォームから別のフォームのテキストボックスに値を表示するコード
Dim frmDebug As Form = New Debug
frmDebug.Controls.Item("RTB1").Text = S
frmDebug.Show()

3571 ◆ExGQrDul2E:2008/02/10(日) 19:23:55 ID:YyQ2hNss
ディレクトリの中身ごとディレクトリをコピーするすばらしぃメソッド
My.Computer.FileSystem.CopyDirectory(コピー元ディレクトリ, コピー先ディレクトリ, True)
第3引数のTrueはコピー先に同じ名前のものがあったら上書きするためのもの

3581 ◆ExGQrDul2E:2008/02/10(日) 19:35:22 ID:YyQ2hNss
しかし、あるファイルのみをコピーしたいなど細かい制御が必要な場合は
やはりファイルを1コずつ扱うのだ。
-----------------------------------
Dim Moto As String
Dim Saki As String
Moto = "コピー元ディレクトリ"
Saki = "コピー先ディレクトリ"
Dim di As New DirectoryInfo(Moto)
Dim fi As FileInfo() = di.GetFiles()
Dim fiTemp As FileInfo

For Each fiTemp In fi
My.Computer.FileSystem.CopyFile(Moto & "\" & fiTemp.Name, Saki & "\" & fiTemp.Name, True)
Next fiTemp

3591 ◆ExGQrDul2E:2008/02/11(月) 13:04:41 ID:YyQ2hNss
Process.Startという便利なメソッドがある。
便利だが、単にProcess.Start("http://〜")でサイトを開くとすでに開いているウィンドウに新たなページが表示されてしまう。
新しいウィンドウにページを表示したくば次のようにするのだ。
Dim URL As String
Dim i As Integer
Try
i = ListBox1.SelectedIndex
URL = URLDt.Rows(i)("URL")


Dim myProcess As New ProcessStartInfo
myProcess.FileName = BrowserPath
myProcess.Arguments = URL
myProcess.CreateNoWindow = False
myProcess.UseShellExecute = False
myProcess.Verb = "open"
Process.Start(myProcess)
Catch

End Try

3601 ◆ExGQrDul2E:2008/02/20(水) 12:31:25 ID:RHGP7ogY
これはWEBサイトを作る時の話題だが、
ASP.NETでサイトを作ったらデフォルトではすべてのページはUTF-8であり、日本語の文字はきれいに表示されてくれない。
各ページのBODYタグにスタイルシートで文字コードを指定するのは常道ではあるが、各ページに記述するのはとても大変なことである。
そこで、サイト全体をシフトジスにするには、ルートフォルダにあるweb.configの
<system.web>
</system.web>
の間に
<globalization requestEncoding="shift_jis" responseEncoding="shift_jis" />
と書くのだ。
参考ページ
http://www.atmarkit.co.jp/fdotnet/aspexp/aspexp14/aspexp14_03.html

3611 ◆ExGQrDul2E:2008/03/12(水) 14:07:49 ID:8CJQ35mI
String 関数
類似 Space 関数
必要条件
バージョン 1
指定した繰り返し回数を使用して文字列を返します。

String(number, character)
引数
number
文字をいくつ並べるのかを指定します。引数 number に Null 値が含まれる場合は、Null 値を返します。
character
文字の文字コードまたは文字列式を指定します。この文字列の先頭文字を number 回繰り返した値を返します。引数 character に Null 値が含まれる場合は、Null 値を返します。
解説
引数 character に 256 以上の数値を指定すると、String 関数では次の式を使って数値を有効な文字コードに変換します。

character Mod 256
次のコードは、String 関数を使って指定された文字数だけ並べた文字列を返す例です。

Dim MyString
MyString = String(5, "*") ' " *****" を返します。
MyString = String(5, 42) ' "*****" を返します。
MyString = String(10, "ABC") ' "AAAAAAAAAA" を返します。

3621 ◆ExGQrDul2E:2008/04/08(火) 16:21:35 ID:YhrDhYBI
>>179の@パラメータを使用していた場合は下記の問題を回避できるのだ。
@がSQL予約語を自動的にエスケープしてくれるからだ。

【社会】中国国内から「SQLインジェクション」…カード番号など流出した可能性 - サウンドハウス
http://mamono.2ch.net/test/read.cgi/newsplus/1207525293/l50

3631 ◆ExGQrDul2E:2008/04/13(日) 13:32:34 ID:TCJv6qJ2
Webページを保存して開いてみると文字化けしている場合があるが、
それは文字コードの指定がないhtmlファイルの場合がほとんどだ。
ファイル自体が壊れているわけではないので文字コード指定を追加してやる。
<head></head>
の間に
<meta http-equiv="Content-Type" content="text/html; charset=x-sjis">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
を書く。

3641 ◆ExGQrDul2E:2008/04/13(日) 15:34:54 ID:TCJv6qJ2
コンストラクタはクラスのインスタンス作成と初期化を同時に行うもののことだ。
Dim sw As StreamWriter = New StreamWriter(FileName)
はテキストをハードディスクに書き込むためのStreamWriterクラスのインスタンスであるが、
コンストラクタの便利なところは引数に在る。
StreamWriter(FileName)
以外にも、
StreamWriter(FileName,True)

StreamWriter(FileName,True,System.Text.Encoding.GetEncoding("UTF-8"))
などが記述でき、
FileNameはパスまで含んだファイル名
Trueは同じファイルがあったときに上書きするかどうか
System.Text.Encoding.GetEncoding("UTF-8")はどんな文字コードで保存するか、
の指定である。
ファイルのパスを表す引数以外は省略できるが、省略したばあいはデフォルトの値が使用される。
デフォルトの値は.NETの仕様書、ヘルプファイルに載っている。
たとえば文字コードを指定しなければUTF8で保存される。

3651 ◆ExGQrDul2E:2008/05/06(火) 08:01:20 ID:TCJv6qJ2
RichTextBox1という名前が長いので、コントロールはRichTextBox1という名前のままで
プログラム中ではRTB1という短い名前で扱う工夫
--------
Dim RTB1 As RichTextBox = CType(RichTextBox1, RichTextBox)
RTB1.SelectionStart = RTB1.TextLength
----------------
↑CTypeは便利

3661 ◆ExGQrDul2E:2008/05/06(火) 08:02:53 ID:TCJv6qJ2
VbCrLFを毎回書くのは労力なのでカンタンにする工夫
Dim CL As String = VbCrLf

CLの2文字で改行を扱えるようになった。

3671 ◆ExGQrDul2E:2008/06/05(木) 13:58:46 ID:LvivE98s
「大事なアドレス」

192.168.1.1はルータへ、
170.0.0.1はローカルマシンへ。

ルータへのログインIDを忘れたら悲惨

3681 ◆ExGQrDul2E:2008/06/08(日) 01:02:55 ID:LvivE98s
VB.NETでexeファイルを作成するとデフォルトではbin\Releaseというフォルダに作成されてしまう。
VBプロジェクトと同じフォルダにexeファイルを作りたい場合は、
メニュー→プロジェクト→プロパティ→コンパイル→ビルド出力パス
のところに.\と書いておく。

3691 ◆ExGQrDul2E:2008/06/08(日) 01:41:46 ID:LvivE98s
アプリ.exeを起動する時に/abcなどの
コマンドラインをDOSプロンプトなどに記述して、起動された側がそれを受け取るプログラム
Dim CommandLine As String
CommandLine = Command()
TextBox1.Text = CommandLine

3701 ◆ExGQrDul2E:2008/06/08(日) 01:48:05 ID:LvivE98s
逆に、あるアプリをこちらのアプリからコマンドライン付きで起動したい場合は
Process.Start (String, String)
と書く。
Process.Start (String)
はおなじみで、Stringに起動させたいexeなどをフルパスで指定したわけだが、
コマンドラインを含ませて起動したい場合は
Process.Start (String, String)
と第2引数にコマンドラインを書く。
つまり、
Process.Start (String)
を使って
Process.Start ("あぷり.exe /abc")
だと指定したファイルが見つからないというエラーになるので、
コマンドラインを利用する場合は
Process.Start ("あぷり.exe","/abc")
と第2引数にコマンドラインを書いた形式でプロセススタートする。

3711 ◆ExGQrDul2E:2008/06/08(日) 01:50:27 ID:LvivE98s
Process.Start ("あぷり.exe","/abc")

訂正
/abcの/はいらない
Process.Start ("あぷり.exe","abc")

3721 ◆ExGQrDul2E:2008/06/08(日) 13:16:53 ID:LvivE98s
日付データを文字列として、年を4桁、月を2桁、日を2桁で出力する
Format(Date, "yyyy/MM/dd")

3731 ◆ExGQrDul2E:2008/06/08(日) 13:22:08 ID:LvivE98s
2008/1/3の1月部分などを1ではなく01とし、2008/01/03としたい場合がよくあり、このときLeft関数やRight関数を使う場合がある。
X="01"とすると
このときうっかりLeft("0" & X,2)とすると戻り値は00になってしまう。
Right("0" & X,2)が正しく、ちゃんと01の値を取り出せる。

3741 ◆ExGQrDul2E:2008/06/11(水) 05:06:25 ID:LvivE98s
ところであるアプリを別のアプリからコマンドライン付きで起動するべきものはなんであろうか。
グローバル変数を多く使ったアプリは初期化の書き忘れなどが多々あり、そういったアプリは作業が一回終わったら一旦終了して、またアプリを起動しないと使えない。
そこで、アプリの終了や再起動が頻繁に必要なアプリは外部アプリからの立ち上げが便利だ。何回も手動で再起動する必要が無くなる。

3751 ◆ExGQrDul2E:2008/06/25(水) 15:30:33 ID:FyL9DViM
Microsoft Windows Vista で SendKeys を使用するための Microsoft .NET Framework 1.1 Service Pack 1 更新プログラム
http://www.microsoft.com/downloads/details.aspx?FamilyID=59b18749-74f9-4891-8cb5-b22970b58aa9&amp;DisplayLang=ja

3761 ◆ExGQrDul2E:2008/08/22(金) 11:01:19 ID:Ijg2xTc6
なぞのエラーが出たらハードディスクがいっぱいの可能性がある

3771 ◆ExGQrDul2E:2008/08/30(土) 12:51:12 ID:rE00umOE
CheckBox コントロールには、Checked および CheckState という 2 つの重要なプロパティがあります。Checked プロパティは、true または false を返します。CheckState プロパティは、Checked または Unchecked を返します。ThreeState プロパティが true に設定されている場合、CheckState も Indeterminate を返すことがあります。中間状態では、ボックスが淡色表示されてオプションを使用できないことが示されます。

3781 ◆ExGQrDul2E:2008/08/30(土) 14:48:51 ID:rE00umOE
SJIS、JIS、EUC、UNICODE(UTF-16)、UTF-7、UTF-8の文字コード判定/変換(コマンドライン可)
http://homepage2.nifty.com/nonnon/Download/NonCode/index.html

3791 ◆ExGQrDul2E:2008/08/30(土) 15:25:18 ID:rE00umOE
http://chaichan.web.infoseek.co.jp/vbtips/VBMemo2006082201.htm
◆ VBSでのコマンドライン引数の取得
VB6では、Commmand関数でコマンドライン引数を取得できますが、VBSでは、Commmand関数がありません。ではどうするかというと、以下の感じです。ちなみに、VBAでのコマンドライン引数取得はここを参照してください。

Set args = WScript.Arguments
msgbox "引数の数は" & args.Count & "で、第1引数は" & args.item(0) & "で、第2引数は" & args.item(1) & "です。"

'起動方法(DOSコマンドラインまたは、「ファイル名を指定して実行」ダイアログから)
wscript.exe "C:\args.vbs" "abc" "123"

3801 ◆ExGQrDul2E:2008/08/30(土) 18:21:37 ID:rE00umOE
DateAdd 関数 (Visual Basic)
DateDiff 関数 (Visual Basic)
DatePart 関数 (Visual Basic)
Day 関数 (Visual Basic)
Format 関数
Now プロパティ
Weekday 関数 (Visual Basic)
Year 関数 (Visual Basic)
日付型 (Date) (Visual Basic)

3811 ◆ExGQrDul2E:2008/08/30(土) 18:30:28 ID:rE00umOE
文字列→日付型
CDate

3821 ◆ExGQrDul2E:2008/08/30(土) 18:39:47 ID:rE00umOE
S=CStr(D)
のほかに
S=D.ToString
もおk

3831 ◆ExGQrDul2E:2008/08/30(土) 18:48:27 ID:rE00umOE
おススメはこちら
S=Format(D, "yyyy_MM_dd")

3841 ◆ExGQrDul2E:2008/08/31(日) 03:37:33 ID:rE00umOE
9−4.VB6のItemDataプロパティと同じような動作
最後にVB6を使用していプログラマ向けに情報を提供します。

VB6のListBoxにはItemDataというプロパティがあり、表示している一覧とは別に表示されない一覧を持つことができました。この2つの一覧はたとえば、学籍番号と学生の名前のように対になっている値を管理するのに便利でした。ただし、ItemDataの一覧には数値項目しか設定できないのが難点でした。

VB.NET2002以降では一覧はあくまでもItemsプロパティの一覧だけになりましたが、文字列以外の値も設定できるようになったためVB6のItemDataプロパティよりも柔軟に対になっている値や連動する値を管理することができます。

以下のVB6のItemDataプロパティの使用例を示します。

http://homepage1.nifty.com/rucio/main/dotnet/ClassLibrary/L007_System.Windows.Forms.ListBox.htm

3851 ◆ExGQrDul2E:2008/08/31(日) 14:43:06 ID:rE00umOE
Dim S1, S2 As String スカラー変数
Dim Sa1, Sa2 As String() 配列変数

3861 ◆ExGQrDul2E:2008/09/01(月) 12:21:04 ID:rE00umOE
フォルダのサイズを取得する
あるフォルダ以下のすべてのファイルの合計サイズを取得する方法を紹介します。ヘルプにも同様の方法が紹介されていますので、そちらもご覧ください。

下記のメソッド(GetDirectorySizeメソッド)は、DirectoryInfoオブジェクトで対象フォルダを指定し、サイズを取得しています。なお、ファイル数、サブフォルダ数が多いと、かなり時間がかかります。
http://dobon.net/vb/dotnet/file/foldersize.html

3871 ◆ExGQrDul2E:2008/09/16(火) 15:23:56 ID:COmXOrqI
ランダムクラスについて
http://jeanne.wankuma.com/tips/vb.net/random/next.html
乱数 (ランダムな数) を取得する
' Random クラスの新しいインスタンスを生成する
Dim cRandom As New System.Random()

' 0 以上の乱数を取得する
Dim iResult1 As Integer = cRandom.Next()

' 0 以上 512 未満の乱数を取得する
Dim iResult2 As Integer = cRandom.Next(512)

' 256 以上 512 未満の乱数を取得する
Dim iResult3 As Integer = cRandom.Next(256, 512)

' 取得した乱数を表示する
MessageBox.Show( _
iResult1.ToString() & System.Environment.NewLine & _
iResult2.ToString() & System.Environment.NewLine & _
iResult3.ToString() _
)

http://jeanne.wankuma.com/tips/vb.net/random/nextdouble.html
乱数 (ランダムな数) を浮動小数で取得する
VB.NET 全般
' Random クラスの新しいインスタンスを生成する
Random cRandom = new System.Random()

' 0.0 以上 1.0 以下の乱数を取得する
Dim dRandom As Double = cRandom.NextDouble()

' 取得した乱数を表示する
MessageBox.Show(dRandom.ToString())

http://jeanne.wankuma.com/tips/vb.net/random/nextbytes.html
VB.NET 全般
' Random クラスの新しいインスタンスを生成する
Dim cRandom As New System.Random()

' バイト型の配列を確保する
Dim btBytes(5) As Byte

' バイト型の配列の乱数を取得する
cRandom.NextBytes(btBytes)

' 取得した乱数をすべて表示する
For Each btByte As Byte In btBytes
MessageBox.Show(btByte.ToString())
Next btByte

3881 ◆ExGQrDul2E:2008/09/17(水) 11:55:57 ID:COmXOrqI
Random.Next () 0 以上の乱数を返します。
.NET Compact Framework によってサポートされています。

Random.Next (Int32) 指定した最大値より小さい 0 以上の乱数を返します。
.NET Compact Framework によってサポートされています。

Random.Next (Int32, Int32) 指定した範囲内の乱数を返します。
.NET Compact Framework によってサポートされています。

Int32 値型は、-2,147,483,648 から +2,147,483,647 までの値の符号付き整数を表します。

3891 ◆ExGQrDul2E:2008/09/22(月) 08:17:35 ID:R4XJd84M
文字コード判別など
http://homepage2.nifty.com/nonnon/SoftSample/index.html

390名無しさん:2008/09/25(木) 23:18:35 ID:CvMDidiE
もう5年かよ・・・。
尊敬してしまう・・・。

3911 ◆ExGQrDul2E:2008/09/27(土) 03:36:24 ID:R4XJd84M
オッス。

3921 ◆ExGQrDul2E:2008/09/29(月) 11:52:58 ID:R4XJd84M
配列変数の宣言の仕方は次の2通り
Dim Arr1() As String
Dim Arr1 As String()
/////////////////////////////
同じサイズの配列を複数宣言するときに便利な方法
Dim Arr1,Arr2,Arr3 As String()

3931 ◆ExGQrDul2E:2008/09/30(火) 14:45:39 ID:R4XJd84M
IsNumeric 関数
IsNumeric は、Expression のデータ型が Boolean、Byte、Decimal、Double、Integer、Long、SByte、Short、Single、UInteger、ULong、または UShort の場合に True を返します。また、Expression が、数値に正しく変換できる Char、String、または Object である場合にも True を返します。

Expression が Date 型の場合、IsNumeric は False を返します。Expression が、数値に正しく変換できない Char、String、または Object である場合にも False を返します。

3941 ◆ExGQrDul2E:2008/11/23(日) 14:57:29 ID:EKrM8ywA
とりあえず自分のパソコンでしか動かない2chブラウザならできたけど
ハードディスクが壊れてソースごとあぼ〜ん

3951 ◆ExGQrDul2E:2008/12/08(月) 10:14:59 ID:8OfZBncA
不景気だ・・・日本も世界も

3961 ◆ExGQrDul2E:2008/12/14(日) 23:40:53 ID:8OfZBncA
>>349に関連した記事
---------------------------
Form の新しいインスタンスを作成し、ShowDialog メソッドを呼び出して、フォームをダイアログ ボックスとして表示するコード例を次に示します。この例では、FormBorderStyle、AcceptButton、CancelButton、MinimizeBox、MaximizeBox、StartPosition の各プロパティを設定してフォームの外観と機能を変更し、ダイアログ ボックスとして表示します。この例では、フォームの Controls コレクションの Add メソッドを使用して、2 つの Button コントロールも追加します。また、HelpButton プロパティを使用して、ダイアログ ボックスのキャプション バーにヘルプ ボタンを表示します。

Visual Basic コードのコピー
Public Sub CreateMyForm()
' Create a new instance of the form.
Dim form1 As New Form()
' Create two buttons to use as the accept and cancel buttons.
Dim button1 As New Button()
Dim button2 As New Button()

' Set the text of button1 to "OK".
button1.Text = "OK"
' Set the position of the button on the form.
button1.Location = New Point(10, 10)
' Set the text of button2 to "Cancel".
button2.Text = "Cancel"
' Set the position of the button based on the location of button1.
button2.Location = _
New Point(button1.Left, button1.Height + button1.Top + 10)
' Set the caption bar text of the form.
form1.Text = "My Dialog Box"
' Display a help button on the form.
form1.HelpButton = True

' Define the border style of the form to a dialog box.
form1.FormBorderStyle = FormBorderStyle.FixedDialog
' Set the MaximizeBox to false to remove the maximize box.
form1.MaximizeBox = False
' Set the MinimizeBox to false to remove the minimize box.
form1.MinimizeBox = False
' Set the accept button of the form to button1.
form1.AcceptButton = button1
' Set the cancel button of the form to button2.
form1.CancelButton = button2
' Set the start position of the form to the center of the screen.
form1.StartPosition = FormStartPosition.CenterScreen

' Add button1 to the form.
form1.Controls.Add(button1)
' Add button2 to the form.
form1.Controls.Add(button2)

' Display the form as a modal dialog box.
form1.ShowDialog()
End Sub

3971 ◆ExGQrDul2E:2009/01/09(金) 17:45:11 ID:8OfZBncA
起動しているメモ帳をすべて終了するプログラムをつくってみた。
参考ページはこちら
http://jeanne.wankuma.com/tips/vb.net/process/

Dim hProcesses As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcessesByName("notepad") '大文字のNotepadでも機能する
Dim hProcess As System.Diagnostics.Process
For Each hprocess In hProcesses
hProcess.Kill()
Next hProcess
−−−−−−−−−−−−−−−−−−−−−−−−−−
ウィンドウズアクセサリのnotepad.exeを起動するといくつ起動してもすべてnotepadというプロセスネイムなのですべてのメモ帳を終了することができる。
特定のメモ帳だけを制御したいばあいはプロセスIDを採用する。

3981 ◆ExGQrDul2E:2009/01/09(金) 17:52:35 ID:8OfZBncA
特定のファイルを開いているプロセスのみを制御しているサンプル
http://hanatyan.sakura.ne.jp/dotnet/App05.htm

ByVal e As System.EventArgs) Handles Button3.Click
'指定のExcelファイルを起動しているExcel.EXEを探し終了させる
Dim localByName As Process() = Process.GetProcessesByName("Excel")
Dim p As Process
Dim fn As String = "Microsoft Excel - " & "Test.xls"
'起動中のExcelを取得
For Each p In localByName
'指定のファイル名(Test.xls)で起動中のExcelがあれば終了する
If System.String.Compare(p.MainWindowTitle, fn, True) = 0 Then
'指定のウィンドウにクローズ メッセージを送信して、プロセスを終了
p.CloseMainWindow()
End If
Next

3991 ◆ExGQrDul2E:2009/01/23(金) 17:31:42 ID:jZhBOYY2
http://hpcgi1.nifty.com/MADIA/VBBBS2/wwwlng.cgi?print+200211/02110055.txt
コントロールを最前面に移動するには?
[戻る]
--------------------------------------------------------------------------------
Oran [E-Mail] 2002/11/26(火) 21:08:30
VB 初めて 2ヶ月ほど。なかなか進歩しないもんです。
初 VB が .NET なんですが、やはりみなさん 6 なんでしょうか。

と。本題。
コントロールを最前面に配置したいのですが、デザイナー上であれば右クリックで出来ることは分かっています。
しかし、コントロールを動的に配置した場合、デザイン時に配置したコントロールの下に隠れてしまうんですよ。困ったことに・・・
ソースがまずいのかなぁ。どなたか教えてください。
以下は便宜上、フォームロード時、テキストボックスの場合です。

Private Sub MainForm_Load(ByVal sender As System.Object,
           ByVal e As System.EventArgs) Handles MyBase.Load
Dim txtBox As New TextBox()
txtBox.Location = New System.Drawing.Point(100, 100)
txtBox.Size = New System.Drawing.Size(50, 20)
Me.Controls.Add(txtBox)
txtBox.Show()
End Sub

--------------------------------------------------------------------------------
Say 2002/11/26(火) 22:19:01
VB6ならZOrderで変更できますが、
VB.Netではできませんか?

--------------------------------------------------------------------------------
Oran 2002/11/27(水) 00:32:19
[[解決]]
早々のお返事ありがとうございます。
どうやら ZOrder は、無くなったようですが、これをキーワードに検索したらサクっと見つかりました。
まだ試行してないのですが、どうやら BringToFront() や SendToBack() 関数で出来るようです。

助かりました。

4001 ◆ExGQrDul2E:2009/01/24(土) 15:55:26 ID:jZhBOYY2
WebBrowserコントロールにドキュメントを読み込む
Dim SiteAddress As New Uri("http://nyannyan3.minidns.net/UPLoader/&quot;)
WB1.Url = SiteAddress

4011 ◆ExGQrDul2E:2009/01/29(木) 22:52:16 ID:jZhBOYY2
免責事項
当スレには書き間違いがあるかもだけど何が起こっても責任は取らないのでヨロシク

4021 ◆ExGQrDul2E:2009/01/30(金) 15:49:32 ID:jZhBOYY2
同一リストボックス内ドラッグでアイテム並び替え
http://smdn.invisiblefulmoon.net/mnemorepos/20040607-00.html
単一のリストボックス内においてドラッグアンドドロップでアイテムを並べ替えできるようにしたくなったので、それが出来るコントロールを作ってみました。 MSDNライブラリにあるDoDragDrop()メソッドの説明にそれに似たようなコードがあったので一通り読んでみたんですが、何がなんだかよくわからず、ちと苦労しました。 てなわけで、できあがった記念に(笑)

4031 ◆ExGQrDul2E:2009/02/13(金) 15:55:02 ID:pLAJ6L76
My.Computer.FileSystem オブジェクトの DeleteDirectory メソッドを使用すると、ディレクトリを削除できます。指定できるオプションには、ディレクトリの内容を削除するかどうか、削除したディレクトリをごみ箱に送るかどうか、および削除の進行状況を表示するかどうかがあります。

空の場合のみディレクトリを削除するには
DeleteDirectory メソッドを使用してディレクトリを削除します。その際、onDirectoryNotEmpty を False に設定します。この例では、OldDirectory という名前のディレクトリを、空の場合のみ削除します。

Visual Basic コードのコピー
My.Computer.FileSystem.DeleteDirectory("C:\OldDirectory", _
FileIO.DeleteDirectoryOption.ThrowIfDirectoryNonEmpty)




ディレクトリを削除してごみ箱に送るには
DeleteDirectory メソッドを使用してディレクトリを削除します。その際、recycle を RecycleOption.SendToRecycleBin に設定します。この例では、操作の進行状況を表示しながら、OldDirectory という名前のディレクトリおよびそのすべての内容を削除してごみ箱に送ります。

Visual Basic コードのコピー
My.Computer.FileSystem.DeleteDirectory("C:\OldDirectory", FileIO.UIOption.AllDialogs, FileIO.RecycleOption.SendToRecycleBin)

4041 ◆ExGQrDul2E:2009/02/21(土) 22:30:33 ID:whI5HaL6
Path.GetExtension メソッド
拡張子を取得する

405名無しさん:2009/03/08(日) 01:12:47 ID:whI5HaL6
データテーブル、データカラム、データロー
Dim Dt As New DataTable("iR")
Dim colInt32 As DataColumn = New DataColumn("iR")
colInt32.DataType = System.Type.GetType("System.Int32") 'String型だとソートすると1<16<8とかになる
Dt.Columns.Add(colInt32)
Dim NewRow As DataRow = Dt.NewRow
NewRow("iR") = iR
Dt.Rows.Add(NewRow)

4061 ◆ExGQrDul2E:2009/03/08(日) 10:40:29 ID:whI5HaL6
DataViewの特定のマスを取得
view(i)("item")
iは行のインデックスで、ソートしてあるViewならなおよろしい。
itemはカーラム名

4071 ◆ExGQrDul2E:2009/03/08(日) 11:34:14 ID:whI5HaL6
Vi2(j)("Ren")

4081 ◆ExGQrDul2E:2009/03/14(土) 22:38:06 ID:whI5HaL6
[SleepTimer]

Dim WaitTime As Single
Dim FirstTime As Single
Dim NowTime As Single
WaitTime = 0.1
FirstTime = VB.Timer()
Do
NowTime = VB.Timer()
App.DoEvents()
Loop While (NowTime - FirstTime) >= 0 And (NowTime - FirstTime < WaitTime)

4091 ◆ExGQrDul2E:2009/03/17(火) 11:23:20 ID:whI5HaL6
Array.Sort
Array.Reverse

4101 ◆ExGQrDul2E:2009/03/24(火) 03:59:35 ID:zW2sAYyU
画面解像度の変え方
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=15308&amp;forum=7
http://dobon.net/vb/bbs/log3-13/7373.html

411天才ハッカー ◆ExGQrDul2E:2009/10/25(日) 01:30:25 ID:9Ii97l1s
#畭

4121 ◆ExGQrDul2E:2009/12/15(火) 01:27:25 ID:w2x4.1bY
メディアプレイヤーコントロール WindowsMediaplayerControl
AxWMPLib.AxWindowsMediaPlayer

413名無しさん:2009/12/15(火) 02:30:37 ID:XTg8twR6
まだ生きていたのかw

4141 ◆ExGQrDul2E:2009/12/15(火) 07:17:01 ID:w2x4.1bY
なんてこったい/(^o^)\

415名無しさん:2013/03/19(火) 16:52:28 ID:yPS4Bxq.



新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板