くだすれVB6.0以前(超初心者向け)
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/12/08(金) 19:36:45他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
VB使いが優しくコメントを返しますが、
お礼はVBの布教はしなくてよいので、初心者の救済をお願いします。
0488デフォルトの名無しさん
2007/07/15(日) 23:18:41http://pc11.2ch.net/test/read.cgi/tech/1099112351/590
どっちに回答つければいいのかわからねーっつってんだろ
0489デフォルトの名無しさん
2007/07/15(日) 23:50:59一旦、小さい数字から別の配列に入れてa()に代入する。
0490デフォルトの名無しさん
2007/07/16(月) 00:33:05'-------------------
'この間で
Dim t As Integer
Dim j As Long
For i = LBound(a) To UBound(a)
For j = i + 1 To UBound(a)
If a(i) > a(j) Then
t = a(i)
a(i) = a(j)
a(j) = t
End If
Next
Next
'-------------------
0491デフォルトの名無しさん
2007/07/16(月) 00:37:24おれ20年以上前にソートのやり方だけをいろいろ書いた本を買ったことがある。今のパソコンは処理が速いからどんなやり方でもおk。自分で考えたほうが良い。
0493デフォルトの名無しさん
2007/07/16(月) 01:22:450494デフォルトの名無しさん
2007/07/16(月) 03:10:11のが定石として出ていたこともあった。
0495デフォルトの名無しさん
2007/07/16(月) 03:10:500496デフォルトの名無しさん
2007/07/16(月) 03:16:160497デフォルトの名無しさん
2007/07/16(月) 04:02:57それが定石だとしたらお前は世間で言う
ダメVBプログラマの部類だな
頭使えよ
0498デフォルトの名無しさん
2007/07/16(月) 09:39:23目に見えるからデバッグしやすいんだな、これが。
特に動的に重複した値がやってくるような場合は
SortedをTrueにしたListboxに放り込んでおいて処理してた。
数千件でも速度的に問題なかったよ。
0499デフォルトの名無しさん
2007/07/17(火) 05:43:121000件以上とか構造体のソートだとクイックソート辺りじゃないと。
簡単に向上出来る部分は済ましておくもんだろ。
つか関数化して処理して Function BubbleSort(Arr() as Long) as Long()
0500デフォルトの名無しさん
2007/07/17(火) 07:04:49いまここまで作ったのですが、
テキストボックスに入力したテキストを
OKを押すと同時にファイルに格納するって
いうのはどうやるのですか?
0501デフォルトの名無しさん
2007/07/17(火) 07:08:33(・∀・) ググレカス
0502デフォルトの名無しさん
2007/07/17(火) 08:51:17マルチすんな
0503デフォルトの名無しさん
2007/07/22(日) 11:37:43PatBltじゃ対応しないデバイスがあることとかでだめなようなんですが、、、
0504デフォルトの名無しさん
2007/07/22(日) 14:53:38じゃあとりあえずsetpixelかPSet()かLineかFloodFillか使えば良い
0505デフォルトの名無しさん
2007/07/22(日) 19:39:06ありがとうございます。助かりました。
0506デフォルトの名無しさん
2007/07/22(日) 22:27:170507デフォルトの名無しさん
2007/07/23(月) 01:29:330508佐一
2007/07/23(月) 22:27:33フォーム内のボタンを押して、
Shell("MSACCESS.exe △△△",・・・)から
データベースファイル△△△を起動します。
△△△が起動している間は、
・ボタンを押しても△△△を新たに起動させず
・既に開いている△△△が最前面に来るようにするには、
(フォームが最背面、フォアグラウンドになればいい)
どうすればいいのでしょうか?
アプリケーションのハンドルを取得し
setForeground(ハンドル名)
として、アプリのフォームをフォアグラウンドにしようとしましたが
setForegroundの戻り値は、Trueなのに、
ボタンを押しても、既に開かれている△△△が最前面になってくれません。
0509デフォルトの名無しさん
2007/07/23(月) 22:34:260510デフォルトの名無しさん
2007/07/24(火) 09:01:23http://oshiete1.goo.ne.jp/qa3194308.html
0511デフォルトの名無しさん
2007/07/24(火) 09:43:46以前はVisual Stadio 6.0をフルインストールした状態のPCで使ってた『自作ソフト.exe』を
今回は容量の少ないシリコンディスク(2GB)のFAタイプPCで使用したいのですが、
Visual Stadio 6.0をインストールするほど容量が確保できないので、
そのまま『自作ソフト.exe』を起動したところ、アプリケーションエラーが発生し
ソフトが起動しませんでした。
専門書等を見てみましたが
1)メイン及び、監視タスクのパス(フォルダ)位置が、pathに登録されているか?
2)アプリでOCX等が使われてたりすると、アプリのみでは実行できない場合があるため、
必要なOCXをそのPCに登録する必要がある。
などと書いてありましたがはっきりいってわかりません
ちなみに、私はビルド(リビルド)ぐらいしか出来ないくらいの知識しかないので、
どなたか教えてもらえないでしょうか?
0512デフォルトの名無しさん
2007/07/24(火) 09:48:36インストーラを作れ
0513デフォルトの名無しさん
2007/07/24(火) 09:57:57>FAタイプPC
>アプリケーションエラーが発生し
このOS種類とかエラー内容をかけよ・・・
>>512の言うとおり
ディトリビューションウィザードでも何でも使ってインスコしたら必要なものは入るはず
0514511
2007/07/24(火) 10:47:00>>512さんのインストーラの作り方や、>>513さんのディトリビューションウィザードなどといった
ものの使い方作り方が出来ません。
しかもこの『自作ソフト.exe』を作った人が会社辞めてしまってるので、このソフトの中身すら
私には理解できない現状です。
(起動したときの使い方ぐらいしかわからないんです…)
ちなみにOSはWindows2000 SP4で、
エラー内容は
「エラーが発生したので。『自作ソフト.exe』を終了します。
プログラムをもう一度開始する必要があります。」
という表示が出てきました。
0515デフォルトの名無しさん
2007/07/24(火) 10:50:16http://www.vector.co.jp/vpack/filearea/win/util/runtime/
0516デフォルトの名無しさん
2007/07/24(火) 12:07:44スタート メニュー\プログラム\Microsoft Visual Basic 6.0\Microsoft Visual Basic 6.0 Tools
このあたりにあるはず
0517デフォルトの名無しさん
2007/07/24(火) 12:09:43>>515ので動くとは思うが社外OCXとか使ってた場合はそれだけじゃ動かないので
デストリビューしょんウィザードなんかで依存関係にあるOCX登録してやる必要がある
0518511
2007/07/24(火) 13:46:11これはVBじゃなくてVC++ですよね?
板違いみたいなので、ちょっと首くくってきます…
もし、VC++でも>>515のデータは使えるのでしょうか?
板違いだからどっか行けというのであればここまま消えますね…
0519デフォルトの名無しさん
2007/07/24(火) 14:46:21エラーが出てこまっています。(型が一致しません)
やってるのは
Dim xlApp As Object
Dim xlBook As Object
Dim xlSheet As Object
Dim intA As Integer
Dim intB As Integer
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("aaaaa.xls")
Set xlSheet = xlBook.Sheets(1)
intA = xlSheet.Cells(3,1).value
intB = xlSheet.Cells(5,2).value
xlBook.Close
xlApp.Quit
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
です。よろしくお願いします。m(_ _)m
0520デフォルトの名無しさん
2007/07/24(火) 16:41:320521デフォルトの名無しさん
2007/07/24(火) 17:15:30Dim intA As Integer
↓
Dim intA
こうするとどう?
0522519
2007/07/24(火) 19:45:55やっとわかりまして、どうやら、Excel2000だと、セルに数値が入ってても
先頭になんかコントロールコードみたいな1バイト文字がつく文字列で
くることが判明しました。
ですので、先頭の1バイトを捨ててValすることにしました。
本当にありがとうございました。m(_ _)m
0523デフォルトの名無しさん
2007/07/25(水) 09:08:08らめぇ><
0524デフォルトの名無しさん
2007/07/25(水) 09:43:50カンマが入っただけで死にそうだ
0525519
2007/07/25(水) 12:18:38カンマが入ってしにました。。。orz
しかたがないので、Replaceでカンマを削除してから
Valすることにしました。
0526デフォルトの名無しさん
2007/07/25(水) 12:37:28一応いくつかパターン試しておいたほうがいいぞ
あと、意図的に入力したカンマが入るようなことはないのか?
0527519
2007/07/25(水) 16:16:08もう大丈夫です。^^
基本的に1セルに1数値なんで。
0528デフォルトの名無しさん
2007/08/09(木) 20:13:15さいたま さい川 たま夫
とうきょう ほげ川 ほげ子
おおさか おお山 さか美
このようなデータを
Do While Not EOF(DataFileBuf)
Line Input #DataFileBuf, LineData
LineData2 = Split(LineData, vbTab)
Print #CsvFileMBuf, """" & LineData & """"
Print #CsvFileMBuf2, """" & LineData2(0) & """"
Loop
#CsvFileMBufは↓のように、うまく処理が行えるのですが、
さいたま さい川 たま夫
とうきょう ほげ川 ほげ子
おおさか おお山 さか美
Split関数をかませた#CsvFileMBuf2の結果は↓のように最初の一件しか
処理してくれません。
さいたま
Split関数をかませても最後までデータを処理してくれるようにするには
どのように書き換えたらよいでしょうか?
0529デフォルトの名無しさん
2007/08/10(金) 07:35:28> Split関数をかませた#CsvFileMBuf2の結果は↓のように最初の一件しか
> 処理してくれません。
”そう書いてるんだから”、ってのは分かってますよね?
というわけで、「処理」とかいう抽象的な表現がコチラ側としてはサッパリ具体的ではないので
それを踏まえて次のように書きます
・Xを処理 → process(X)
・で、そのコード
Do While Not EOF(DataFileBuf)
Line Input #DataFileBuf, LineData
LineData2 = Split(LineData, vbTab)
Print #CsvFileMBuf, """" & LineData & """"
Print #CsvFileMBuf2, """" & process( LineData2 ) & """"
Loop
0530デフォルトの名無しさん
2007/08/10(金) 13:24:41さいたま さい川 たま夫
とうきょう ほげ川 ほげ子
おおさか おお山 さか美
DataFileBuf = FreeFile()
Open ActiveWorkbook.Path & "\" & DataFile For Input As #DataFileBuf
Do Until EOF(DataFileBuf)
Line Input #DataFileBuf, LineData
LineData2 = Split(LineData, vbTab)
Print #CsvFileMBuf, LineData2(0) & " " & LineData2(2) & " " & LineData2(5) & " " & LineData2(6)
Loop
↑のプログラムで、データファイルのEnd of Fileまでループさせるつもりが、
ファイル全体が1つのデータとして扱われてしまう為、1回のループで終わって
しまい、結果は↓のように出力されてしまいました
さいたま たま夫
とうきょう おお山 さか美
改行で1つのデータとして扱い、↑3件のデータが3回ループするように
コーディングしたいのですが、どのように変えたらよいでしょうか?
>>529
お答えありがとうございます。
せっかくお答えいただいたのですが、勘違いしてました。
(Split関数は問題ありませんでした。)
0531デフォルトの名無しさん
2007/08/10(金) 20:17:50わからないタスケテ(涙
●環境
・Windows XP (sp2)
・VB 6.0 (sp6)
・標準EXE でプロジェクト作成
・プロジェクト>コンポーネント>Microsoft Common Dialog Control チェック
・プロジェクト>参照設定>Microsoft Scripting Runtime チェック
で、Form1 にボタンやコントロールを配置して
いくつかコードを書いてプロジェクト保存>終了しました。
その後、続きをやろうとプロジェクトを開くと、
----------------------
行 67: クラス MSComDlg.CommonDialog(コントロール CommonDialog1) はロードされていません。
行 90: クラス MSForms.CheckBox(コントロール CheckBoxHeadIgnore) はロードされていません。
----------------------
ログファイルに上記エラーが出て、
Form1 に適用した内容が全く読み込まれなくて困っています(涙
先輩方タスケテクダサイorz
0532デフォルトの名無しさん
2007/08/11(土) 01:01:23よくわかんないけど、ファイルの中身って、
さいたま[TAB]さい川[TAB]たま夫[改行]
とうきょう[TAB]ほげ川[TAB]ほげ子[改行]
おおさか[TAB]おお山[TAB]さか美[改行]
ってなってんの?まさか
さいたま[TAB]さい川[TAB]たま夫[TAB]
とうきょう[TAB]ほげ川[TAB]ほげ子[TAB]
おおさか[TAB]おお山[TAB]さか美[TAB]
じゃないよね?
>>531
エラーが出てるコントロールはずして、とりあえずセーブ。
もう一回プロジェクトを開いてエラーが出なくなったら、はずしたコントロールを再配置してみては?
0533デフォルトの名無しさん
2007/08/13(月) 11:25:07ご回答ありがとうございます。
ファイルの中身は
さいたま[TAB]さい川[TAB]たま夫[改行]
とうきょう[TAB]ほげ川[TAB]ほげ子[改行]
おおさか[TAB]おお山[TAB]さか美[改行]
ってなってますね。
秀丸で見てもそうなってます。
0534530
2007/08/13(月) 11:53:54ありがとうございます。
が、解決しませんでした。
それどころか全ての場合において発生したので、なんか根本的な所がダメみたい。
(ボタン1個配置のシンプル構成でも)
0535デフォルトの名無しさん
2007/08/13(月) 12:07:21改行コード「LF」をVBで「CR+LF」に置換する方法ってありますか?
>>532
ご回答ありがとうございます。
ファイルの中身は
0536デフォルトの名無しさん
2007/08/13(月) 13:37:28replace(hoge, vbLf, vbCrLf)
0537530
2007/08/13(月) 14:16:19右上のプロジェクトグループ・ツリーをダブルクリックで
Form画面を呼び出せることに気がついて解決。
おさわがせしました。
0538デフォルトの名無しさん
2007/08/14(火) 15:14:10特定条件によって変数に格納する、といった作業をやりたいのですが、
どうやればできますかね?
0539デフォルトの名無しさん
2007/08/14(火) 15:53:16どこから教えればいいんですかね?
とりあえずWebBrowserコントロールは見つけれた?
0540538
2007/08/14(火) 17:22:01WebBrowserコントロールを使えばよさそうだ、という所まではたどり着いたのですが、
どんなメソッドがあるのか、どのメソッドを利用すればいいのか等がさっぱりわかりません。
ネットで調べてみてもいろんなWebBrowserコントロールの情報が混在していてどれがどれやら…orz
0541デフォルトの名無しさん
2007/08/14(火) 17:33:17IEnowebbowserコントロールはHTMLDocumentオブジェクトをプロパティ .document で公開してるから
後はそこから調べるといいかも(DOMツリーなのでかなり広い)
情報あるなら使うコントロールの似たような名前で探して、それをやっていけばいいんじゃないかな
0542538
2007/08/14(火) 20:16:24HTMLDocumentオブジェクトまでは何とかたどり着いたんですが、
そこからがどうにもうまくいかんとです。
Set doc = WebBrowser1.Document
If TypeName(doc) = "HTMLDocument" Then
Form1.Caption = doc.Title
value = doc.body
End If
こんな感じじゃあかんのですかね…?
0543デフォルトの名無しさん
2007/08/14(火) 20:25:300544デフォルトの名無しさん
2007/08/14(火) 23:29:59目標はDQです。
とりあえず戦闘画面でも作ってみたい
0545デフォルトの名無しさん
2007/08/14(火) 23:47:12じゃあ先ずはアタマの中にある戦闘シーンを紙とエンピツでプロットしてみることだな
ソレが嫌なら諦めろ、途中で投げ出しても諦めろ、出来たらまた来い
0546デフォルトの名無しさん
2007/08/14(火) 23:53:01違うけどどうしたら同じ場所に違う内容が表示できるかわからない。
ようするに戦闘シーンのたたかう・にげる・じゅもんなんかを表示する
方法がわからないってことです
0547デフォルトの名無しさん
2007/08/14(火) 23:54:51とっても稚拙な方法も思いつかない?
たとえばMSPaint.exeで書いて、それを紙芝居風に表示するとかも?
0548デフォルトの名無しさん
2007/08/14(火) 23:56:18とりあえず時間があるならVBで1から作るんじゃなくて、
出来合いのRPGツクールとかで作ってしまうといいと思うよ
0549デフォルトの名無しさん
2007/08/20(月) 09:11:57ツクールじゃなくて、ゲーム作りたいんなら、まず簡単なじゃんけんゲームからで良し。
どうしてもRPG作りたかったら、
とりあえず自分で戦闘のフローチャート作成してみれ。
0550デフォルトの名無しさん
2007/08/20(月) 10:33:48戦闘終了条件もないクマ
0551デフォルトの名無しさん
2007/08/27(月) 16:04:24すんごい遅レスなんだけど
何かを作りたいと思う、その気持ちは大事だよ
俺も小学生のころ、ベーマガを解析したなぁ
今、ベーマガのようなPG投稿雑誌が無いがとても悲しい
変わりに、ネットが発達してるからゲームをソースごと公開しているサイトでもさがして
ソース解析してみるのがいいかも
0552デフォルトの名無しさん
2007/08/28(火) 12:02:52VB5.0 + ActiveReport1.5で帳票を印刷していました。
環境はXPです。
去年SP2に上げたところ、
エラーログが出るようになりました。
ErrCode :VB-2950
ErrMessage:予約済みエラー
SP2では対応できない と考えるべきでしょうか?
それとも
参照箇所を変えることで対応できるのでしょうか?
回答お願いします。
0553デフォルトの名無しさん
2007/08/28(火) 13:23:28こんなとこで聞くよりグレープシティに聞いたほうが早くね?
0554デフォルトの名無しさん
2007/08/28(火) 15:38:35異常終了(MSに報告する、しないの画面)が出るんだけどw
100発100中ですww
0555デフォルトの名無しさん
2007/08/28(火) 18:01:030556デフォルトの名無しさん
2007/08/28(火) 19:13:58エラーメッセージは?dllとかのエラーかな?
0557デフォルトの名無しさん
2007/08/29(水) 13:17:02そんなんいくらでも原因がボロボロでてくる情報だ罠
グチじゃないならもっと詳細書くといい
0558デフォルトの名無しさん
2007/08/29(水) 17:13:09レスありがとうございます。
会社で再インストールするように言われて
言われた通りにしたら直りました。
現象も出ないので原因ももう分かりませんww
0559デフォルトの名無しさん
2007/08/29(水) 21:11:44GOTOを使っちゃダメ、ってのはもはや「信仰」でしかないですよね?
ReturnやBreakを頻発させず、進行がすっきりすると判断される場合は、
躊躇なく使っていいものですよね?
0560デフォルトの名無しさん
2007/08/29(水) 21:16:14結局影の薄い存在となったことには変わりないな。
0561デフォルトの名無しさん
2007/08/29(水) 21:37:37いまどきアホ?って言われるな 精進しなされ
0562デフォルトの名無しさん
2007/08/29(水) 21:47:40例えば、Ifで条件分けをする場合など、その都度インデント入れますよね。
もし、その条件の値が最初から分かってる場合は、プロシージャの最初の方で
条件に合致しない場合を、プロシージャ最後の終了処理に直接飛ばすようにすると、
メインの処理部分は、ひとつインデント無しで書きやすく、見やすくなると思うんです。
条件が多く、WithやFor、Doなども必要な場合は、より効果的だと思うのです。
--------------------
If HOGE = False Then
Goto ENDP
End If
メイン処理
ENDP:
終了処理
--------------------
0563デフォルトの名無しさん
2007/08/29(水) 21:58:34自分の頭で物事判断できない教条主義的な馬鹿は別として。
0564デフォルトの名無しさん
2007/08/30(木) 22:57:31そいういう関数化が必要なのは関数にしてしまうのがいい
昔っからのGOTO禁止もあるけど、VB6がReturn文を陰ながらサポートしてることも忘れないでください
0565デフォルトの名無しさん
2007/08/30(木) 23:03:24GOTO文の本当の怖さは、無条件にジャンプできることじゃない
ジャンプした先で「なぜジャンプしてきたのか?」が曖昧になるからだ
0566デフォルトの名無しさん
2007/08/30(木) 23:29:35そんなもの通常は知る必要はない。
gotoを忌避すべき理由はそんな理由ではなくもっと単純なことだ。
実際に自分でスパゲティコード書いてみれば体感できるよ。
要するにコードを上から下に読めないことが端的に「ヒトにとって」問題なんだよ。
逆に言えば、goto使ってもコードを「上から下に読める」ことが維持されていれば
普通はそんなに可読性は破壊されない。
0567デフォルトの名無しさん
2007/08/30(木) 23:34:51それはgoto固有の問題じゃないよな?
0568デフォルトの名無しさん
2007/08/30(木) 23:39:00何をいってんだろうね
じゃあ逆に聞くが、goto以外で「下から上に戻る」コードを
書く方法を教えてくれよまったくw
ループとか寝ぼけたこと言うなよ
0569デフォルトの名無しさん
2007/08/31(金) 07:36:25Procedure line3
end
Procedure line2
end
Procedure line1
end
Procedure foo
call line1
call line2
call line3
end
みたいな?
0570559
2007/08/31(金) 11:56:57関数にして外に出すよりも、GOTOでそのプロシージャの末尾に置いておく方が、
可読性は破壊されないどころか、向上するのではないかと考えています。
その都度関数を作っていると、引数や戻り値の仕様もそのたびに
考えなくてはならない場合も多く、時間的にもGOTOを選んだ方がいい場合が、
必ずあるように思います。
↓こうなるよりは、>>562の方がよいと思うのですが・・・。
--------------------
If HOGE = False Then
Call 終了処理関数
Exit Sub
End If
メイン処理
Call 終了処理関数
--------------------
Function 終了処理関数()
終了処理
End Function
--------------------
スパゲティと教条主義以外に、GOTOを忌避する理由って、ありますか?
0571デフォルトの名無しさん
2007/08/31(金) 12:15:45そんなコーディングしか思いつかないのならいいんじゃない?
センスがいいとか悪いとか誰にも見せなきゃこまらないっしょ
0572デフォルトの名無しさん
2007/08/31(金) 12:37:06一つの関数しか呼ばれない処理をやたらと関数に括り出したくない、
という発想は必ずしも間違ってないと思う。(ただし、状況的に不適切な場合はあるよ)
ただ、570のような処理は別にgoto使わずに、かつ各場合分けに共通の処理を
関数に括り出さずに書けるだろう。
0573デフォルトの名無しさん
2007/08/31(金) 12:50:44gotoに賛成も反対する気も無いが、気になる
0574デフォルトの名無しさん
2007/08/31(金) 13:31:50こういうことでしょうか?
--------------------
If HOGE = True Then
メイン処理
End If
終了処理
--------------------
メイン処理が長くなり、WithやForなどでさらにインデントが挟まるような場合は、
>>562のような書き方の方が、見通しがいいと思いました。
例えが悪かったですね。
コーディングしている最中に、「ああ、ここでGOTO使えれば早いのになぁ」と
思う場面が出てくることがあるんですが、いざこういう話をするときに思い出せないです。
>>573
GOTO絶対不可な先輩も、On Errorのときだけは使ってますね
0575デフォルトの名無しさん
2007/08/31(金) 13:45:14On Error Gotoは意味合いが違うから除外
0576デフォルトの名無しさん
2007/08/31(金) 13:55:56On Error Goto Label
Error 513
On Error Goto 0
0577デフォルトの名無しさん
2007/08/31(金) 13:58:58gotoの動作としてはまったくかわらんよ
ローカル内で考えると、goto HANDLEがErr.Raiseって感じだし
やっぱり、gotoを絶対使わないという信条の人なら
On Error Resume Nextを使う必要があるんじゃないのかね
0578デフォルトの名無しさん
2007/08/31(金) 13:59:400579デフォルトの名無しさん
2007/08/31(金) 15:04:06は>>569見たいな状況
「上から下に読める」なんてドンだけフローチャートの世代なんだ
>>570(>>559)
>>564がぬるぽ
>>574
>>565がぬるぽみたいだ
「エラーでジャンプ」し尚且つErrオブジェクトで意味も参照できるからいいんじゃないかと
これは If cond Then A Else B 文で「condで A または B にジャンプ」という意味があるのと同じ
したがって >>576 はちょっとナンセンスな切り返しだ
ただVB6の言語仕様が昔ッからのを引きずっているのは確かで、
その状況で「GOTOを禁止する」ことが果たして万全なのかどうかは俺にはわからない
本嫁
0580デフォルトの名無しさん
2007/08/31(金) 15:07:150581デフォルトの名無しさん
2007/08/31(金) 19:04:45だから、教条主義的にgotoを禁止するのは馬鹿げてるけど
大概の処理はgoto無しで、かつgoto使った場合より可読的に書けるよ。
それと、なんか君は「コードを書く時」の目線ばかりを優先しているように見えるけど、
(どうしたらよりコンパクトに書けるか、みたいな)余計なお世話だろうがよくない兆候だよ。
「コードを読む時」目線で考えるべきだ。
つまり、他人にとって、あるいは一年後の自分にとって「読んで理解しやすいかどうか」を
(gotoならgotoの使用の是非の)判断の指針にすべきだ。
>>579
上から下に読み下せないコードはヒトにとって読みにくい、
という経験的事実がフローチャートとどう関係するんだろうねw
構造化プログラミングすら理解してないなら黙ってればいいのに。
ループ、分岐、関数、といった「構造」に抽象化するのは上から下に読み下すためだろう。
ループも分岐も、ループや分岐という概念を知らずそれを「ループ」や「分岐」として
認識できなければ、ただのgotoだ。
というか、日本語書けよ馬鹿。
0582559
2007/08/31(金) 20:25:54を意識しているつもりではいるのですが。
(GOTO嫌いな人にとって感情的に読む気が失せる・・・のは無視します)
「大概の処理をGOTOを使った場合より可読的に書く」
イメージがなかなか沸かないです・・・。
0583デフォルトの名無しさん
2007/09/01(土) 10:53:51飛び元と飛び先のロジックの関係を考慮しなくちゃならなくなるケースを考えてみるとか。
複数の場所から一つのラベルにGotoが貼られているとする。
仕様変更でラベル以降のロジックを修正しなきゃならなくたった場合、呼び元の全ての
ロジックへの影響を考慮しなくちゃいけない、とか。
0584デフォルトの名無しさん
2007/09/01(土) 13:28:47同じことを考慮しなくちゃならないと思うけど
0585デフォルトの名無しさん
2007/09/01(土) 17:41:41まあ本当に構造化プログラミングを理解してる人間なんていないと思うんだが
もしかして、構造化=ソースの構造化、と間違えてる?
0586デフォルトの名無しさん
2007/09/01(土) 21:56:28実際にプレイする小中学生とかが
ターンとかロールなんて言われても何の意味だかわからんだろ。
やたらと横文字使えばいいってもんじゃねーぜ。
だから、ゲーム作る奴はバカって言われるんだよ。
もう一度言ってあげようか?
バ・カだよ。バ・カ
0587デフォルトの名無しさん
2007/09/01(土) 22:27:16vb関係ないし
日本語でおk
ってか人間でおk
■ このスレッドは過去ログ倉庫に格納されています