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

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

11 </b><font color=#FF0000>(GQrDul2E)</font><b>:2003/03/28(金) 17:19 ID:ih5oMVcU
VB製の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")


新着レスの表示


名前: E-mail(省略可)

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

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

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

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