トップページ > プログラム > 2016年10月21日 > 5SWCZ9aM

書き込み順位&時間帯一覧

4 位/143 ID中時間01234567891011121314151617181920212223Total
書き込み数2000000000000000000050007



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【QBASIC互換!?】FreeBasic【GPL】

書き込みレス一覧

【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に書き換えた)のルーチンが使い物にならなくなる。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。