- 【QBASIC互換!?】FreeBasic【GPL】
872 :デフォルトの名無しさん[]:2016/10/21(金) 00:06:56.14 ID:5SWCZ9aM - >>871 助かるわ。
>浦島状態なの? 近い。 V.B. 6.0の頃で金がなくてNetが買えなくて、ズルズル。 V.S. のお試し版を入れて、操作がさっぱりわからなくて、削除。 さっき、変な英語のメッセージが出たので、なんか残っているみたい。 N88は、3か月ぐらい使っていた。課長と隣課の係長が変なことを言い出したので、 N88は使うのをやめた。係長が使っていたけど。 N88はロードランナーに徹した。 リセッターになるべく見ていたけど、結局わからなかった。
|
- 【QBASIC互換!?】FreeBasic【GPL】
874 :デフォルトの名無しさん[]:2016/10/21(金) 00:54:30.23 ID:5SWCZ9aM - >>866 の続き。
大域変数の宣言は Sub CommonStringSet() CommonStringSetFig = 1 Ierror = 0 Dim なんたらかーたら Call あれれ.○×▼initialize IF (Ierror = 0) then CommonStringSetFig = 2 End Sub で初期化して Sub なんか仕様() IF (CommonStringSetFig = 0) then Call CommonStringSet() IF (CommonStringSetFig <= 0) then '未初期化、初期化ルーチンの障害等 ElseIF (CommonStringSetFig = 1) then '初期化作業中 'あれれ.frmから参照がある場合等 ElseIF (CommonStringSetFig = 2) then '初期化終了 else '致命的障害・終了処理中 end IF End sub でやっていた。なんかの参考にして。ベン図 https://kotobank.jp/word/%E3%83%99%E3%83%B3%E5%9B%B3-8692#E6.97.A5.E6.9C.AC.E5.A4.A7.E7.99.BE.E7.A7.91.E5.85.A8.E6.9B.B8.28.E3.83.8B.E3.83.83.E3.83.9D.E3.83.8B.E3.82.AB.29 の場合分けを徹底しておかないと、不定の値で計算してしまう、なんて発見が困難な障害に出会うことになる。
|
- 【QBASIC互換!?】FreeBasic【GPL】
875 :デフォルトの名無しさん[]:2016/10/21(金) 20:13:13.49 ID:5SWCZ9aM - 現在 556KB、500KB越で書き込みが一切できない板もある。
新スレを作る話をしていた方々、ヨロ。
|
- 【QBASIC互換!?】FreeBasic【GPL】
876 :デフォルトの名無しさん[]:2016/10/21(金) 20:25:40.68 ID:5SWCZ9aM - こんなのを作ってみた。マルチモジュール。IDC_BTN1-IDC_BTN3でちょっと違う。連続して書いたらば禁止用語で引っかかった。
Case IDC_BTN1 → Case IDC_BTN2 → Case IDC_BTN3 Dim As Long IAA, IBB, ICC IAA = 10: ICC = IAA IBB = AAAA( IAA) → IBB = AAAAByVal( IAA) → IBB = AAAAByRef( IAA) MessageBox(TakaHWND,
|
- 【QBASIC互換!?】FreeBasic【GPL】
877 :デフォルトの名無しさん[]:2016/10/21(金) 20:27:41.63 ID:5SWCZ9aM - 途切れたので、途切れた部分から続き
MessageBox(TakaHWND, "Hello ("+ Str$(IBB)+") " + Str(IAA) +"/"+Str$(ICC), "Messagebox caption", MB_ICONINFORMATION) 同じくIDC_BTN4-IDC_BTN6でちょっと違う。 Case IDC_BTN4 → Case IDC_BTN5 → Case IDC_BTN6 Dim As Long IAA, IBB, ICC IBB = BBBB(TakahWnd) → IBB = BBBBByVal(TakahWnd) → IBB = BBBBByRef(TakahWnd) 以下 D:\bas\Projects\DimChk11E\DimChk11E01.basの内容。 Function AAAA( IAA As Long) As Long IAA = 5 AAAA = 8 End Function 以下、AAAA系統で、異なる点だけ。 Function AAAAbyVal(ByVal IAA As Long) As Long AAAAbyVal = 8 Function AAAAbyRef(ByRef IAA As Long) As Long AAAAbyRef = 8
|
- 【QBASIC互換!?】FreeBasic【GPL】
878 :デフォルトの名無しさん[]:2016/10/21(金) 20:30:04.01 ID:5SWCZ9aM - 次にBBBB系統。
Function BBBB(TakahWnd As HWND) As Long Dim As Long IAA, IBB, ICC IAA = 10 ICC = IAA IBB = AAAA( IAA) MessageBox(TakaHWND, "Hello E("+ Str$(IBB)+") " + Str(IAA) +"/"+Str$(ICC), "Messagebox caption", MB_ICONINFORMATION) BBBB = 9 End Function 違うところだけ Function BBBBbyVal(TakahWnd As HWND) As Long IBB = AAAAbyVal( IAA) BBBBbyVal = 9 Function BBBBbyRef(TakahWnd As HWND) As Long IBB = AAAAbyRef( IAA) BBBBbyRef = 9
|
- 【QBASIC互換!?】FreeBasic【GPL】
879 :デフォルトの名無しさん[]:2016/10/21(金) 20:41:44.32 ID:5SWCZ9aM - 要点は、Function なんたら() の引数の前置句を
無指定、ByVal, ByRef の3種類用意した。 参照側 → 非参照側への値の引き渡しは、今回は試していないが、無指定で可能。 しかし、 非参照側 → 参照側への値の引き渡しは、ByRef のみ可能 という結論に達した。 http://makoto-watanabe.main.jp/freebasic/ProPgPassingArguments.html で、 >これは、手続きは、手続きに渡された元の変数やオブジェクトを、変更できることを意味します。 と、主語が2つあるやや難解な日本語で説明されていた。 QBでは、どっちの方法をとっても、非参照側⇔参照側の相互引き渡しが可能であった。 これを発見するまでは、かなり苦労した。 Basic は、大域に全数値が置かないと、自由に変数をいじれない、という現実が立ちはだかっていたのである。 なるべく早く、フローチャート作成ルーチンを復活させないと、 引数で非参照側から参照側へ値を送っているルーチンがほとんど(無理やりSub → Functionに書き換えた)のルーチンが使い物にならなくなる。
|