1 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 01:50:27.76 ] ここは Visual Basic 〜6.0 の質問スレです。 質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、 「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。 VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。 ○ 質問者の心得 一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。 二.VBScript、インストーラーなどはこのスレでOK。 三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。 四.荒らしは相手しない。 ○ 回答者の心得 一.答えられない質問は無駄に罵倒せずスルー。無理するな。 二.代用法を強制しない。 三.回答する上で必須ではない情報をむやみに聞き返さない。 四.荒らしは相手しない。 五.VB情報募集中。 六.回答は質問者が理解できるよう具体的に。 MSDN Online Japan ホーム www.microsoft.com/japan/msdn/default.asp Visual Studio 6.0 Service Pack 6 msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx Google www.google.co.jp/ ※「まず自分で調べる」クセを身につけよう。
797 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 16:09:00.17 ] >>796 createobjectして読み込むんだよ
798 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 16:23:43.16 ] >>796 ひょっとして.net+VSTO?VSTOは実は単なるCOMラッパーだったりするから微妙だけど。 そもそも、Microsoft.VisualBasic.FileIO.TextFieldParserって、zipしてある奴も読めるのか? MSDNをさっと目を通すと、CSV/TSVとかのテキストファイル前提っぽいが。 >.GetEncoding("Shift_JIS")) あれ?普通、xlsx/xlsmの中身のエンコードってUTF-8とかUnicode系じゃねーの? あと念のために聞くけど、PC初心者?まるで分かってないオーラが漂いまくってるけど。 ついでに、VSTOはそんな便利じゃないよ。イテレートもろくに使えないし。
799 名前:デフォルトの名無しさん [2011/12/12(月) 16:27:08.33 ] >>797 試してみたんですができませんでした。 createobject の使い方教えてくれませんか?
800 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 16:41:55.33 ] そういえばExcel2007以降とか見たこと無かった。
801 名前:デフォルトの名無しさん [2011/12/12(月) 17:01:08.62 ] >>798 テキストファイルを読むことを前提にしているので大丈夫です。 >あれ?普通、xlsx/xlsmの中身のエンコードってUTF-8とか Unicode系じゃねーの? 調べてみます。 PC初心者です。 これから勉強していきたいのでよろしくお願いします。
802 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 17:01:50.87 ] >>794 読めます。 中身はZIP形式で圧縮されたテキストファイルです。 試しに拡張子をzipに変更した後、開いて、中のファイルをメモ帳ででも開けばよい。
803 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 17:02:57.81 ] >>799 どう試してみたの?
804 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 17:06:09.39 ] >>799 ググった? あと、ここはVB6スレなんだが間違いはないか?
805 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 02:14:57.18 ] >>796 のコードはVB6のコードには見えないな。文法が違う
806 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 08:17:11.38 ] 細かいこと気にスンナよ
807 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 12:45:11.56 ] >>801 ここID出ないから、名前欄に1個前のレス番を毎回入れるか 最初にレスしたレス番を入れるとかしてくれないと誰か分かりづらい。 絞り込みして見る事もできね。 Googleで VB6 XML 読み込み をキーワードに検索して結果の1件目。 t-yoshi-tomi.at.webry.info/200905/article_2.html >Dim XmlDoc As DOMDocument 'xmlデータ用変数 >Set XmlDoc = CreateObject("Microsoft.XMLDom")
808 名前:デフォルトの名無しさん mailto:sage [2011/12/13(火) 22:12:37.25 ] >>806 言語が全く違うんだから気にスンナレベルじゃねーだろw >>807 VB6ならExcel COMから読み出せば良いんじゃね? VB.NETなら、どこかのZIPライブラリ使って中のxmlをlinqで列挙するのがお手軽かと思うけど
809 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 02:49:46.98 ] すげー初歩的、ランゲージリファレンス嫁ってレベルだと思うんだが イベントについてさっぱりなので教えてくれ。 eventキーワードでのイベントの定義については分かった RaiseEventでのイベントの発生も分かる だけど、実際にメソッドを結びつける方法が分からん まるでわかめ。 privatepaste.com/3e1d507e11
810 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 03:29:20.92 ] イヴェントの使い方 'Class1.cls Public Event EventDaYo() Public Sub Hoge() RaiseEvent EventDaYo End Sub 'Form1.frm Private WithEvents c1 As Class1 Private Sub Form_Load() Set c1 = New Class1 End Sub Private Sub Command1_Click() Call c1.Hoge End Sub Private Sub c1_EventDaYo() MsgBox "EventDaYo" End Sub
811 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 03:46:13.88 ] >>810 キモの部分は Private WithEvents c1 As Class1 Private Sub c1_EventDaYo() これ? でもコレって、ClassAの中にあるCoClassBのイベントにはどう対処するんだ? ClassA: Public Property Get CoClassB(index as integer) as CoClassB CoClassB: Public Event CoClassScream() ってあった場合… ClassAが内包しているクラスのイベントをリレーしないとだめ? というか単純に配列の中にオブジェクト入れてた場合はどうなるの?
812 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 04:51:35.30 ] WithEvents 発生したイベントをキャッチするための入れ子を宣言する (配列にできない、Newで宣言できない、Moduleでは宣言できない) WithEventsを宣言したForm(またはClass)内でしかそのイベントをキャッチできない
813 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 04:55:05.51 ] >>810 Class1で宣言したイヴェントはClass1内からのみ発生させられる Class1のインスタンスから発生したイヴェントをキャッチするには WithEventsでClass1のイヴェントをキャッチする入れ子を宣言し それにあらかじめインスタンスをつっこめばそのインスタンスから発生したイヴェントをキャッチできるようになる が入れ子に設定されたインスタンスからのイヴェントしかキャッチできない
814 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 04:57:03.36 ] >>812 (配列にできない、Newで宣言できない、Moduleでは宣言できない) ↓訂正 (配列にできない、Newで宣言できない、標準Moduleでは宣言できない)
815 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 05:05:48.74 ] 内包リレーってこんな感じか? 'Class1.cls Public Event EventDaYo() Private WithEvents c2 As Class2 Public Sub c2_EventKaYo() RaiseEvent EventDaYo End Sub Private Sub SetC2(c As Class2) Set c2 = c End Sub 'Class2.cls Public Event EventKaYo() Public Sub HogeHoge() RaiseEvent EventKaYo End Sub 'Form1.frm Private WithEvents c1 As Class1 Dim c2 As Class2 Private Sub Form_Load() Set c1 = New Class1 Set c2 = New Class2 c1.SetC2 c2 End Sub Private Sub Command1_Click() Call c2.HogeHoge End Sub Private Sub c1_EventDaYo() MsgBox "EventDaYo" End Sub
816 名前:デフォルトの名無しさん [2011/12/14(水) 05:09:59.08 ] VB6 イベントを作る - RaiseEvent, WithEventsなど homepage1.nifty.com/rucio/main/shokyu/jugyou29.htm
817 名前:デフォルトの名無しさん [2011/12/14(水) 05:20:06.22 ] 質問者は質問をわかりやすく明確に 回答者は回答をわかりやすく明確に カオスな流れになってるぞ
818 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 05:25:49.38 ] イヴェントをキャッチしたいForm(またはClass)内でWithEvents入れ子を作れ Class1内のClass2インスタンスのイヴェントを そのClass1のインスタンス内でキャッチしたけりゃClass1内にWithEventsを書いてそのClass2のインスタンスへの参照入れろ Class1以外、たとえばForm1でClass1内のClass2のイヴェントをキャッチしたけりゃ Form1内にClass2のWithEvents書いてClass1内のClass2のインスタンスの参照を渡すか Class1内でClass2のイヴェントをキャッチしてClass1でイヴェントをキャッチしたってイヴェント発生させろ
819 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 05:36:14.32 ] 質問者と回答者の会話が噛み合ってないな
820 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 08:25:05.62 ] イベントは別のクラスに書くんだよ
821 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 11:32:10.37 ] ヴェとか書くからなんかごちゃごちゃした文章に見える
822 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 11:36:56.97 ] これが参考になる oshiete.goo.ne.jp/qa/504573.html
823 名前:デフォルトの名無しさん [2011/12/14(水) 16:28:56.24 ] VBのアプリで、USBメモリにテキストファイルを書きだした後 タスクバーから取り出しを実行すると定番の 「デバイス'汎用ボリューム'を今停止できません。」 の表記が出て、アプリを終了するまで停止できません。 一応調べましてFileSystemObjectを使い、ファイル保存の際に使用していた dirからFolderExistsに変更ましたが、"アプリ起動後"にUSBメモリを挿すと 想定通りUSBメモリの取り外しが行えるものの"アプリ起動前"から USBメモリが刺さっていると上記のエラーが出て取り出しができないのです。 更に調べて、上記に加えて最後にchdir("C)でローカルドライブに変更してやると アプリ起動前にUSBメモリを挿していても、問題なく取り外しが行えるように なったもののどうもしっくりきません。 どなたかこの状況から原因をエスパーできる方はおりませんか?
824 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 16:46:33.22 ] ローカルに書き出してからUSBにコピーするのがいいよ
825 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 13:30:43.68 ] □投稿者/ サテア 一般人(1回)-(2011/12/15(Thu) 10:25:45) 環境/言語:[windows7/visual basic6.0/?] 分類:[VB6以前] 4つのテキストボックスに入力した数字をソートしてラベルに小さい順に表示するプログラムを作成するノルマを与えられています。 しかしvisual basic6.0だとあまりい良い文献がなく、ほとんど参考になりません。 ちなみに自分はオブジェクトを配置するくらいの技能までは持っています。そこから先がすすめません。 何だよそのノルマと技能はwww
826 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 13:34:58.64 ] リストボックスに入れてソートさせるのがVBっぽい
827 名前:デフォルトの名無しさん [2011/12/18(日) 12:22:19.04 ] >>823 大きな問題として Dir関数って、フォルダを参照した後で内部的に終了処理がなされてないよね Loopでファイルの列挙ができるようになってる都合上、参照し続けてしまう 前の方のレスにも書いたけど Dir ""とすれば開放できるとするサイトがあるけど、それでもカレントフォルダを参照してしまう で、話は戻るけど やっぱりDir関数を修正した以外の場所で使ってるんじゃないの? またはchdirかも知れないけど、 最後にchdirでUSBメモリ以外を参照すれば抜けるっていうのは、その証拠でしょ
828 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 16:25:51.45 ] >>825 初心者に対する非常に良い問題なのだが、VB6っていう環境が 初心者の学習に向いてない。 投稿者は明らかに初心者なのだが、こういう掲示板で どういう言葉遣いで質問するかわからないから変な用語使うハメに。
829 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 19:37:06.04 ] 単純にソートアルゴリズムの勉強させられてんじゃないの 自分も新人の時に最初の課題として出されたよ 実際自前でソートする事なんかほぼ無いが あの時色々と調べて得た知識は今も生きている
830 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 19:47:27.78 ] そっとしといてやれよ
831 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 22:16:07.93 ] 実はわざわざVB6でやらせて苦行を強いる上司のパワハラ
832 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 09:47:21.79 ] >>827-832 ここはVB6のスレなんだ。 VB6は古いとか.NETやれとか言ってるやつはスレち。 答える気がないなら来るな。 って書こうと思ったら、ここへの質問じゃないのか。 まあいいや。 VB6のスレなんだからVB6かわいがってやってくれ。
833 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 18:38:55.79 ] VBでメモ帳を作成しろと言われた 誰かサンプルソースZIPでくれエロい人
834 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 18:47:11.67 ] >>833 誰に言われたんだ
835 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 19:16:57.89 ] >>832 >>825 はな…どっかの掲示板の転載やで… 答えは求めてないだろ。 (かといってヲチする板でもないがな)
836 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 19:25:46.75 ] >>834 講師
837 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 19:36:01.93 ] VB6でやれって言われたのか?
838 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 19:50:28.15 ] >>837 VB2010Expressです
839 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 21:15:39.13 ] >>838 ここはVB6.0のスレ。 VB2010はゴミ箱に捨てて、VB6.0で開発したほうが良い。 それが出来ないなら余所のスレに行け。
840 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 22:44:57.96 ] うぜえなこいつ
841 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 22:52:06.76 ] >>839 スレ違だボケって意見には賛成できるけど >VB2010はゴミ箱に捨てて、VB6.0で開発したほうが良い。 コレは同意できないw
842 名前:デフォルトの名無しさん [2011/12/21(水) 05:57:54.47 ] じゃ、VB6で Shell "notepad", VbNormal
843 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 06:03:46.00 ] よくサブルーチン(戻り値のないメソッド)をCallで呼び出しているけど アレは直接呼び出すのと違うの?メリットって何?
844 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 06:38:04.44 ] >>843 リファレンスぐらい読めよ。 msdn.microsoft.com/ja-jp/library/sxz296wz (v=vs.80).aspx 「コードの読みやすさが向上します」って書いてあるだろ。 メリットはそれだけだ。デメリットはタイピング量が6文字増えることかな。
845 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 06:49:12.71 ] >>844 VB6のリファレンスってまだ残ってたのか! と思ったらコレVB.netのじゃん… >プロシージャを呼び出すときに Call ステートメントを使用する必要はありません。ただし、そうするとコードの読みやすさが向上します。 >argumentList を指定する場合は、かっこで囲む必要があります。 つまり、引数を括弧で囲めるようになるのか…確かにこれは有用だな。 むしろ、括弧を省略しなければいけない仕様の方をdo…おやこんな時間に誰だろう?
846 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 20:08:03.41 ] 俺はずっと以前からCall使ってる。 理由は、コードが見やすくなるからだ。
847 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 21:24:27.15 ] >>846 まぁ、本当はCall命令はFunctionステートメントやSubステートメントが 無かったころの残骸なんだけどな。 VB1.0の頃には、見た目以外にはほとんど意味の無い命令になった。
848 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 21:42:06.92 ] だいたい、VBってタイピング量にかけては最悪だろ。 If で開始して、End If で終わる。 Do while〜 Loop で終わる。 CとかJavaとかC#は if で開始して } で終わる。 コードの見やすさからすれば断然C#。 VB6やっててよかったと思う事は、俺にはただ一つ。 VB6 で作ったクラスとかをほぼそのままVBAにも適用して動作可能にできる点だ。 (DB関係はそれでExcelにも使えてる)
849 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 22:03:11.42 ] タイプ量=みやすさ とでも思ってるのか ほんとに綺麗なソースもホントにひどいソースもみたことないんだな、きっと
850 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 00:30:12.89 ] 見やすい見にくいとかどうでもいいよ。動けば
851 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 00:54:11.41 ] >>847 BASICの頃のはラベルへGOTOとかGOSUBじゃなかったっけ? CALLとか使った覚えなさす。 もっともあの頃のBASICはテキストデータを格納して マシン語を走らせるためのブートローダー的なものだが。 >>850 お願いだからいろんなモジュールのグローバル変数をごっちゃにして 未定義でなおかつ代入してない変数を読み出して、たまたまうまく動いているプログラムを量産しないでください。 イコールの位置とかそろえなくて良いけど、インデントくらいはまともにやってください。 If a = 0 Then ' インデントレベル 0 If b = 0 Then c = 0 ' レベル 0 d = 0 ' レベル1 End If ' レベル0 …これ難読化ツールでも使ったんですか?…
852 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 01:03:15.42 ] 絶対自分しか見ないってんなら良いけど 他人が見るの前提ならCallは付いてた方が良いよな つか付けてくれ あと.Textとか.Valueとかも付けといてくれ Option Explicitも忘れないでー 変数なんだかオブジェクトなんだかSubなんだかFunctionなんだか そもそも作った人がtypoミスしたまま気が付いてないとか 解らないから!解らないから!
853 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 07:28:40.89 ] >>851 インデントもロクにしないっていうのは 単に初心者かCOBOL文化の名残り?
854 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 08:21:19.98 ] >>853 おそらく仕事/上司が気に入らない事への腹いせでやって、逃げていったんだと思う。 一般的に禁忌と言われてることを一通りやってるし、ドキュメントも残ってないし。 ちなみに禁忌って言ってるのはだいたいこのこと。 ・インデントをろくにつけない。つけないと言うより、したりしなかったり。全くしないよりたちが悪い。 ・リテラル値を多用してハードコーディング ・もちろんファイルハンドル#1なども、一時的、永続的含めて直接指定 ・他のモジュールで宣言してあるグローバル変数の多用 ・変数の宣言をしてないことは日常 ・文字列を数値化したり、文字列化したりしながら使用 ・↑と併用して、状態として保持しておくべき値をコントロール(主にラベルなど)のキャプションで保持 ・他のモジュールへコントロールを渡してそこでUIを操作 ・ロジックとUIの分離? いえいえ当然、積極的に混合してます^q^ ・バージョン管理? キチンとしてるよ! ほらここから数行下までのコメン(ry ・適切なコード内ドキュメント 'ファイルをクローズ Close #1 少なくても初心者なら、ここまでひどい事するか? これは分かってる奴が意図的にやってるようにしか見えないぞ。
855 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 09:23:27.25 ] >>854 そのぐらいなら、まだ許せるんじゃね? ・2000行を超える超巨大関数。もちろんバグつき。 ・無駄にテクニカル。 CallByName、AddressOf、VarPtr、ActiveX、etc... ・何処でもやたらとDoEvents。 DoEventsが無いと長時間応答なし、でもあると落ちるみたいなバグつき。 ・何処でもやたらと状態遷移で管理。でも状態遷移図はコーダの頭の中だけ。
856 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 22:12:39.72 ] >>855 2000行を超えて無駄にテクニカルってのが笑えるw >>854 わざとやってる臭いね
857 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 00:31:59.07 ] >>854 どっからどうみても俺が今やってるプロジェクトのソースだが
858 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 01:18:54.82 ] 今VB6でやってるのかよw どんな会社だよ。 ついでにそんな会社にいるあんたのレベルも知れてるな
859 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 03:15:29.69 ] 新規はさすがにないだろうが、既存システムの修正はまだあるだろ
860 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 03:26:43.23 ] VB6で新規もありうるんじゃね 今もVB6のソフト使ってるなら そのパソコン(?)で新たに何かしようとその会社が考えてたら そのパソコンで稼動するソフト制作を要求するんじゃねの
861 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 09:30:04.25 ] VB6はMSのサポートが終わってるという建前で小さい新規の開発はお断りしています
862 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 17:50:08.15 ] リプレースがあってもVB6の糞コードを アップグレードウィザードで.netに引き継いでやってたりするから怖い
863 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 01:29:31.71 ] なんだかんだVB6ってよく出来てたと思うんだよなー。 .NETはC#だけにしてVBはVB6の延長で進化すればよかったのに。 微妙にC#に出来てVB.NETに出来ないことがあって面倒だ。
864 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 01:48:11.61 ] どんな言語でも最初は簡単でも後から難しくなるもんだw
865 名前:デフォルトの名無しさん [2011/12/26(月) 00:49:07.79 ] 汎用に使えるプロシージャだと、先頭に機能だけ一言書いて わざとインデントなくしてコメントも削除して納品することがある 流用されないようにというケチな気持ち
866 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 01:11:20.72 ] ねえよカス
867 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 05:19:47.49 ] そもそもソース提供してる段階で流用を認めないとかあり得ないと思うが
868 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 18:23:44.95 ] ちょこっとしたソフトでも、開発に2人月かけたとして 納めた会社が大量にコピーして使ったりしてるのを見ると どうかと思う。もっと金とるかライセンス契約にするか。 ま、そういう会社はOFFICE製品とかも海賊版使いまくってたり するんだけど。
869 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 18:42:35.68 ] もしドラブラよろかよ
870 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 18:51:37.21 ] もしドラえもんにあったら その時は ブラジャーによろしく
871 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 19:53:10.25 ] 今なら「もしドラブラよろ」でググれば出てくるな
872 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 00:44:02.15 ] もしドラゴンクエストでブライがよろいを着たら?
873 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 04:05:53.56 ] もしもし、ドラ焼き100人前ブラックでお願いします よーそろー?
874 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 01:42:07.29 ] もしドラ×ブラよろかよレベル高ぇーなオイ
875 名前:デフォルトの名無しさん [2012/01/02(月) 14:47:56.67 ] ゴミのような奴しかいないスレになってるな
876 名前:デフォルトの名無しさん mailto:sage [2012/01/02(月) 21:47:31.01 ] そんなに謙遜するなよ
877 名前:デフォルトの名無しさん [2012/01/06(金) 23:34:52.86 ] 初めて書き込みます。 現在、VB6.0でプログラミング機能付きのRPN電卓を作るという課題に取り組んでいます。 電卓機能についてはある程度できたのですが、プログラミング機能の方が全く分かりません。 どこが分からないかというか・・・どのように動いているのかイマイチ理解できていません。 解説していただけたら助かります。
878 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 23:57:22.55 ] Scriptlet
879 名前:デフォルトの名無しさん [2012/01/07(土) 00:11:57.42 ] 877です。 これを元に作ります。 kie.nu/3mI
880 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 05:22:37.64 ] いきなり上げられたexeをクリックする勇気は無いな
881 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 05:59:33.44 ] 学校って進歩とか進化ってしないの? いつまでVB使うの?
882 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 10:44:43.23 ] センセイがくたばるまでだよ?
883 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 11:43:17.04 ] 実務ならまだしも、学校とかは別にVBでもいいじゃん VBだとコーディングスキルはさほど身につかないだろうけど 手軽にプログラムを作る楽しみを実感できる いきなり敷居の高い高等言語を強制して 何も形にならずに「プログラミングってつまんねー」ってなるよりは 下等でも手軽な言語で簡単なものを色々作り 思い通りのプログラム・アプリケーションを作ることの楽しさをまず知ってもらい 高等言語に移るのは下等な言語に自分で限界を感じるくらいのスキルが身についてからで十分
884 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 11:51:44.95 ] 学校が何の学校かによる。 話の流れからすると、ごく普通の高校レベルを 想定しているようだが、その程度の学校で プログラミングに何を求めるかだ
885 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 14:34:46.66 ] >>883 高等の使い方間違ってね?
886 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 15:13:08.69 ] 某県立工業高校情報コースだった10年ほど前、PC-98のMS-DOSから動かすたーぼしーでCの実習したの思い出した
887 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 17:48:58.16 ] >>881 実を言うと、参照が無くなったら即座に解放するというガベコレ方式のお陰で、 常時動作させる(例えば自動情報収集系)ようなソフトを手軽に作るには VB6は便利。 .NETとかJavaで同じような事をしようとすると、気軽にインスタンス生成するのが 難しくなる。考えて作らないと。 あと、VB6で作ったクラスはExcelでも「ほぼ」そのまま使えるという利点がある。 .NET以降は、オブジェクト指向の理解が必要なので、学校ならカリキュラム的に 長くなると思う。 個人的には、初心者にはまずCをやらせたい。学校ならやってるとは思うが。 ここは進化しなくて良いよ。
888 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 17:54:47.30 ] >>887 ちょっと何言ってるのか(w それって普通は逆で、循環参照の問題がクリアされてないVB6の方が普通は注意を要する。 ドトネトやジャヴァにはその心配がない。
889 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 18:56:28.67 ] >>888 循環参照は気をつけてたら良いよ。 簡単にメモリリークで落ちるよね。 その「気をつける」ってのが、そんなに考えなくても可能。 .NETとかJVMは、ある程度溜まってからガベコレするので ソフトがひどい時は数秒止まるでしょ。 常時自動で情報収集するとか、FA用途とかみたいに 絶対に停止させたくないものだと、数秒止まるとか致命傷になる。
890 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 19:19:03.42 ] >>889 VB6に固執してる人ってすぐそれだけど、そんな事実はないよ。 N88-BASICの時代じゃあるまいしそんな間抜けなことするわけないでしょw っていうか、それを言うならシングルスレッドのVB6の方が余程リアルタイム性の 要求される処理に向いてない。 話にならん。もうアホかと。
891 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 19:58:55.81 ] >>890 俺は.NETでもリアルタイム性の要求のあるモノ作るけど、 何も考えずにJavaのwebアプリ作るのと同じ要領で ValueObjectの類をどんどんnewするような設計にはしない。 これをやってると、ガベコレによる停止時間がひどくなるから。 ValueObjectをどんどんNewしない設計については大まかに分けて2つの方法がある。 意図的なGCを利用できるというのは前提でな。 www.atmarkit.co.jp/fdotnet/directxworld/directxworld06/directxworld06_01.html 一応このへん参考。 VB6で作る場合は、循環参照だけ避けてれば後は楽。 VB6で作るわけだから、そんなに手の込んだものにはしないわけで、 シングルスレッドでもそんなに問題にはならない。
892 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 20:12:36.09 ] 循環参照って Dim a New Class1, b New Class1 Set a.value = b Set b.value = a みたいな感じのこと?
893 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 20:37:43.69 ] まあそんな感じだけど。 >>887 の彼の発言が奇妙なのは、俺はVBランタイムのメモリ管理に詳しいわけじゃないが、 どのような方法にしろ自動管理である以上断片化は避けられないはずで、 であれば.NETのガベコレの(括弧つきの)「問題」と同じ問題を抱えているはずだと思うけど。 まあガベコレで数秒処理が止まるとか言ってる時点であれだけど
894 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 20:49:24.63 ] レガシーな人なんだろ 負の遺産だけど
895 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 01:05:36.32 ] VB6ランタイムのGCは参照カウント方式で、 カウント数が0になったら領域解放。 .NETとかJavaはバーチャルマシンがGCを担当。 マークアンドスイープとかコピーイングの方法の複合に加えて 古い・新しい領域せ世代別にも管理。 ここで、古い領域のGCがFullGCと呼ばれるもので、>>891 の説明している 「数秒止まる」だろうと思う。 ヒープの断片化が問題なわけじゃなくて、ある時一気に @生存オブジェクトのマーキングAマークなしオブジェクトの除去、 Bヒープの再配置 という流れでGCを行うので、GC自体がかなりの処理 で重たかった。ヒープの再配置を行うので、どうしてもアプリケーションの 停止時間が発生する。昔のJavaのwebアプリだと、数秒どころか数分無応 答という事があった。www.atmarkit.co.jp/fjava/rensai2/webopt06/webopt06.html 企業の基幹システムだと搭載メモリ量も多く、いったんFullGCがはじまると 手が付けられなかった。チューニングで対応したり、夜中に再起動させたり。 俺は.NETには詳しくないんでJavaで解釈するけど、今のJavaはさらに別 のGC方法があって、VMの起動オプションで指定するんだけど、GCの流れ が@→A→@→Bみたいになる。アプリケーションを停止するのは@だけ で、AやBの時はアプリケーションと並列処理される。 だから、以前ほど「数秒止まる」というのは体感しにくくなっている。 かといっても、この方法も万全じゃないんで、上の古い方法と組み合わせ で使う。だから結局、無応答時間を完全に回避できないんだけどね。 .NETも、IDE使ってると時々プチフリみたいな事が起こって、会社の先輩か らは、これが.NETのGCって説明されたけど、本当かどうかは知らない。 ただ、プチフリ程度でも、問題になる領域のソフトはあると思うけど。 GCについては詳しく知ろうと思ったら余裕で本一冊になる。売ってる。
896 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 03:25:46.11 ] >>883 VB6ってどちらかと言えば >敷居の高い高等言語 の方に入らないか?まあ、確かに電電の方とかC言語よりアセンブリの方がより直接的で分かりやすいって人も居たが。 今のC#のすべての機能(linq/ラムダ式、型推論)を使いこなすのは難しいかもしれないけど VB6でやる程度のことなら、C#/VB.netとかの方が遙かに楽に出来ると思う。 それに、オブジェクト指向の説明だって、継承とかその辺の仕組みとかについての説明は難解かもしれないが すでにあるクラスやメソッドを使う分にはむしろ楽になるだけだろ。 少なくても、今扱ってる変数・値が数値か文字列かはっきりしない言語よりは分かりやすいかと。 GCの事に関しても、それに気を遣わなければならないレベルの事なら、他の言語を検討しても良いわけだし、明示的にコントロールしても良いわけだし。 そもそも、VB6ってExcelのマクロを組むためだけの言語だろ?教育目的で使うなと思うんだが。 RADツールが使える環境なんて.net系以外でもDelphiとかいろいろあるわけで、わざわざVB6を選択する必要は無いし。
897 名前:デフォルトの名無しさん mailto:sage [2012/01/08(日) 03:49:13.22 ] 学校側がVB6使いたがるのはVBScriptやExcelのVBAに応用しやすいからという理由からじゃね