2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

【QBASIC互換!?】FreeBasic【GPL】 2

1 :デフォルトの名無しさん:2016/12/24(土) 12:22:27.77 ID:CVYSyiU+.net
FreeBasic
ttp://www.freebasic.net/

建てたいって人がいたので勝手に建てた
後はご自由にどうぞ
俺は知らん
過去スレ
http://echo.2ch.net/test/read.cgi/tech/1139379786/

2 :デフォルトの名無しさん:2016/12/25(日) 17:21:20.77 ID:R91XRShr.net
現在 Declere 文75KB,
””内外で処理が異なる例を見つけた。
「:」、
””外では、Visual Basic では、半角空白が1文字追加され、文の切れ目の意味を持つ。
””外では、Windows では、デバイスの末尾の文字でルートディレクトリーを示す。
前者に慌せて、一律空白を入れてしまうと、ファイルに全くアクセスできなくなるという状態に陥る。

サブルーチン内で値を変更している引数を一括して、ByRef 引数に書き換えるべく、
解釈ルーチンを作っているのだが、大文字と小文字を区別しないということが、漢字コード゛の存在下でかなり面倒くさい処理になってしまっている。

3 :デフォルトの名無しさん:2016/12/28(水) 23:44:18.26 ID:bENiqIxW.net
http://makoto-watanabe.main.jp/freebasic/PgIfthen.html
にあるように
IF NOT (なんだら) Then
の代わりの
IF (なんたら) ELSE
文がFreeBasic では使えない。
V.B.でIF ELSE 文を使っていた人は要注意。

4 :デフォルトの名無しさん:2016/12/31(土) 15:16:52.44 ID:HTFXcJGG.net
http://video.fc2.com/content/20161231knmREYEX

5 :デフォルトの名無しさん:2017/01/12(木) 18:51:09.21 ID:JOVmaPyb.net
現在 Declere 文81KB,まもなく900行となる。
Function文からの引き抜きルーチンがうまく動いているようで、Function 文に間違いがなければ、何とか動いてくれている。

問題は引数検査。
命令語の右側の値を定義する命令が今のところ見つかっていないので、
例 機械語の INC AL 等
「=」を見つけて、左側の変数が定義される、として処理したまでは良かった。
問題は関数
適当な関数(変数,,,,)
で、変数を定義する場合があることに気が付いた。

引数の入出力チェックは今のところで来ていない。
引数の値を定義しないByValと定義するByRefの検査ルーチンが今のところ作成不能。

6 :デフォルトの名無しさん:2017/01/12(木) 19:28:24.87 ID:JOVmaPyb.net
複数モジュール(ファイル) AAA.BAS, BBB.BAS, CCC.BAS があったとする。
お互いに、他のファイルの関数を参照していると、他の関数の参照関係(ByValかVtRefか)が決定されないと自分の参照関係がわからない。

ループや振り子現象にどう対応するか、
ループや振り子現象になるようなルーチンをどうやって発見するか、
が問題となる。これの見通しが立っていない。
発見できれば、別ファイルにして一つにまとめると、
同一ルーチン内のループや振り子現象になるので、処理が楽になる(一律ByRefとする)。

今現在は、大文字小文字を区別せずに整列して、昇順に処理しているけど
これを参照する他のファイル数の少ない順に処理してゆく
もし、参照関係を変更したら、遡って処理しなおすという方法で避けられるから。
その代り、処理時間がやたらかかることになる。
a,b,c,dとあったときに、Dが他のファイルを参照していない独立なファイルならば、最初に参照関係を調べる。独立なファイルをまず調べる。
次に、Dだけ(独立しているファイルだけ)を参照しているファイルをみつけて、このファイルだけ処理する、
というようにやってゆく。
ファイルが内容だけで分類する(たとえば、ファイル操作、ファイル名操作、ディレクトリー操作等の分類)のではなく
他のファイルの内容を参照しているか否かの分類も必要になってくる。

これが今のところ分からないでいる。
というのは、以前は、Call 文を検出するだけで、参照することを発見できたが
Call文が使えなくなって、参照している(配列ではない)ことを検出する方法が見当つかない。

Call 文とかLET文とか、結構使い道があった。

7 :デフォルトの名無しさん:2017/01/15(日) 11:55:43.47 ID:Z3HvmWhY.net
hosyu

8 :渡辺真:2017/01/16(月) 11:52:56.37 ID:l394ym3c.net
>>6
>Call 文とかLET文とか、結構使い道があった。

'$lang:

9 :渡辺真:2017/01/16(月) 11:54:25.11 ID:l394ym3c.net
>>6
>Call 文とかLET文とか、結構使い道があった。

'$lang:"fblite"
とすると、Call 文、LET文が使えるようになります。
http://makoto-watanabe.main.jp/freebasic/CompilerDialects.html
試してみては、いかがでしょう。

10 :デフォルトの名無しさん:2017/01/16(月) 20:59:04.92 ID:nwZac5ew.net
>>8-9 それ絶望的。現在
ライブラリーの総ファイル数約100。
内、FreeBasic 要に書き換えた
ファイルが約40、
局所ルーチン 53
大域ルーチン 646
と合計700のルーチンがある。100位は、FreeBasic用に新規に作成したもの。
例 Function (適当)(IAA As Long)の他に、AS Integer, As Byte 等FreeBasic で新規に作られた変数型対応。

これを全部 Call文に書き換えて、、、というのは絶望に近い。

なお、引数を伴わないFunction 文に関しては、無意味な引数をつけることで、引数なしの場合を想定しないで済むようにしている。
もう少し使い方になれたから、自己書き換えルーチンの作り方がマシになって、ある程度の自由な操作が可能になるだろう。

11 :デフォルトの名無しさん:2017/01/18(水) 20:22:28.09 ID:jwPQ/iiW.net
参照関係を調べる時に使うルーチン
Public Function RoutineImmediateStringCat(InLineString As String, OutLineString As String) As Long
'*-* 即値 の文字列をヌルに書き換える
Dim As String BString
'Dim As String CH22String
Dim As Long IAA, IBB, iModeLong
RoutineImmediateStringCat = 0
iModeLong = 0&: 'CH22String = Chr$(&H22)
OutLineString = ""
For IAA = 1& To Len(InLineString)
BString = Mid$(InLineString, IAA, 1): IBB = Asc(BString)
Select Case iModeLong
Case 0&
If (IBB = &H22) Then
iModeLong = 10&
OutLineString = OutLineString + BString
Else
OutLineString = OutLineString + BString
End If
Case 10&
If (IBB = &H22) Then
iModeLong = 0&
OutLineString = OutLineString + BString
End If
End Select
Next IAA
End Function

12 :デフォルトの名無しさん:2017/01/18(水) 20:24:45.43 ID:jwPQ/iiW.net
>>11 のつづき。
自己書き換えルーチンの場合に、目印とする行が即値で定義されている場合が多い。
即値を目印と勘違いするルーチンとなる場合があるので、即値を消す作業を行う。

13 :デフォルトの名無しさん:2017/01/18(水) 20:25:56.21 ID:jwPQ/iiW.net
ロボッチチェックに引っかかってちょっと分割する。
Public Function RoutineCommentLineCat(InLineString As String, OutLineString As String) As Long
Const TakaSubRoutineNo as long = 21&
'*-* コメント行をヌルに置き換える

Dim As String BString
'Dim CH22String 大域
Dim As Long IAA, IBB, iModeLong

RoutineCommentLineCat = 0
'CH22String = Chr$(&H22)
OutLineString = Trim$(InLineString)
If (Left$(OutLineString, 1&) = "'") Then
OutLineString = ""
ElseIf (InStr(OutLineString, CH22String) <= 0&) Then
IAA = InStr(OutLineString, ": '")
If (IAA > 0&) Then OutLineString = Left$(OutLineString, IAA - 1&)
IAA = InStr(OutLineString, " '")
If (IAA > 0&) Then OutLineString = Left$(OutLineString, IAA - 1&)
OutLineString = Trim$(OutLineString)
If (Right$(OutLineString, 1) = ":") Then OutLineString = Trim$(Left$(OutLineString, Len(OutLineString) - 1&))

14 :デフォルトの名無しさん:2017/01/18(水) 20:26:27.41 ID:jwPQ/iiW.net
ElseIf (InStr(OutLineString, "'") <= 0&) Then
Else
iModeLong = 0&
For IAA = 1& To Len(OutLineString)
BString = Mid$(OutLineString, IAA, 1)
IBB = Asc(BString)
Select Case iModeLong
Case 0&
If (IBB = &H22) Then
iModeLong = 10&
ElseIf (BString = "'") Then
OutLineString = Left$(OutLineString, IAA - 1&)
Exit For
End If
Case 10&
If (IBB = &H22) Then
iModeLong = 0&
End If
Case Else
'障害
End Select
Next IAA
OutLineString = Trim$(OutLineString)
If (Right$(OutLineString, 1) = ":") Then OutLineString = Trim$(Left$(OutLineString, Len(OutLineString) - 1&))
End If
End Function

15 :デフォルトの名無しさん:2017/01/18(水) 20:36:07.21 ID:jwPQ/iiW.net
>>13-14はコメント行を消す作業。コメント行か実行文か判断は面倒なので、
一括して消してしまう。
この2つのルーチンが主要なもので、他には、連続した空白の削除、TAB文字を空白に書き換える等の処理が必要。
こっちは比較的簡単なので、すぐ作れると思う。
Function 文で定義したルーチンの場合、
先頭が1文字目にある場合、戻り値を使わない場合の参照方法。
戻り値を使う場合には、先頭文字の直前(左側)が、演算子の場合が多い。
ということで、演算子であるかのチェックが必要。その他、()や空白、TAB文字等も演算子とみなして処理する。

なんとか、どのファイルの内容を参照しているか、を一覧表で表す見込みが立った。

16 :デフォルトの名無しさん:2017/01/21(土) 05:13:37.25 ID:ktEIEfUe.net
>>5
「=」を見つけて、左側の変数が定義される、として処理したまでは良かった。
例外が見つかってしまった。
Abool = (Along = Blong)
Abool = TekitoBool(Along = Blong, (適当な引数))
論理演算子「=」の取り扱い。
Fotran でなぜ .EQ. を使っていたのかわかるような気がした。

17 :デフォルトの名無しさん:2017/01/22(日) 22:39:33.42 ID:THvjeSOw.net
>>8-9 を受けて、Function 文から Sub 文への変更の可能性について検討を始めた。
と言っても、自己書き換えルーチン用。
Function 文指定ルーチンのうち、Subroutine に書き換え可能なルーチンは、戻り値が一定値ある必要がある。
参照する必要性がない値を返す場合に限られる。混乱を避けるために専用の型を用意した。
Type Wata As Long
綿は、C:\FbEdit\ や C:\tool\FbEdit\ 内 *.BIファイルに使われていないし、http://www.freebasic.net/ 内にも発見できなかったから、今後使われる見込みがないと見当がつく。
変数型、Wata を指定した。
Public Function taka00_CommonStringSet(ByVal hWin As HWND) as Wata
のように、CALL 文参照可能なサブルーチンは、戻り値の型を綿とした。
今度は、サブルーチン内で、
taka00_CommonStringSet = 0
という定義以外の定義があるルーチンは、別の型にしなければならない。
前スレでは、戻り値に障害メッセージ番号を返すように、という指摘があった。
返すようにルーチンを作ったものもあるが、せいぜい数十個ぐらいで数が少ないので、
以前のように、
外部出力として障害を積み上げてゆく(Fotran の Write (4, *) システムコンソールへの障害情報表示)か
障害があってもそのまま強行してしまうか
ある期間障害の発生個数を記録して、読み出せるようにするか、
どれを選択するか、迷っているところ。

余計なルーチンである、との指摘を受けて、Function WriteLibErrMes() 処理系を省いてしまったので、
再度、付け足すか、する必要がある。

18 :デフォルトの名無しさん:2017/01/24(火) 20:20:07.15 ID:YONpxV7Y.net
Declare Function なんたらだけを記載している
TakaCom1.BI
の作成ルーチンで、ちょっと集計を取ってみた。
'簡易障害の発見件数(Function 文) (障害数)/(戻り値総数)/(引数総数)
'%%:01'  可変長文字変数 の末尾が String 以外の末尾を使っている箇所 (1) : 21/ 147/ 970
'%%:02'  符号付32Bit整数変数 の末尾が Long 以外の末尾を使っている箇所 (2) : 0/ 36/ 817
(中略)
'%%:16'  論理変数 の末尾が Bool 以外の末尾を使っている箇所 (16) : 0/ 21/ 13
'%%:28'  草型変数 を引数として使っている箇所 : 0/ 5/ 0
'%%:29'  綿型変数 を引数として使っている箇所 : 0/ 529/ 0
'%%:30'  その他型変数 を引数として使っている箇所 : / 0/ 0
と、引数に値を返している場合に、末尾に String 等をつけて区別している。
草型変数 As Xusa は、前スレで指摘があった障害メッセージを返す場合。
綿型変数 As Wata は常に定数( = 0)を返す場合。
その他変数は、ルーチンの間違いがあって、なんたら() As Long なんて引数が存在しない場合がここに該当する。
ルーチン名の末尾に問題がある場合、ルーチンの総数、引数の型の総数の3つを集計した。
'%%:30'等は、ルーチン名に問題があった時に、この番号をつけて、ルーチン名を出力する。
Function 文がそのまま出力されているので、エディタで修正するときに使う。

もう一つが
ファイル別 大域 局所 不明 ルーチン数
Taka00.bas 16 1 0
(中略)
Taka35E.bas 8 8 0
合計 679 68 11 758
ファイル名、Public Function 、Private Function 、Function の集計。
合計 758個のFunction文があり、このような調子で使っていることを示している。
単なる Function 文のルーチンは、ほとんどが動作試験用のルーチン。

19 :デフォルトの名無しさん:2017/01/24(火) 20:25:33.44 ID:YONpxV7Y.net
引数無しのルーチンが解釈できないというバクがあるのでこんなのも作ってみた
Function Tekito As Bool
Tekito = 0
End Function

Function Tekito2() As Long
Tekito2 = 0
End Function

Public Function Tekito3 As Bool
Tekito3 = 0
End Function

Public Function Tekito4() As Long
Tekito4 = 0
End Function
解釈できなくても、良いんじゃないかな、という手抜きをする心境。
自分の作ったソフトで解釈できない、難解な処理ルーチンは使わなければよいから。

20 :デフォルトの名無しさん:2017/01/25(水) 22:00:07.83 ID:Hm7TFQ6k.net
虚数演算は、皆さんはどのように作ってますか?。
V.B.用ルーチンを転用したら、見事に文法エラーが発生した。
'複素数(虚数)計算
Type Conplex
RealPart As Double
ImagPart As Double
End Type

Public Function ConplexAdd(CA As Conplex, CB As Conplex) As Conplex
Const TakaSubRoutineNo as long = 2&

'Cadd = CA + CB
TakaDammyReturnCode4 = TakaErrorPointSach(IniNameString, TakaSubRoutineNo)
ConplexAdd.RealPart = CA.RealPart + CB.RealPart
ConplexAdd.ImagPart = CA.ImagPart + CB.ImagPart
End Function

21 :デフォルトの名無しさん:2017/01/26(木) 09:26:17.08 ID:1chZ2FHw.net
>>20
>>Conplex
複素数はComplexでしょ

>ConplexAdd.RealPart
>ConplexAdd.ImagPart
アクセス演算子(「.」や「->」)の使い方が間違っている
何故に関数名からアクセス演算子が伸びるのよ?
メソッドチェインしているならともかく

>虚数演算は、皆さんはどのように作ってますか?
普通にクラス作って、必要なメンバーを定義しているよ
非メンバーの算術演算子も別途オーバーロードしているよ

>V.B.用
恐らくVB6の事だと思うけど、.NetのVBもあるのだからきっちりバージョンを書いた方が良いよ
同じBASICだからといって、言語仕様が全く違うのだから文法エラーになるのは当然
FBはQBASICとの互換モードがあるBASIC系言語ってだけで様々なBASIC構文を網羅しているわけじゃないよ
分かっていると思うけれども一応ね

-lang fbにはクラスとしてのユーザ定義型(type ... end type)があるのだから
構造体としてのユーザ定義型ではなく、OOPのクラスとして定義するべきだと思うよ

22 :デフォルトの名無しさん:2017/01/26(木) 09:45:37.13 ID:1chZ2FHw.net
>>20
type Complex
private:
_real as double
_imag as double

public:
'' member functions.
declare const property Real() as double
declare property Real(byval value as double)
declare const property Imag() as double
declare property Imag(byval value as double)

declare operator +=(byref value as const Complex)
end type

'' non-member operators.
declare operator +(byref lvalue as const Complex, byref rvalue as const Complex) as Complex

こんな感じ
勿論、コンストラクタ、デストラクタ、その他のメンバー関数など
必要なものは定義しているよ

23 :デフォルトの名無しさん:2017/01/27(金) 20:21:16.13 ID:tSNcnN0K.net
>>21-22 よくわかんないけと゛、Type 命令文関係を見てみます。

虚数演算と同じファイルに放り込んでおいたのが、整数演算。
'http://rucio.a.la9.jp/main/Samples/vbsample042.htm
で見つけた内容をコピーしただけのルーチン(何やっているのかわからなかった)がいくつか。
で、問題は
Function LCM(ParamArray Values() As Variant) As Long
の「ParamArray 」、の部分。これに対応できるらしい命令が
Function Overload 系処理。
http://makoto-watanabe.main.jp/freebasic/TutFunctionOverloading.html
http://makoto-watanabe.main.jp/freebasic/PgFunction.html

Declare Function AAAA OverLoad (InA1 As Long, InA2 As Long, InA3 As Long) As Long
Declare Function AAAA OverLoad (InA1 As Long, InA2 As Long) As Long
Declare Function AAAA(InA() As Long) As Long

と、OverLoad 句のついている Declare を先に、ついていないDeclare文を後ろにと、並べないとエラーになる。
間に別の名称の文を入れても解釈してくれるみたい。
Declare Function AAAA OverLoad (InA1 As Long, InA2 As Long, InA3 As Long) As Long
Declare Function AAAA OverLoad (InA1 As Long, InA2 As Long) As Long
Declare Function BBBB(InA() As Long) As Long
Declare Function AAAA(InA() As Long) As Long

24 :デフォルトの名無しさん:2017/01/28(土) 08:41:05.20 ID:fbuNIeJW.net
>>23
独自に定義した関数をオーバーロードする設計なら「全て」の同名関数にoverloadは付けるべき
複数のヘッダファイルに同名関数のオーバーロード宣言を書いた時
インクルード次第で多重定義のエラーになる可能性がある
更にその関数にはオーバーロードされた関数が別に存在することが分かる

>内容をコピーしただけのルーチン(何やっているのかわからなかった)がいくつか。
褒められたものじゃないなあ
最小公倍数のアルゴリズム位は理解しておこうよ

25 :デフォルトの名無しさん:2017/01/28(土) 10:58:26.28 ID:8XnTGJGH.net
>>24 最小公倍数、最大公約数を求めることはできるのだが
http://ameblo.jp/sakai-futabajuku/entry-12108035056.html
に示された方法が理解できない。
覚えている方法は、素数表と簡易除算
http://ameblo.jp/sakai-futabajuku/entry-12108035056.html
を覚えて、出題範囲の関係で 11,13,17,19 の2乗を覚えて
手計算でやる方法しか理解できない。こんな感じ
  12 24
2   6 12
2   3  6
3   1  3
区切り線は略。
縦に 2*2*3 = 12 が最大公約数
さらに横をかけて、2*2*3*1*3 = 36 が最小公倍数
素数表がなくて、役数を積んでないので、わからない。
なお、自作した多倍精度ルーチンでは、約数と残りをもとめて、作ったけど
既約か可約かの判断に1000桁ぐらいの数で1回5秒ぐらいかかる。
高速化したいがこれもわからないでいる。

26 :デフォルトの名無しさん:2017/01/28(土) 13:46:02.65 ID:fbuNIeJW.net
>>25
整数a, bの最小公倍数をLCM(a, b)とし、最大公約数をGCD(a, b)すると
整数a, bの最大公約数と最大公倍数の積が整数a, bの積に等しいという定理から
LCM(a, b) = a * b / GCD(a, b)
となる
>>23のリンク先の関数は、n個の整数の最大公倍数LCM(n1 , n2 ...) を求める関数
単に上記をn個分ループしているだけ

上記の定理の証明が知りたいならググってくれ、幾らでも見つかる

27 :デフォルトの名無しさん:2017/01/28(土) 13:49:00.02 ID:fbuNIeJW.net
>>25
最大公約数は「ユークリッドの互除法」でもググってくれ

28 :デフォルトの名無しさん:2017/01/28(土) 13:53:54.95 ID:fbuNIeJW.net
>>26
ありゃ記述間違えてるわ

>n個の整数の最大公倍数LCM(n1 , n2 ...) を求める関数
n個の整数の最小公倍数LCM(n1 , n2 ...) を求める関数

こうね

29 :デフォルトの名無しさん:2017/01/28(土) 18:42:25.36 ID:8XnTGJGH.net
>>27 最大公約数は「ユークリッドの互除法」
なら、わからない理由が分かった。
「ユークリッドの互除法」を高校1年目にやったんだけど、何が何だかわからない。
んで、他の教科もわからなくなって、高校中退したんだわ。

高校中退の原因の一つが「ユークリッドの互除法」。今は昔。
整数問題がよくわからなくて、結局、公式を使わないで定理から力技で無理やり計算する日々。

30 :デフォルトの名無しさん:2017/01/28(土) 20:03:50.77 ID:fbuNIeJW.net
>>29
えっと、プログラマに求められるのは「何故そうするのか?」ではなく
「それをどのようにするのか?」であるわけよ

>>24でアルゴリズム位は理解しておこうよって言ったのは
数学的証明や理論の理解ではなく、方法論の話
つまり端的に言うなら、検索、実装、検証が出来ればコードは書けるのよ
勿論、そこに「何故そうするのか?」と考証が入るのが良いけれども

で、最小公倍数や最大公約数を実装するに辺り、目の前の便利な箱を使うわけだよ
そうしたらユークリッドの互除法なんて真っ先に辿り着く情報でしょ
その実装なんてちょっとした頭の体操程度の物で
悩むにしても再帰処理にするかループ処理にするか位でしょ
ユークリッドの互除法は単なる除算(剰余)の繰り返しだよ?
modとwhileか、modとifがあれば実装できるんだよ
複雑な公式を使うことなんて無いんだよ

プログラミングは、数学的証明をしているわけじゃないんだよ
実際に動作する組み合わせをするだけで、その大前提である検索をして実装方法を吟味しなさいよ
他人のコードをコピペしてるだけじゃプログラミングは上手くならんよ

学歴云々の前に、検索しない事に真剣にびっくりだわ

31 :デフォルトの名無しさん:2017/01/28(土) 20:14:38.98 ID:fbuNIeJW.net
>>26
>整数a, bの最大公約数と最大公倍数の積が整数a, bの積に等しいという定理から
いかんな、ここも記述間違えているわ

整数a, bの最大公約数と最小公倍数の積が整数a, bの積に等しいという定理から
こうね

32 :デフォルトの名無しさん:2017/01/28(土) 20:17:41.00 ID:dCwh8yHn.net
https://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%BC%E3%82%AF%E3%83%AA%E3%83%83%E3%83%89%E3%81%AE%E4%BA%92%E9%99%A4%E6%B3%95
ユークリッドの互除法

このサイトの画面右側の絵の変化、なんとなくいい味だしてるよ。

33 :デフォルトの名無しさん:2017/01/29(日) 06:11:32.73 ID:ElqR2hUp.net
>>23 つづき。
Declare Function IniFileRead OverLoad(FileString As String, SecNameString As String, KeyNameString As String, ByRef KeyValString As String) As Wata
(一致部分略), ByRef KeyValLong as Long) As Wata
, ByRef KeyValDouble As Double) As Wata
, ByRef KeyValShort As SHORT) As Wata
, ByRef KeyValSingle as Single) As Wata
, ByRef KeyValByte As Byte) As Wata
, ByRef KeyValInteger As Integer) As Wata
, ByRef KeyValLongint As Longint) As Wata
, ByRef KeyValLong as ULong) As Wata
, ByRef KeyValShort As USHORT) As Wata
, ByRef KeyValByte As UByte) As Wata
, ByRef KeyValInteger As UInteger) As Wata
, ByRef KeyValLongint As ULongint) As Wata
, ByRef KeyValString As ZString) As Wata
, ByRef KeyValString As WString) As Wata
Declare Function IniFileRead OverLoad(FileString As String, SecNameString As String, KeyNameString As String, ByRef KeyValBool As Boolean) As Wata
と宣言して、
BString =DataKeyName + str$(ICC)
TakaDammyReturnCode = IniFileRead(SoseFileListFile, DataEriaSecName, BString, CString)
TakaDammyReturnCode = IniFileRead(SoseFileListFile, DataEriaSecName, DataKeyName + str$(ICC), SoseFileList(ICC))
と参照したら
..\Kako02\Mod\Taka05.bas(3439) error 97: Ambiguous call to overloaded function, INIFILEREAD() in 'TakaDammyReturnCode = IniFileRead(SoseFileListFile, DataEriaSecName, BString, CString)'
..\Kako02\Mod\Taka05.bas(3440) error 97: Ambiguous call to overloaded function, INIFILEREAD() in 'TakaDammyReturnCode = IniFileRead(SoseFileListFile, DataEriaSecName, DataKeyName + str$(ICC), SoseFileList(ICC))'
とエラーになった。
内容を調べていない。
使わない(使い方がわからない)変数型を消してみてどうなるか、
面倒だと思ったらば、Overload化をやめて元の状態に戻す予定。

34 :デフォルトの名無しさん:2017/01/29(日) 06:19:51.52 ID:ElqR2hUp.net
>>30 学歴云々の前に、検索しない事に真剣にびっくりだわ
書いた通り、ユークなんたらは、見るのもいや、な内容。
整数論を除いた内容なら、まだ見る気にもなれるけど。

35 :デフォルトの名無しさん:2017/01/29(日) 09:00:00.96 ID:ElqR2hUp.net
>>33 つづき
Function IniFileReadなんたら

Declare Function IniFileRead OverLoad(FileString As String, SecNameString As String, KeyNameString As String, , ByRef KeyValString As ZString) As Wata
を抜いて
IniFileRead OverLoad → IniFileRead14
に戻したらば、発生しなくなった。16個以下なのか、
As String と  As ZString の混用が認められないのか
は、調べていない。

36 :デフォルトの名無しさん:2017/01/29(日) 10:13:40.73 ID:V71V/mQX.net
>>34
ああそう
クソみたいなコードを書いていても
古臭いながらもそれなりに知識を持っている人って
思ってたけど何だかな、独善なだけかよ

有益な情報になると思い、多少なりにも絡んできたけど
建設的に話ができないなら悪いけどこのスレには必要無いわ
過疎ったスレだし、誰も指摘しないし、自分もスルーしてきたけど
自分のブログか何かでやったら?

まだ過疎っている方のがマシだわ

37 :デフォルトの名無しさん:2017/01/29(日) 12:00:40.54 ID:ElqR2hUp.net
>>36
おほめいただいて感謝します。

>自分のブログか何かでやったら?
やってます。
カウンターをつけていないので利用者がわかりませんけど
Lobot Off を指定しているので、利用者がいないはずです。
QB用ソース(現在いじっているV.B.用ライブの原型を含みます)付き実行形式ファイルで配布していますので、もし見かけたらばメールください。
ロボットメールしか受け取ったことがないのですけど。
地震以後ですと、ロボットメールすら来ません。
V.B.用ソースは公開しませんでした。
実行形式のみ公開していましたが、通信会社のサービス停止(+地震のよるHDD破損+MSのサポート停止)に伴い消失しました。

38 :デフォルトの名無しさん:2017/01/29(日) 12:57:35.68 ID:ElqR2hUp.net
>>23 Type 命令文関係を見てみます。
のつづき。Type みてもわからなかったので、逃げの九素コードを
大域宣言は
'複素数(虚数)計算 '(2017.01.29 済)名称変更 Conplex → Complex
Type Complex
RealPart As Double
ImagPart As Double
End Type
で。ご指摘の通り、n → m への変更済み。
http://makoto-watanabe.main.jp/freebasic/PgFunction.html より、
関数は、Byref As return_type を指定して、参照を返すこともできます。
とあるので、破壊されない戻り値を保管する場所が必要。
局所ルーチンで参照され、破壊されない戻り値の保管場所は、九素コードとして、大域変数を使う。
Dim Shared ComComplexVal As Complex
関数としては単なるLET文を用意した。
Function TekiToComp(Aval As Complex) ByRef As Complex
ComComplexVal.RealPart = Aval.RealPart
ComComplexVal.ImagPart = Aval.ImagPart
TekiToComp = ComComplexVal
End Function
参照側で
ComComplexVal.RealPart = -5.0: ComComplexVal.ImagPart = -0.5
Complex1Val.RealPart = 1.0: Complex1Val.ImagPart = 0.1
Complex2Val.RealPart = 2.0: Complex2Val.ImagPart = 0.2
と定義して
Complex2Val = TekiToComp(Complex1Val)
関数を実行、3つの変数すべてが Complex1Val の値で一致する。
ここで、ComComplexValに適当な値を設定しても、Complex2Val の値が変化しなかった。
参照渡しと言っても、Complex2Valのアドレス(ポインター)をComComplexValのソレに書き換えるのではなかった。
3つの変数の保存領域は独立して存在する。

39 :デフォルトの名無しさん:2017/01/29(日) 13:19:08.83 ID:ElqR2hUp.net
>>38 のつづき。動作試験用ソフトは以下の通り。
http://www.dotup.org/uploda/www.dotup.org1138726.zip.html
D:\bas\Projects\Kako02\Mod\TakaCom0.bi
が抜けているけど、Bak\TakaCom0(1).bi が使えると思う。

使える人がいたら使ってみて。

40 :デフォルトの名無しさん:2017/01/29(日) 13:23:35.22 ID:V71V/mQX.net
>>37
君の実情なんてどうでも良い
やっているなら、スレの私的専有を止めればよいでしょ
移植日記なら他所でやりなよ

>>38なんか見てもそうだけどマニュアル読めば分かることを
ダラダラと流されても何じゃそりゃなんだよ
せめて分からなかった所を質問形式でレスしなよ
全く整理もしていないオナニーレスを流すな

一応突っ込んでおくわ
>Complex2Val = TekiToComp(Complex1Val)
参照返しを値型の変数で受け取ったら、コピー代入になるのだから当たり前でしょ
右辺と左辺の間の=の意味は、let演算子
つまり、右辺の関数評価→左辺に代入評価が起こっているの

dim byref as Complex a = TekiToComp(Complex1Val)
なら、変数aは参照先Complex1Valの値を表示するだろうよ

FB独自の言語機能云々の前にプログラム言語としての前提知識が無さ過ぎるわ

41 :デフォルトの名無しさん:2017/01/29(日) 20:02:51.85 ID:ElqR2hUp.net
>>40 >変数aは参照先Complex1Valの値を表示するだろうよ
高度な使い方。
この方法は、昨年5月ぐらいから探していた。結局見つからなくて、
主ルーチンから各ファイル(モジュール)へ関係値を配るという方法を取った。

なお、*.BI,*.Bas で検索したが
C:\FbEdit\ や C:\Tool\FreeBASIC\ 内に「dim byref」という文字を発見できなかった。
http://makoto-watanabe.main.jp/freebasic/PgDim.html 内にも ByRef の記載が見つからない。

42 :デフォルトの名無しさん:2017/01/29(日) 20:29:05.86 ID:V71V/mQX.net
>>41
ttp://www.freebasic.net/wiki/wikka.php?wakka=KeyPgByrefVariables

まず公式Wiki、次に公式フォーラム、次にGoogleなどで検索しなされ
>>41のリンク先は個人サイトで非公式サイト

こういうこと本気で言いたくないけど、もうキツイこと言っているから言わせてもらう
このスレッドを利用するに辺り下記を約束して欲しい
・ダラダラ日記を書かない
・分からないことがあれば、簡潔に明瞭に質問する
・ここはパブリックスペースであると認識する
・コードを書くなら該当する部分のみ、不必要なのは書かない

あと、向上心と好奇心、新しいものへの挑戦は忘れないで欲しい

43 :デフォルトの名無しさん:2017/01/29(日) 21:00:37.92 ID:V71V/mQX.net
>>41
ちょいと付け足し
君の実情なんてどうでも良いからそんなのも書かなくて良い
匿名掲示板では「誰が書いたか」よりも「何を書いたか」を重要視するべきだから
加えて、コテハン禁止、無断転載禁止

自治厨みたいなことしたくないが、これがこのスレのルール
異論ある人は言ってくだされ

44 :デフォルトの名無しさん:2017/01/29(日) 21:34:05.59 ID:V71V/mQX.net
・コテハン禁止
・無断転載禁止
・荒らしは放置
・sage進行推奨
・質問は簡潔明瞭に必要最低限の情報を記載する事
・次スレは>>990が宣言後に立てる事、無理なら代役をアンカー指名する事

公式
ttp://www.freebasic.net/
公式Wiki
http://www.freebasic.net/wiki/wikka.php?wakka=FBWiki
公式フォーラム
ttp://www.freebasic.net/forum/

前スレ
【QBASIC互換!?】FreeBasic【GPL】2
ttp://echo.2ch.net/test/read.cgi/tech/1482549747/

テンプレここまで

何時になるか分からんが、次スレはこのテンプレを使うように

45 :デフォルトの名無しさん:2017/01/30(月) 16:45:21.93 ID:wD8S47f8.net
固定ハンドルは別に構わない
スパムじゃなければ沢山書いても構わない
質問が増えてきて邪魔になったときは質問用にスレッド別に建てればいい
日本語訳されたヘルプが存在することを示してもいいと思う(リンクの扱いについては知らないからその辺は解らない)
今沢山書いている人に付いては内容が解らないのでなんとも?

46 :デフォルトの名無しさん:2017/01/30(月) 21:29:33.66 ID:nEd5fDqM.net
>>36 自分のブログか何かでやったら?
というお勧めがあったので、2008年頃に作ったルーチンを見直してみた。
MS でサービスを打ち切ったことから、実行形式のファイルを作るのは不可能。
残っているのは、バックアップ用に残していたソースファイルのみ。
ヘッダー、BODY, LINK, META, TimeZONE の5つの*.frm を子プロセスとして起動して
親プロセスがTxt → Html 書き換えを行うルーチンなんだけど、
html のバージョンが5になった関係で、かなり派手な書き直しが必要。
*.css ファイルについては全く考慮してなかった関係で、新規作成が必要。

内容を見たら、下手に直すよりも最初から作ったほうがでっとりばやい、という結論になった。

47 :デフォルトの名無しさん:2017/01/30(月) 21:31:47.06 ID:nEd5fDqM.net
>>42-44 異論ある人は言ってくだされ
>>1 でいいんじゃないの。
何かってーと制限を加える方向に人は動く。結果として社会主義国家へと動いてしまう。
自由を民主主義を守るためならば、規制を緩和する方向へ動かなければならない。

規制を加える意味がない。オレのことを邪魔するだけの目的しかないんでしょ。

近所のソフト会社で1年以上勤めている人は1割ぐらい。新規学習が追い付かなくなって離職している。
プロと言われる人々で9割が去ってゆくのだが
>向上心と好奇心、新しいものへの挑戦
を要求するのは酷だわ。
プログラマー35歳定年説を支えているのが、このあたりが゜できなくなる年齢が35歳、なこと。
プログラマーになれない9割の人に、同様なことを要求するのは酷だ。

なお、うちの母校で、情報処理関係で卒業できるのは2割程度。
8割が中途退学している。この中途退学者ですら、俺よりも数学は詳しい。
というのは、1年の時に共通講座で数学を学ぶ。
1年の時に微積(微分方程式・積分方程式)で落伍者が出ていない。
うちの学科は、微積で1割弱が落伍していなく、9割が落伍する。
ところが、オレのように高校の副読本を見てつけ焼き場で挑むと、大学院入学試験まで通用する。
というのは、高校の微積の副読本の中から大学院入学試験問題、数学、が出題されるから。

あまりにも酷な条件だ。

48 :デフォルトの名無しさん:2017/01/30(月) 22:02:46.66 ID:d5jzXwxe.net
>>47
そういうのは、公共スペースにおいて必要最低限のルールを守っている人が言うこと
君には言う資格がないよ、何言ってんの?
自分が提示した内容は、他の板では通常運転している状態の内容、特別なものではない
君は、そんな暗黙の了解ですら理解していない

>自由を民主主義を守るためならば、規制を緩和する方向へ動かなければならない
自由と無秩序を同列で語るなよ
掲示板のルール云々の話で、その枠を超えて話をするなよ
言っちゃ悪いが、それ馬鹿の典型だぞ

>規制を加える意味がない。オレのことを邪魔するだけの目的しかないんでしょ。
もし、こっちに邪魔する意図があるなら、普通に絡まずに最初からそうするわ
何勝手な被害者妄想してんの?
こっちは何度も譲歩してんだよ、それすら理解していないだろ?
ルール云々を持ち出したのは最終手段なんだよ

君のこれら以外の駄文は、このスレに無用な内容故、反応する気なし
何の反論にもなっていない駄文をダラダラ流すなよ

49 :デフォルトの名無しさん:2017/01/30(月) 22:28:58.14 ID:nEd5fDqM.net
>>48 反論だということを理解できないんだな。
>それ馬鹿の典型だぞ
「後はご自由にどうぞ」とある通り、便所の落書き程度の内容が、掲示板だ。
だから、「馬鹿の典型」な内容を書いていて、問題なし。

なお、オレの文章の基本としては、ドルトルマンボウ系小説がある。
北杜夫が、あとがきに「書くか書かないか迷った時には、書かないほうが良いと思った内容を書く」と書いている。
だから、まじめに、必死になって、「馬鹿の典型」な内容を書いているのが、オレ。

格調高い内容は、いくらでも描ける人かいる。そんなないようは、いくらでも任せられる人々がいる。
しかし、ばかげた内容は任せられる人はなかなかいない。

50 :デフォルトの名無しさん:2017/01/30(月) 22:44:18.33 ID:d5jzXwxe.net
>>49
やりたきゃ、ご自身のブログやサイトでどうぞ
2chっぽく言うなら、チラシの裏にでも書いてろ

一応言っておくが
君がこのスレで自分の自由を主張するなら、こっちにも君を邪魔する自由があるよね?
ってなるからルールが必要と言っているだけなんだがな
何で理解できないのかな?アホなの?

というわけで、こっちの考えはちゃんと提示したし、譲歩もした
もうこれ以上言うことはない

51 :デフォルトの名無しさん:2017/01/31(火) 03:35:01.51 ID:SZ8YrWi+.net
ユークリッドの互除法の数学的な証明が分からないとか言い出したら、きりがない。
グラフ理論など、アルゴリズムの数学的な証明なんか、全部難しい

数学的な証明の話は、数学板でやればいい。
ここはプログラム板だから、数学的な証明は分かっているとして、話を進めろ

数学的な証明が分からない人は、数学板で聞いてくればいい。
一々、プログラム板で対処していたら、きりがない

52 :前スレの住民だった名無し:2017/02/01(水) 07:22:32.79 ID:eeJTVCPk.net
新スレになってから何も書かずに放置していたからびっくりした。
ここまでの流れ(?)を確認したらコメント書くよ

53 :52:2017/02/01(水) 18:34:51.09 ID:RvfEzpSd.net
流れを確認したけど、今のままだったら今後のFreeBASICの発展は望めないと思う。
前スレの日本語訳の辺りから利己的な理由でこのスレが乗っ取られてると思ってる。
それとソースコード垂れ流している時点で簡潔なコミュニティでは無くなってる。
技術ドキュメントだったらまとめて圧縮してファイルにしてアップローダーに上げれば
ほんの数行のコメントとリンクを1つ提示するだけで済む。
こんな状態続いたら開発ツールとしてのFreeBASICの選択意欲は削がれるでしょ。

>>43
異論は無い。FreeBASICとスレの私物化が酷いので長いこと不定期ROMになってる。
国内事情がこれだとFreeBASICに関わりたくなくなるね。

54 :デフォルトの名無しさん:2017/02/01(水) 22:38:37.10 ID:ElUX31Hl.net
>>45
>固定ハンドル
これはスレが荒れる原因になるから極力避けたいと考えてるよ
特定の人物への執拗な攻撃、あるいは騙りなどが起きるため

>多段レス
これはスパムじゃなきゃ禁止事項じゃないよ
ただ、節度は必要かな

>質問スレ
現状、まあ必要はないよね…

>日本語ヘルプ
日本語版を配布しているサイトや翻訳しているサイトはあるけど
間違った情報源になる可能性もあるからテンプレからは外すべきかな

55 :デフォルトの名無しさん:2017/02/01(水) 22:51:44.32 ID:ElUX31Hl.net
>>53
完全に同意

正直な話、嫌な空気になる可能性があったから言っていいものかずっと迷っていた
でも正常化したい気持ちが彼のネガティブな態度で大きくなったのよね
自己顕示欲が強いというか、自己中というか、何故頑なになるのかが本当に理解できない
それでも、節度を守ってくれたら迎い入れたい気持ちもある
キャッチボールのボールは彼に投げた
今後は彼の出方次第、もうこれ以上は言うことはないかな

56 :デフォルトの名無しさん:2017/02/02(木) 22:50:31.64 ID:VzAOuLKu.net
DialogAsMain.tpl を使って新規に作成

http://makoto-watanabe.main.jp/freebasic/ExtLibgsl.html
のように
#include "gsl/gsl_math.bi"
行を入れる。
http://makoto-watanabe.main.jp/freebasic/ExtLibTOC.html
では、
「注意:コンパイル時に、下記のエラーが表示される場合:」とあるが
http://www.freebasic.net/wiki/wikka.php?wakka=ExtLibTOC
では記載なし。

FB-win32-gsl-1.15.zipを導入していないと、有無を言わせず、終了してしまう。
障害メッセージ無し。
DialogAsMain.tpl を使わないで使用すような環境と、しようする環境では障害の内容が異なる模様。

57 :デフォルトの名無しさん:2017/02/04(土) 10:03:53.29 ID:tmAEdKqY.net
>>56 つづき。 日本語マニュアル
http://cbrc3.cbrc.jp/~tominaga/translations/gsl/gsl-1.15/index.html

自前で訳そうと始めたが、DLできたのが他のバージョン。
検索したら、既に日本語訳が公開されていた。

>>38 つづき。
こっちの想定していた使い方と異なる使い方になってしまう。
アト゛レス(ポインター)の引き渡しがうまくいかなかった。
したがって、いまのところ虚数のみの取り扱いになるから、
>>56 の関数群が使えるようになれば、ポインターに関係することなく、何とかなりそう。
目次の和訳をやっていてコケた程度なので、使えるかどうかはわからぬ。
ライブの30-34系が複素関数、特殊関数、多倍精度整数演算なので、ライブラリーを切り替えられるかもしれない。
35系の移植が終わったが、これは、整列ルーチンで、変なことをしている一部ルーチンを除くとGSLライブに統一できると思われる。

>>53
オレのようにばかげたことをやっている人間がいると、
オレに比べて頭が良いんだ、という人が多数表れて、普及が進む。
だけど、高度なことばかりやっていると普及しない。
c言語から入る人にとっては、ご指摘の通りだろう。
商法の規定で、商人は良品を販売する義務を負う。
だから、金を出して買ったものは良品であり、第三者に販売するつもりの内容は商人から購入することで、良品であることを確保する。
無料の物はそうはいかない。損害賠償請求する価値がないと言える。
だから、営利活動にはあまり普及しないのが無料品。
自分たちで使える無料品を自分たちで作っていくという活動もある。

58 :デフォルトの名無しさん:2017/02/04(土) 13:36:06.91 ID:y1MEdiWu.net
>>57
>オレのようにばかげたことをやっている人間がいると、
>オレに比べて頭が良いんだ、という人が多数表れて、普及が進む。
>だけど、高度なことばかりやっていると普及しない。
そういうのは、世間一般では屁理屈を捏ねるっていうのだよ
掲示板において自分勝手に振る舞うための自己中心的な勝手な解釈にしかなっていない
そんなのは公共スペースである掲示板には断じて必要ない、肥やしにもならないクソ未満だよ

>商品云々
先生ー、意味が分かりませーん
C/C++、.NET、Javaなど、現行の主な言語を扱うための環境づくりは無料で出来ますがー?
大昔にQBASICとかは販売されていたけど、何時の時代の話をしているのですかー?

というわけで、これまでの指摘に対して何も言及しないのは
この掲示板において君のスタンスは変わらないってことで良いのかな?
そうであれば、こっちも次のフェイズに移行するけど、きっちりと言及してくれないかな

59 :デフォルトの名無しさん:2017/02/05(日) 07:03:10.62 ID:j48wRVTG.net
>>58 >先生ー、意味が分かりませーん
先生からは、
意味が分かりなさい

>何も言及しないの
しているじゃない。

60 :デフォルトの名無しさん:2017/02/05(日) 09:06:21.85 ID:9D2c4niI.net
>>59
君のは言及とは言わない、屁理屈を捏ねて話を逸らかしているだけ
本当に対話の出来ない人なんだな
君のスタンスは、

・こっちの提案に聞く耳持たない
・このスレを私物化する気満々

って解釈するね

61 :デフォルトの名無しさん:2017/02/05(日) 09:39:32.87 ID:9D2c4niI.net
このスレは、スレを私物化する屁理屈大先生専用スレとなりました


------------------------------------------------------------------------
ここからは、屁理屈大先生の独演会をお楽しみ下さい

62 :渡辺真:2017/02/07(火) 20:43:31.22 ID:TSI9i7c8.net
一年ぶりに、FreeBASIC 日本語版マニュアルを更新しました。
2016年末までの英文版 Wiki の変更を反映したつもりです。
http://makoto-watanabe.main.jp/freebasic/

CHM 版は、下記でダウンロードできます。
http://makoto-watanabe.main.jp/freebasic/FB-manualJP20170207.zip

修正すべき点、加筆すべき点など、ご指摘、ご意見を、お願いいたします。
FreeBASIC で遊んでみて下さい。

63 :デフォルトの名無しさん:2017/02/07(火) 21:55:22.71 ID:/LDN5Se3.net
>>61 大先生専用スレ
おほめいただきありがとうございます。
アルバイトで1年半ほど教員のまねごとをしていましたが、
当時の先生から大先生へと進歩しました。

思い起こせば、2次方程式の解を求めていた高校から始まる Basic の世界です。
この歳になって、当時のBasicの教科書には常に記載されていた MAT 命令を使うことができるようになりました。

MAT演算で何をしようか、思い当たるものがないんだよ。
細かいことは、gsl_matrix.bi参照。
欠損がないことを前提条件にすれば、結構いろいろできるのだが

64 :デフォルトの名無しさん:2017/02/08(水) 01:11:06.62 ID:Okfj9LEa.net
MATならば、Fortran90/95では、標準で実装されていて、実際に、ベクトルや行列、連立一次方程式
を解く必要がある場合は、Fortran 90/95を使うほうがいいかもしれません。
まあ、趣味でやる分には、Basicでベクトルや行列、行列式のサブルーチンを
作るのも楽しみですが。

65 :デフォルトの名無しさん:2017/02/08(水) 21:53:09.93 ID:FL3Yx6+/.net
>>64 >ベクトルや行列、連立一次方程式を解く必要がある
Foortan 6 用の
> ベクトルや行列、行列式のサブルーチン
ライブラリー SSP01.FTからSSP3?.FT はどこかに入っています。
かなりの内容を V.B.に移植して使っていました。

今迷っているのは、何のデータを使って、ベクトルや行列、連立一次方程式を解くかといしうこと。
代数関係の公式などは、すべて、
データの欠落がない
データの繰り返しは同じ回数である
データの有効桁は無限長である
ことを前提に成り立っています。手持ちのデータでは、
欠落が多数(データどりを忘れた等)
繰り返しはなし
有効桁はせいぜい2桁。0.5単位で30位まで。
稀に50-60位まで増えるが異常値と解釈したほうが正しい。

なんてものしかない。最近は変な偏りが出てくるようになったし。
http://www1.river.go.jp/
http://www1.river.go.jp/cgi-bin/SelectMapSite.exe

66 :デフォルトの名無しさん:2017/02/08(水) 23:46:18.64 ID:Okfj9LEa.net
いわゆるill conditionの連立一次方程式などでは、解法によって解がちがったりして
結構勉強になるとおもいます。

67 :デフォルトの名無しさん:2017/02/10(金) 21:11:05.10 ID:M676Jk5z.net
>>66 悪条件な連立方程式は、
線形代数の教科書に載っていた有名な方程式
とか、デカコンを使っていたころに色々やりました。
だから、手持ちのライブには、その頃の名残として、
対角化、三重対角化、LP(線型計画法)
等のルーチンも存在します。
有効桁が無限でないと、発散して解けない問題とかありました。
http://www.math.ritsumei.ac.jp/yasutomi/jugyo/Numerical_Analysis/note5.pdf

68 :渡辺真:2017/02/14(火) 10:36:46.17 ID:oHqlAH5Q.net
新しい開発環境 FreeBasic IDE-poseidonFB の紹介です。
http://makoto-watanabe.main.jp/freebasic/tipsPoseidonFB.html

ファイルをユニコードで保存したい場合は、FbEdit より便利かもしれません。

69 :デフォルトの名無しさん:2017/02/15(水) 21:32:33.07 ID:IWmGzwYn.net
>>67 つづき。
行列式のまともな計算方法がある。詳しいことは
http://w3e.kanazawa-it.ac.jp/math/category/gyouretu/senkeidaisu/henkan-tex.cgi?target=/math/category/gyouretu/senkeidaisu/index.html
内を探してくれ。

http://www.cis.twcu.ac.jp/~nagasima/02sek4.pdf
一つの列の定数倍を他の列に加えても行列式の値は変わらない
一つの列の各要素をc倍すると行列式の値はc倍になる
二つの列を入れ替えると行列式の値は−1倍になる
という性質をうまく使って、入れ替えの回数と、全体にかけた倍数を記録しておいて
上三角又は下三角行列に書き換える。
http://tau.doshisha.ac.jp/lectures/2005.linear-algebra-I/html.dir/node77.html
対角の積で行列式の値を求められる。
こんなことが、高校の線形代数の副読本に書いてあったものだから

手持ちのライブには、三角化ルーチンと、三角化することを使った行列式の解法ルーチンがある。
これ、評判悪いんだよ。
まともな方法を使わないで、n次まで拡張してしまったから。

70 :デフォルトの名無しさん:2017/02/17(金) 00:32:22.98 ID:vt14Y6ZI.net
Public Function MacinNameGet(MnameString as string) as string
Const TakaSubRoutineNo as long = 14&
'*-* コンピュータ名を取得

'const MAX_COMPUTERNAME_LENGTH = 15
Dim strComputerNameBuffer As ZString * MAX_COMPUTERNAME_LENGTH = "123456789012345"
Dim lngComputerNameLength As Dword = MAX_COMPUTERNAME_LENGTH
'Dim lngComputerNameLengthPtr As LPDWORD
'Dim strComputerNameBufferPtr As LPSTR
Dim lngResult As Long

'lngComputerNameLengthPtr = @lngComputerNameLength
'strComputerNameBufferPtr = @strComputerNameBuffer
'TakaDammyReturnCode4 = TakaErrorPointSach(IniNameString, TakaSubRoutineNo)
' コンピュータ名の長さを設定
lngComputerNameLength = Len(strComputerNameBuffer)
' コンピュータ名を取得
'declare function GetComputerNameA(byval lpBuffer as LPSTR, byval nSize as LPDWORD) as WINBOOL
'declare function GetComputerNameW(byval lpBuffer as LPWSTR, byval nSize as LPDWORD) as WINBOOL
'lngResult = GetComputerName(strComputerNameBuffer, lngComputerNameLength) : 'ハング
lngResult = GetComputerName(@strComputerNameBuffer, @lngComputerNameLength)
lngResult = GetComputerName(@strComputerNameBuffer, @lngComputerNameLength)
'lngResult = GetComputerName(strComputerNameBufferPtr, lngComputerNameLengthPtr)
'lngResult = GetComputerName(strComputerNameBufferPtr, lngComputerNameLengthPtr)
MnameString = strComputerNameBuffer
'MnameString = Left$(strComputerNameBuffer, InStr(strComputerNameBuffer, vbNullChar) - 1)
MacinNameGet = MnameString
End Function

71 :デフォルトの名無しさん:2017/02/17(金) 00:34:56.14 ID:vt14Y6ZI.net
コンピュータ名を取得 で、なぜか
lngResult = GetComputerName(@strComputerNameBuffer, @lngComputerNameLength)
lngResult = GetComputerName(@strComputerNameBuffer, @lngComputerNameLength)
とか
'lngResult = GetComputerName(strComputerNameBufferPtr, lngComputerNameLengthPtr)
'lngResult = GetComputerName(strComputerNameBufferPtr, lngComputerNameLengthPtr)
のように、2回参照しないとコンピュータ名を取得できない。
なお、変数名については、当時のMS系サイトの内容をそのまま使っている。

72 :デフォルトの名無しさん:2017/02/18(土) 07:01:46.64 ID:/R2Xi7hr.net
Why have I been blocked?
This website is using a security service to protect itself from online attacks.
The action you just performed triggered the security solution.
There are several actions that could trigger this block including submitting a certain word or phrase, a SQL command or malformed data.
What can I do to resolve this?
You can email the site owner to let them know you were blocked.
Please include what you were doing when this page came up and the Cloudflare Ray ID found at the bottom of this page.
なんだわ。
'キーの中の値を列挙します
function RegEnumValue で探して
'http://www.freebasic.net/ 内になし
'ドイツサイトより
'https://www.freebasic-portal.de/code-beispiele/system/serielle-schnittstellen-com-ports-unter-windows-ermitteln-248.html
があって、コピーしたわ。
UPしたら、引っかかってしまった。

73 :デフォルトの名無しさん:2017/02/18(土) 07:06:22.38 ID:/R2Xi7hr.net
分割すれば何とかなるかもしれぬから、20行ぐらいづつやってみる。
Public Function RegistryKeyList(RootKey as HKEY, SubKeyString As String, KeyNameString() As String, KeyValString() As String, Ierror As Long) As Wata
'キーの中の値を列挙します
'http://www.freebasic.net/ 内になし
'ドイツサイトより
'https://www.freebasic-portal.de/code-beispiele/system/serielle-schnittstellen-com-ports-unter-windows-ermitteln-248.html

Dim hKey As HANDLE
'Dim Ierror As Integer
'type LPCSTR as const zstring ptr
Dim SubKeyZString As ZString * 1024
Dim SubKeyZStringPtr As LPCSTR
Dim KeyValStringTSU As Long, KeyValStringSU As Long, Jerror As Long
SubKeyZStringPtr = @SubKeyZString

RegistryKeyList = 0
'SubKeyString = "HARDWARE\DEVICEMAP\SERIALCOMM": '保守用
'RootKey = HKEY_LOCAL_MACHINE: '保守用

SubKeyZString = SubKeyString

74 :デフォルトの名無しさん:2017/02/18(土) 07:08:25.80 ID:/R2Xi7hr.net
'Schlussel offnen; Fehlermeldung ausgeben und Programm beenden falls nicht erfolgreich
'キーは開きます;エラー・メッセージは、うまくいかなければプログラムを終えます
'const KEY_QUERY_VALUE = &h0001 ''サブキーのデータを問い合わせることを許可します。
'declare function RegOpenKeyExA(byval hKey as HKEY, byval lpSubKey as LPCSTR, byval ulOptions as DWORD, byval samDesired as REGSAM, byval phkResult as PHKEY) as LONG
'declare function RegOpenKeyExW(byval hKey as HKEY, byval lpSubKey as LPCWSTR, byval ulOptions as DWORD, byval samDesired as REGSAM, byval phkResult as PHKEY) as LONG

Ierror = ERROR_SUCCESS
KeyValStringTSU = 10
KeyValStringSU = 0
Redim KeyValString(KeyValStringTSU) As String, KeyNameString(KeyValStringTSU) As String
'Ierror = RegOpenKeyEx(HKEY_LOCAL_MACHINE, @"HARDWARE\DEVICEMAP\SERIALCOMM", 0, KEY_QUERY_VALUE, @hKey)
Ierror = RegOpenKeyEx(RootKey, @SubKeyZString, 0, KEY_QUERY_VALUE, @hKey)
If (Ierror = ERROR_SUCCESS) Then
Dim comCnt As Integer 'レジストリエントリの数
Dim As String comStrString 'レジストリエントリ名の最長の長さ(文字型)
Dim As String comPortString 'レジストリエントリのデータの最長の長さ(文字型)
Dim As Integer comStrLen
Dim As Integer comPortLen
Dim As Integer comStrMaxLen 'レジストリエントリ名の最長の長さ
Dim As Integer comPortMaxLen 'レジストリエントリのデータの最長の長さ

75 :デフォルトの名無しさん:2017/02/18(土) 07:13:29.01 ID:/R2Xi7hr.net
'鍵となる問題の局面情報 Groseninformationen des Schlussels abfragen
'指定されたレジストリキーに関する情報を取得します。
'declare function RegQueryInfoKeyA((中略, C:\FreeBASIC\inc\win\winreg.bi 参照)byval lpftLastWriteTime as PFILETIME) as LONG
'declare function RegQueryInfoKeyW((中略), byval lpftLastWriteTime as PFILETIME) as LONG

RegQueryInfoKey(hKey, 0, 0, 0, 0, 0, 0, @comCnt, @comStrMaxLen, @comPortMaxLen, 0, 0)
comStrString = String(comStrMaxLen, 0)
comPortString = String(comPortMaxLen, 0)

KeyValStringTSU = comCnt + 1
KeyValStringSU = 0
Redim KeyValString(KeyValStringTSU) As String, KeyNameString(KeyValStringTSU) As String
Dim IQQ As Integer

76 :デフォルトの名無しさん:2017/02/18(土) 07:15:43.63 ID:/R2Xi7hr.net
For IQQ = 0 To comCnt - 1
comStrLen = comStrMaxLen + 1 'String文字数 → ZString文字数
comPortLen = comPortMaxLen / 2 'ANSI → UNICODE 文字数
'Schlusselname und -wert ermitteln und ausgeben; Fehlermeldung ausgeben wenn nicht erfolgreich
'オープンレジストリキーから値の列挙
'declare function RegEnumValueA(byval hKey as HKEY, byval dwIndex as DWORD, byval lpValueName as LPSTR, byval lpcchValueName as LPDWORD, byval lpReserved as LPDWORD, byval lpType as LPDWORD, byval lpData as LPBYTE, byval lpcbData as LPDWORD) as LONG
'declare function RegEnumValueW(byval hKey as HKEY, byval dwIndex as DWORD, byval lpValueName as LPWSTR, byval lpcchValueName as LPDWORD, byval lpReserved as LPDWORD, byval lpType as LPDWORD, byval lpData as LPBYTE, byval lpcbData as LPDWORD) as LONG

Jerror = RegEnumValue(hKey, IQQ, StrPtr(comStrString), @comStrLen, 0 , 0, StrPtr(comPortString), @comPortLen)

77 :デフォルトの名無しさん:2017/02/18(土) 07:18:23.68 ID:/R2Xi7hr.net
If Jerror = ERROR_SUCCESS Then
KeyValStringSU = KeyValStringSU + 1
KeyValString(KeyValStringSU) = Left(comPortString, comPortLen)
KeyNameString(KeyValStringSU) = Left(comStrString, comStrLen)
ドイツ語のPrint文消してみた

78 :デフォルトの名無しさん:2017/02/18(土) 07:19:28.87 ID:/R2Xi7hr.net
Else
'レジストリキーを読み取りでエラーが発生しました
'Print "Fehler beim Auslesen des Registry Keys (Error"; Ierror; " bei Index"; IQQ; ")"
Ierror = Jerror
EndIf
Next
'Schlussel schliesen
RegCloseKey(hKey)

'Print comCnt; " COM-Ports vorhanden"
'TakaBuff = "COM-Ports :" + Str$(comCnt)
'SetDlgItemText(TakaHWND, IDC_STC1, @TakaBuff): '枠表示用バッファ

79 :デフォルトの名無しさん:2017/02/18(土) 07:22:12.51 ID:/R2Xi7hr.net
Else
'Print "Registry Keys Open (Error"; Ierror; ")"
'TakaBuff = "OpenError :" + Str$(Ierror)
'SetDlgItemText(TakaHWND, IDC_STC1, @TakaBuff): '枠表示用バッファ
EndIf
End Function

で終わり。使いたい人は適当に使って。

80 :デフォルトの名無しさん:2017/02/18(土) 07:31:41.18 ID:/R2Xi7hr.net
このドイツ語サイトでは、'ANSI から UNICODE へ文字数の換算をしている。
FreeBasic では、区別ないで、declare 文を切り替えて使っているので、おかしくなるかもしれないし、
この参照元の著者が考慮しているのかもしれない。
それと、2バイト文字については考慮していないかもしれない。

>>77 で消したプリント文は全角で送ってみる
      ’Print Left(comPortString, comPortLen) + Chr(9) + Left(comStrString, comStrLen)

81 :デフォルトの名無しさん:2017/02/18(土) 07:53:30.15 ID:/R2Xi7hr.net
このドイツ語サイトで゜気になるのは、>>76
RegEnumValue(hKey, IQQ, StrPtr(comStrString), @comStrLen,
Dim IQQ As Integer (For 文内に有った宣言だが、自作宣言チェックルーチンが解釈できない(Dim 文だけ先読みして使用する変数をルーチン別に一覧表を作る)ので移動)
RegEnumValueW(byval hKey as HKEY, byval dwIndex as DWORD,
変数型 DWORDを使うところをInteger で参照している。
Integerは、32Bit符号付整数又は64Bit符号付整数
http://makoto-watanabe.main.jp/freebasic/PgInteger.html#start
Dword は、32Bit符号無整数
http://makoto-watanabe.main.jp/freebasic/PgUlong.html#start
なので、引数の換算ルーチン次第でおかしなことが起こりうる。

82 :デフォルトの名無しさん:2017/02/19(日) 08:24:54.20 ID:hFztBwNz.net
以前紹介のあったレジストリーの読み取れルーチン
'http://makoto-watanabe.main.jp/freebasic/tipsRegistry.html
'名称変更して ReadRegistry() → RegistryRead02()となっている。
2016.09にレジストリーエディタを使って、レジストリーのダンプリストを作成。
その中から、「Mozilla/」「User Agent」「UserAgent」を検索して見つかったレジストリーパスを読み取っている。
'[HKEY_CURRENT_USER\(何かの文字\)Software\Microsoft\Windows\CurrentVersion\Internet Settings]
と'サブキーを取得して、その後に同じディレクトリーを付け足してUserAgentの内容を読み取る場合が多い。
しかも、一部内容は消えている。何で消えたかなどは不明。
レジストリーのOpen/Closeは成功しているが
RegEnumKeyEx(hKey, IQQ, StrPtr(Moji), @Nagasa, 0, 0, 0, @File)
の実行で、エラー234が発生している。

83 :渡辺真:2017/02/19(日) 12:25:56.17 ID:lCfIxkgx.net
GSL(科学技術計算関数ライブラリ) のプログラム例を日本語化しました。
http://makoto-watanabe.main.jp/freebasic/tipsGSL.html

数学的な意味について、私は理解できないのですが、プログラムとしては、動きました。

84 :デフォルトの名無しさん:2017/02/19(日) 16:57:53.28 ID:hFztBwNz.net
http://madia.world.coocan.jp/vb/API/RegEnumKeyEx.htm
を見本に、サブキー取得ルーチンを作っていた。
>>82
egEnumKeyEx(hKey, IQQ, StrPtr(Moji), @Nagasa, 0, 0, 0, @File)の実行で、エラー234が発生している。
の原因がやっとわかった。
Nagasa = Len(Moji)
では、常に Nagasa = 0となる。
Const MojiLen As Long = 1024
Dim SubKeysNameBuffZString As ZString * MojiLen 'サブキー名が格納されるバッファ
と定義して
Nagasa = MojiLen
とする必要があった。

85 :デフォルトの名無しさん:2017/02/19(日) 17:03:39.05 ID:hFztBwNz.net
多分動くと思うけど、ライブ化のための整理前の状態でup
Public Function RegistrySubKeyList(RootKey as HKEY, TopSubKeyString As String, SubKeyNameString() As String, Ierror As Long) As Wata
'Subキーの名を列挙します
'http://madia.world.coocan.jp/vb/API/RegEnumKeyEx.htm

Dim hKey As HANDLE
Dim SubKeyZString As ZString * 1024
Dim SubKeyZStringPtr As LPCSTR
SubKeyZStringPtr = @SubKeyZString
Dim Jerror As Long

RegistrySubKeyList = 0

'RootKey = HKEY_LOCAL_MACHINE '(保守用)
'TopSubKeyString = "BCD00000000\Objects": '(保守用) 前後の「\」なし
'TopSubKeyString = "SYSTEM\CurrentControlSet\Services\xmlprov\Parameters\SchemaGroups\User"
'TopSubKeyString = "SYSTEM\CurrentControlSet"
'RootKey = HKEY_CURRENT_USER
'TopSubKeyString = "Software\Microsoft\Windows\CurrentVersion\Internet Settings"
If (TopSubKeyString = "") Then
'Ret = 234(バッファサイズの不足) 発生

86 :デフォルトの名無しさん:2017/02/19(日) 17:04:26.69 ID:hFztBwNz.net
ElseIf (Left$(TopSubKeyString, 1) = "\") Then
'Ret = 161(指定されたパスは無効です) 発生
Else
'Fun RegQueryInfoKey() 用変数
'Dim As DWORD ClassBuffSize 'クラス文字列バッファのサイズ (MS指示: 0を指定する)
Dim as DWORD SubKeysSU 'サブキーの数
Dim as DWORD SubKeysMaxLen 'サブキー名の最長の長さ
Dim as DWORD ClassMaxLen 'クラス文字列の最長の長さ
Dim as DWORD KeyNameSU 'レジストリエントリの数
Dim as DWORD KeyNameMaxLen 'レジストリエントリ名の最長の長さ
Dim as DWORD KeyValMaxLen 'レジストリエントリのデータの最長の長さ
Dim as DWORD SecurityLen 'セキュリティ記述子の長さ
Dim LastWriteTime As FILETIME '最後の書き込み時刻

SubKeyZString = TopSubKeyString
Dim SubKeyNameStringTSU as Long, SubKeyNameStringSU As Long
SubKeyNameStringTSU = 100
SubKeyNameStringSU = 0
Redim SubKeyNameString(SubKeyNameStringTSU)


Const MojiLen As Long = 1024
Dim IQQ as DWORD 'サブキーのインデックス番号
Dim SubKeysNameBuffZString As ZString * MojiLen 'サブキー名が格納されるバッファ
Dim SubKeysNameBuffSize As DWORD = MojiLen 'サブキー名バッファのサイズ
'Dim ClassBuff As ZString * MojiLen 'クラス文字列バッファ MS指定 0
'Dim ClassBuffSize as DWORD 'クラス文字列バッファのサイズ MS指定 0
Dim FileWriteTime As FILETIME '最終更新時刻

87 :デフォルトの名無しさん:2017/02/19(日) 17:09:40.55 ID:hFztBwNz.net
また引っかかった。。続きはそのうち

88 :デフォルトの名無しさん:2017/02/19(日) 17:11:40.75 ID:hFztBwNz.net
’以下の実行文が引っ掛かったみたい。全角にしてみた。
'バッファを確保する
  SubKeysNameBuffZString = ””: ’String(MojiLen, Chr(0))
  SubKeysNameBuffSize = MojiLen: ’Len(SubKeysNameBuffZString)

'キーをオープンしてハンドルを得る

89 :デフォルトの名無しさん:2017/02/19(日) 17:13:36.21 ID:hFztBwNz.net
Ierror = RegOpenKeyEx(RootKey, @SubKeyZString, 0, KEY_ALL_ACCESS, @hKey)


If (Ierror = ERROR_SUCCESS) Then
'MessageBox(TakaHWND,"Hello Open 成功","Messagebox caption",MB_ICONINFORMATION)
Jerror = RegQueryInfoKey(hKey, 0, 0, 0, @SubKeysSU, @SubKeysMaxLen, @ClassMaxLen, @KeyNameSU, @KeyNameMaxLen, @KeyValMaxLen, @SecurityLen, @LastWriteTime)
If (Jerror = ERROR_SUCCESS) Then

'MessageBox(TakaHWND,"Hello Info 成功","Messagebox caption",MB_ICONINFORMATION)

'MessageBox(TakaHWND,"Hello SubKeysSU:"+Str$(SubKeysSU)+"SubKeys最大長さ"+Str$(SubKeysMaxLen)+")","Messagebox caption",MB_ICONINFORMATION)
'MessageBox(TakaHWND,"Hello 保存キー数"+str$(KeyNameSU) +"キー名最大長さ"+ Str$(KeyNameMaxLen) +"キー値最大長さ"+ Str$(KeyValMaxLen) +")","Messagebox caption",MB_ICONINFORMATION)
for IQQ = 0 To SubKeysSU -1
'サブキーを取得
SubKeysNameBuffSize = MojiLen
' 1 2 3 4 5 6 7 8
Jerror = RegEnumKeyEx(hKey, IQQ, @SubKeysNameBuffZString, @SubKeysNameBuffSize, 0, 0, 0, @FileWriteTime)

If (Jerror = ERROR_SUCCESS) Then
'MessageBox(TakaHWND,"Hello RegEnumKeyEx 成功("+SubKeysNameBuffZString+") Loop :"+Str$(IQQ),"Messagebox caption",MB_ICONINFORMATION)

90 :デフォルトの名無しさん:2017/02/19(日) 17:15:52.10 ID:hFztBwNz.net
>>89 本文が長すぎるというので、コメント行('declare function RegEnumValuなんたら)を消した。
以下の6行は、全角化している
          IF (SubKeyNameStringSU >= SubKeyNameStringTSU) then
            SubKeyNameStringTSU = SubKeyNameStringTSU + 20
            redim preserve SubKeyNameString(SubKeyNameStringTSU)
          End If
          SubKeyNameStringSU = SubKeyNameStringSU + 1
          SubKeyNameString(SubKeyNameStringSU) = SubKeysNameBuffZString

91 :デフォルトの名無しさん:2017/02/19(日) 17:16:40.54 ID:hFztBwNz.net
Else
'Jerror = 234(バッファサイズの不足) 発生
'MessageBox(TakaHWND,"Hello RegEnumKeyEx Err:"+Str$(Jerror )+"("+SubKeysNameBuffZString+")","Messagebox caption",MB_ICONINFORMATION)
'MessageBox(TakaHWND,"Hello RegEnumKeyEx Err:"+Str$(Jerror )+"("+Str$(Len(SubKeysNameBuffZString))+"," +Str$(SubKeysNameBuffSize)+")","Messagebox caption",MB_ICONINFORMATION)

End If
'初期化する
SubKeysNameBuffZString = ""
SubKeysNameBuffSize = MojiLen: 'Len(SubKeysNameBuffZString)

Next IQQ
Else
'MessageBox(TakaHWND,"Hello RegQueryInfoKey Error."+Str$(Jerror),"Messagebox caption",MB_ICONINFORMATION)
End If
'ハンドルを解放
RegCloseKey(hKey)
Else
'MessageBox(TakaHWND,"Hello RegOpenKeyEx Error."+Str$(Ierror),"Messagebox caption",MB_ICONINFORMATION)
End If
End If
End Function

92 :デフォルトの名無しさん:2017/02/19(日) 17:28:43.40 ID:hFztBwNz.net
こんなところ。使いたい人は適当に使って。

内容の読み書き、サブキー名とキー名の取得、
の4ルーチンがあれば、中身を読み取って何とかできると思われる。

>>82のUserAgentのように
途中がちょっと違って、前後が同じパスのレジストリーのデータを読む場合のように、
サブキーを取得して、(値が保存されていることを前提に)適当に読み取るというルーチンを作成できれば
ユーザー名全員の取得が可能となる。

Htmlファイル作成ルーチンの、<META>タグに著者名を指定する場合がある
このときに、著者名を誰で登録するか、の選択をするときぐらいしか使わない。

93 :デフォルトの名無しさん:2017/02/21(火) 20:41:01.96 ID:qjaAIYLo.net
'C:\tool\FreeBASIC\inc\win\secext.bi 内指定値
'declare function GetUserNameExA(byval NameFormat as EXTENDED_NAME_FORMAT, byval lpNameBuffer as LPSTR, byval nSize as PULONG) as WINBOOLEAN
'declare function GetUserNameExW(byval NameFormat as EXTENDED_NAME_FORMAT, byval lpNameBuffer as LPWSTR, byval nSize as PULONG) as WINBOOLEAN
'type EXTENDED_NAME_FORMAT as long
'enum
'(中略)
'end enum
'type PEXTENDED_NAME_FORMAT as EXTENDED_NAME_FORMAT ptr

に関係して、
'#Include Once "win/secext.bi"
指定以外の#Include文が必要らしく、コンパイラーが通らない。型宣言が
'#Include Once "win/bcrypt.bi"
'#Include Once "win/ntdef.bi"
に同一な宣言があるけど、どっちを使ってよいものかわからない。どちらか入れてもコンパイルエラーになる。
したがって、GetUserNameEx()が使えない。
部分切り出しという手法もある。

94 :デフォルトの名無しさん:2017/02/22(水) 20:16:58.92 ID:XWdhAgf/.net
>>93 つづき
'#Include Once "win/wincrypt.bi"
'#Include Once "win/security.bi"
'の2行が必要と判明した。

95 :デフォルトの名無しさん:2017/02/22(水) 20:22:40.74 ID:XWdhAgf/.net
declare function SHGetKnownFolderPath(byval rfid as const KNOWNFOLDERID const ptr, byval dwFlags as DWORD, byval hToken as HANDLE, byval ppszPath as PWSTR ptr) as HRESULT
の解読中。

96 :デフォルトの名無しさん:2017/02/22(水) 21:44:37.32 ID:XWdhAgf/.net
>>95 つづき
#if _WIN32_WINNT = &h0602
の時のみ使えるシステムコールルーチンで、Win10では使えない模様。
よって、開発中止。

97 :デフォルトの名無しさん:2017/02/24(金) 20:17:50.91 ID:FAsTtcI2.net
>>96 つづき
何か関係ありそうな内容を探していたら
http://qiita.com/hkuno/items/7b8daa37d9b68e390d7e
という一覧表を見つけた。

バージョンの取得は
http://www.4d.com/jp/blog/get-windows-version.html
参照。
GetFileVersionInfo システムコールは現時点で理解できない。
MSReturnCode = GetVersionExA(@udtOSVersionInfo)
関係情報がMSサイトから消えたので、こちらからの取得はあきらめるしかない模様。
使っていたのが、Win95 → Win2000 に伴うレジストリーの構造の変化だけだったので
NetからWin8を持たないで、Win 10 だけ考えるなら、なくても何とかなりそう。

レジストリエディターで、値をダンプして、検索をかけようとした。
LineInput で読み取ったらば、半角英数として解釈できなかった。
つまり、Shift-JIS コードではなく、Uniコードだった。

98 :デフォルトの名無しさん:2017/02/25(土) 21:16:18.91 ID:r1nrT1Dg.net
>>97 つづき。レジストリーのダンプリスト関係。
Const InFile1String = "D:\bas\Projects\Kako02\0RegData\1111.reg.txt"
の調子で入力ファイル5つを昨年(2016.09)に作成した。
レジストリー操作がよくわからなくて放置していたが、Read, Write, SubKey検索, Key検索の4ルーチンが入手できたことから、放置していた、データの収集関係を始めることとした。
が、データが膨大で260MB位ある。初期には
エディタで読み取って、検索
検索ソフトで検索
なんてやっていたが、内容によっては膨大な数の入力定数の設定があり、結構間違いが多数発生した。
というわけで、自動化。キー名、キー値、サブキー名で検索して、一覧表を作成、一覧表から読み取りルーチンを作成するようにした。
Dim As String RegPathString, KeyNameString, KeyValString

'Input File No. 0
(略)
'Input File No. 3 D:\bas\Projects\Kako02\0RegData\3333.reg.txt
(略)
RegPathString = "SOFTWARE\Microsoft\Windows Search\Gathering Manager"
KeyNameString = "UserAgent"
KeyValString = RegistryRead02String(HKEY_LOCAL_MACHINE, RegPathString, KeyNameString)
'KeyValString = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT; MS Search 4.0 Robot)"
'Input File No. 4 D:\bas\Projects\Kako02\0RegData\4444.reg.txt
(略)
てな調子で読み取りルーチンが作成されるソフトを作成した。

99 :デフォルトの名無しさん:2017/02/26(日) 13:08:20.87 ID:K90trdCC.net
>>98
つづき。こんなのも作った。
Dim As String TopSubKeyString, BottomSubKeyString, SubKeyNameString()
Dim Ierror As Long

'Input File No. 3 D:\bas\Projects\Kako02\0RegData\3333.reg.txt

' RegPathString = "SOFTWARE\Microsoft\Advanced INF Setup\IE40.UserAgent\RegBackup"
TopSubKeyString = "SOFTWARE\Microsoft\Advanced INF Setup"
BottomSubKeyString = "\RegBackup"
TakaDammyReturnCode = ReadSubKeyList0(HKEY_LOCAL_MACHINE, TopSubKeyString, SubKeyNameString(), Ierror)
' SubKeyNameString(3) = ["IE CompList", "IE.HKCUZoneInfo", "IE40.UserAgent"]
'**********************\(ちょっと違う)\*******************
というサブキー内にちょっと内容が異なる値が保存されている場合を想定。
UserNameの取得で、導入したユーザー名をかき集めるための物。
(ちょっと違う)ところをSubキーとして検索(Function ReadSubKeyList0(なんたら))して、フルスペルを取得。
個別に各キーの値を取得するための、Subキー一覧を作成するための物

100 :デフォルトの名無しさん:2017/02/26(日) 13:18:03.93 ID:K90trdCC.net
作成したソフトの中身を眺めた範囲では、
Open InFileString For Input Encoding "utf-16" As #InFileNo
While - Wend で回して、先頭1文字又は先頭3文字で作業内容を決定
一番最初の[]内でルートキーを取得し
その後は[でサブキー名、"や@でキー名、=がない場合にはキー値の追記行として処理
だから、そんな難しいルーチンではないと思う。
サブキー、キー名、キー値の3つがそろったところ、つまり、サブキーの先頭行か、キー名の先頭行で検索する

101 :デフォルトの名無しさん:2017/02/26(日) 13:25:38.25 ID:K90trdCC.net
>>98
'KeyValString = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT; MS Search 4.0 Robot)"
>>99
' SubKeyNameString(3) = ["IE CompList", "IE.HKCUZoneInfo", "IE40.UserAgent"]
は、キー値取得のための各値を定義して、実際に取得したもの。
2016.09に作成したダンプリストのために、現在の内容とは異なっている場合があるから、取得した。
もっとも、Subキーのリストが10000超えた場合もあったのはあせった。
10分ぐらい終了しなかったので、ハングしたのかな、と強制停止の処理を始めたら、終了した。

MSやその他法人が保存しているレジストリーの内容から、ユーザーとしてソフトを動かすために必要な情報を取得できるけれども、
何を使用するか、何を使用しないか、の取捨選択が迫られる。
分量の多さゆえに、このような検索ソフトを作成した。

102 :デフォルトの名無しさん:2017/02/27(月) 21:49:00.13 ID:GlE4NLGI.net
Taka06.BAs 内処理として、Disp08.fbp 等のExepath + "\*.fbp"ファイルを読み取って
[File] セクション内 1001=..\Kako02\Mod\Taka01.bas 等の内容を読み取って、

TakaHWND =hWin
TakaDammyReturnCode7 = Taka06_CommonStringSet(TakaHWND)
等の、各モジュールに hWin の内容を通知するルーチンを書き並べたファイル(Taka06HWND.BI)の作成に成功した。
今まで、いちいちどのモジュールが関係しているのかを調べて手作業で行っていたが、
#Include "Taka06HWND.BI"
1文に置き換えることに成功した。

103 :デフォルトの名無しさん:2017/03/04(土) 19:20:41.20 ID:MZsCuszb.net
'declare function LCMapStringA (byval Locale as LCID, byval dwMapFlags as DWORD, byval lpSrcStr as LPCSTR, byval cchSrc as long, byval lpDestStr as LPSTR, byval cchDest as long) as long
関係。宣言は
Const MaxStringLen = 1025
Dim dwMapFlags as DWORD
Dim AZstring As ZString * MaxStringLen
Dim BZstring As ZString * MaxStringLen
Dim cchSrc as Long, cchDest as Long
Dim As Long IAA, IBB, SetFigLong()
Dim As BOOLEAN ABool, BBool, DBool
実行部は
AZstring = iAstring
cchSrc = Len(AZstring)
cchDest = MaxStringLen
IAA = LCMapString(LOCALE_USER_DEFAULT, dwMapFlags, @AZstring, cchSrc, @BZstring, cchDest)
TakaComvString = BZstring
http://msdn.microsoft.com/ja-jp/library/cc448052.aspx の日本語文が難解だから気を付けてほしい。

104 :デフォルトの名無しさん:2017/03/04(土) 19:23:36.71 ID:MZsCuszb.net
declare function CompareString alias "CompareStringA"(byval Locale as LCID, byval dwCmpFlags as DWORD, byval lpString1 as PCNZCH, byval cchCount1 as long, byval lpString2 as PCNZCH, byval cchCount2 as long) as long
関係。宣言は、
Const MaxStringLen = 1025
Const MaxStringLenN1 = MaxStringLen - 1
Dim dwCmpFlags as DWORD
Dim AZstring As ZString * MaxStringLen
Dim BZstring As ZString * MaxStringLen
Dim As Long IAA, IBB
実行部は
IAA = CompareString(LOCALE_USER_DEFAULT, dwCmpFlags, @AZstring, -1,@BZstring, -1)
参考は
http://www.s34.co.jp/cpptechdoc/article/comparestring/

以上2つともコンパイラーむが通っただけ。
中身のチェックなどはしていない。

105 :デフォルトの名無しさん:2017/03/05(日) 10:25:39.08 ID:rfEgkW/x.net
DBSC、QBでは、INT21 - 53(非公開、MS-DOSの東アジア向けバージョンにのみ搭載)だったかな、で取得できる ASCZZ文字列の取得方法がわかった。
宣言は
Dim CodePageInfo1 as _cpinfo
Dim CodePageInfo2 as _cpinfoexA
Dim dwFlags as DWORD
Dim Astring As String, Bstring As String
Dim As Long IAA
実行部は
MSReturnCode = GetCPInfo(CP_ACP, @CodePageInfo1)
MSReturnCode = GetCPInfo(CP_MACCP, @CodePageInfo1)
MSReturnCode=GetCPInfo(CP_OEMCP,@CodePageInfo1)
MSReturnCode = GetCPInfoEx(CP_ACP, dwFlags, @CodePageInfo2)
MSReturnCode=GetCPInfoEx(CP_MACCP,dwFlags,@CodePageInfo2)
MSReturnCode = GetCPInfoEx(CP_OEMCP, dwFlags, @CodePageInfo2)
参考は
'https://msdn.microsoft.com/ja-jp/library/cc422078.aspx
'declare function GetCPInfo(byval CodePage as UINT, byval lpCPInfo as LPCPINFO) as WINBOOL
'https://msdn.microsoft.com/ja-jp/library/cc422080.aspx
'declare function GetCPInfoExA(byval CodePage as UINT, byval dwFlags as DWORD, byval lpCPInfoEx as LPCPINFOEXA) as WINBOOL

106 :デフォルトの名無しさん:2017/03/05(日) 10:36:36.80 ID:rfEgkW/x.net
.LeadByte()に、ASCZZ文字のASCダンプでDBCSが入っている。
dwFlags は、MSの指示で0を指定する。
CP_ACP等は、MSを参照。
その他関係システムコールは
https://msdn.microsoft.com/ja-jp/library/windows/desktop/dd317794%28v=vs.85%29.aspx
の後ろの方、「Your applications use DBCS Windows」以下参照。

107 :デフォルトの名無しさん:2017/03/05(日) 10:44:56.24 ID:rfEgkW/x.net
https://ja.wikipedia.org/wiki/MS-DOS
に「アジアバージョン」とかかれているのがDBCSをさぽとーしたMS-DOS。
英語版を無理に使うと日本語ファイる名がディレクトリーになったりして、散々な目にあった方々がいた。

108 :デフォルトの名無しさん:2017/03/08(水) 20:31:55.47 ID:Wan8ns7S.net
ついに、サブルーチンの移植総数が1000個を超えた。
大域サブルーチン 901個、局所サブルーチン 99個、作成中 3個。
Overload も全体で114個、27種類のルーチン名でまとめた。
引数の型違いのルーチンが増えれば、より多くなるだろう。

http://makoto-watanabe.main.jp/freebasic/CatPgString.html
で、KLEN、KMIDの2つしかないので、いろいろ作成中。
Dim CodePage as UINT
Dim As Long IAA, IBB, InALong
Dim TestChar as UBYTE

'https://msdn.microsoft.com/ja-jp/library/cc448045.aspx
'declare function IsDBCSLeadByte(byval TestChar as UBYTE) as WINBOOL
'https://msdn.microsoft.com/ja-jp/library/cc448047.aspx
'declare function IsDBCSLeadByteEx(byval CodePage as UINT, byval TestChar as UBYTE) as WINBOOL

For IAA = 1 To InALong
TestChar = asc(Mid$(InAstring, IAA, 1))
IBB = IsDBCSLeadByte(TestChar)
If (IBB = 0) Then
Else
EndIf
Next IAA
又は
IBB = IsDBCSLeadByteEx(CodePage, TestChar)
で振り回して、先頭から処理していけば比較的簡単に作れるだろう。

109 :デフォルトの名無しさん:2017/03/08(水) 20:35:59.45 ID:Wan8ns7S.net
ただし、Right$()は
If (IBB = 0) Then
StateLong(IAA) = 0
Else
StateLong(IAA) = 1
IAA = IAA + 1
StateLong(IAA) = 2
EndIf
と、SBCS(0)かDBCS(1文字目が1, 2文字目が2)と記録して
後ろから文字数を数える必要がある。
Instr() は手を付けていない。
ASC1文字検索の時だけDBCS2文字目の場合にはねるだけだから、比較的簡単に作れると思う。

110 :デフォルトの名無しさん:2017/03/11(土) 09:33:14.20 ID:U4jxaOIA.net
http://makoto-watanabe.main.jp/program.html#binary_editor
に紹介のあった Stirling の実行形式のパスを取得するルーチンを作成した。
宣言は
Dim RootKey as HKEY
Dim As string SubKeyString, kNameString
Dim As string AAString, BBString, CCString, FileString
Dim FileTypeString as String
TakaDammyReturnCode = RegistryRead01(RootKey, SubKeyString, kNameString, AAString)
でレジストリーを読み取って、管理ファイル名(たぶん)から実行形式に変換
TakaDammyReturnCode = FileTypeCat(AAString, FileTypeString, 0): 'AAString から識別子(.以降)を取り除く
StirlingPathString = AAString + ".exe"
'使用例
'BinLineString = StirlingPathString(0&)
'If (Len(BinLineString) > 0&) Then TakaDammyReturnCode = Exec(BinLineString, FileString): '同期する
関数名などは省略。

111 :デフォルトの名無しさん:2017/03/11(土) 09:55:02.25 ID:U4jxaOIA.net
Function RegistryRead01() は、旧 Fun GetRkey01() の名称を書き換えたもの。
旧 Fun GetRkey01()は、前スレを探してくれ。

>>109 つづき。
Instr() を作ろうとして、整理していったらば、
StateLong() 配列の解釈に間違いがあったことまでつかんだ。

気がめいったので一時中止。Instr( start, str, substring )
のstartの値、strや substringの長さより、場合分けが必要で
混乱に混乱を重ねて、一括ダンプルーチンを2回作り直した時点で、気がめいった。
StateLong() 配列作成の時点で場合分け用値を定義するか、返した値から定義するか、で迷っている。

ここにMID$()関数の問題が入った。
Mid$(A$, 10, -5)なんて使い方用のルーチンもあったのよ。
これは、N88を使いだす前、A$が255文字制限のあったころ、ペット用Basicを使っていたころの名残。
忘れていたわ、こんなルーチンを作っていたなんて。

112 :デフォルトの名無しさん:2017/03/12(日) 18:13:41.20 ID:a1qa7agM.net
以前書いた、BEEP系の内容の続き。
Win系関係ルーチンで発見できたものを記載する。
'declare 文は、C:\tool\FreeBASIC 内 *.BIファイルを検索してくれ。
大域宣言
#Include Once "win/mmsystem.bi"
Dim Shared MSerrorCodeMM as MMRESULT : 'MS音声処理関係処理のリターンコード

'declare function Beep_ alias "Beep"(byval dwFreq as DWORD, byval dwDuration as DWORD) as WINBOOL
MSReturnCode = Beep_(Frequency, BeepTime) : '命令語
'https://msdn.microsoft.com/ja-jp/library/cc428923.aspx

'https://msdn.microsoft.com/ja-jp/library/cc429002.aspx
'Declare function MessageBeep(byval uType as UINT) as WINBOOL
MSReturnCode = MessageBeep(-1)
MSReturnCode =MessageBeep(MB_ICONASTERISK)
MSReturnCode = MessageBeep(MB_ICONEXCLAMATION)
MSReturnCode= MessageBeep(MB_ICONHAND)
MSReturnCode = MessageBeep(MB_ICONQUESTION)
MSReturnCode =MessageBeep(MB_OK)

113 :デフォルトの名無しさん:2017/03/12(日) 18:17:37.48 ID:a1qa7agM.net
'http://park7.wakwak.com/~efc21/cgi-bin/exqalounge.cgi?print+200707/07070177.txt
にあったMIDI利用 BEEP は何とか成功した。

Dim lngmidHndVal As HMIDIOUT__
Dim lngmidHndPtr As HMIDIOUT
Dim lngmidHndPtrPtr As LPHMIDIOUT
で宣言して、
'declare function midiOutOpen(byval phmo as LPHMIDIOUT, byval uDeviceID as UINT, byval dwCallback as DWORD_PTR, byval dwInstance as DWORD_PTR, byval fdwOpen as DWORD) as MMRESULT
MSerrorCodeMM = midiOutOpen(@lngmidHndPtr, MIDI_MAPPER, 0, 0, CALLBACK_NULL)
If (MSerrorCodeMM = MMSYSERR_NOERROR) Then BeepMidiOut (lngmidHndPtr, MdiMsg)
Sleep mTime
midiOutClose (lngmidHndPtr)
とならす。

Private Function BeepMidiOut(lngmidHndPtr As HMIDIOUT, DataString As String) As Wata
Dim MLMsg() As Byte
Dim As Long IAA, IBB
Dim lpMidiOutHdr As MIDIHDR
と、宣言して、
ReDim MLMsg(0& To Len(DataString) \ 2& - 1&)
For IAA = 1& To Len(DataString) Step 2&
MLMsg((IAA - 1&) \ 2&) = Val("&H" & Mid(DataString, IAA, 2&))
Next
lpMidiOutHdr.lpData = VarPtr(MLMsg(0))
lpMidiOutHdr.dwBufferLength = UBound(MLMsg) + 1&
lpMidiOutHdr.dwFlags = 0&
'declare function midiOutPrepareHeader(byval hmo as HMIDIOUT, byval pmh as LPMIDIHDR, byval cbmh as UINT) as MMRESULT
MSerrorCodeMM = midiOutPrepareHeader (lngmidHndPtr, @lpMidiOutHdr, Len(lpMidiOutHdr))
'declare function midiOutLongMsg(byval hmo as HMIDIOUT, byval pmh as LPMIDIHDR, byval cbmh as UINT) as MMRESULT
MSerrorCodeMM = midiOutLongMsg (lngmidHndPtr, @lpMidiOutHdr, Len(lpMidiOutHdr))
と鳴らす。

114 :デフォルトの名無しさん:2017/03/12(日) 18:21:32.40 ID:a1qa7agM.net
音が聞こえなかったのは、Sleep mTime の解釈が原因だと思う。
BeepMidi("02", "60", 2000)
'BeepMidi("57", "60", 2000) 'C7:2093Hz
のように、演奏時間を2000としたら、何秒か聞こえた。
遅延が、2-3秒ぐらいあり、その期間無答となるので、ゲームサウンドには使えない。

115 :デフォルトの名無しさん:2017/03/12(日) 19:21:01.74 ID:a1qa7agM.net
さっぱりわからんけど
https://blogs.windows.com/buildingapps/2016/09/21/midi-enhancements-in-windows-10/#HWygA7trSYw9sboJ.97
なんてものを見つけた。
Windows 10でMIDIを強化するというが、2秒ぐらいの遅延が発生していることからみれば
対応を取らなければ、MIDI関係ルーチンが使い物にならないわけで
主要用途である、ゲームのバックグラウンドサウンドにうまく適応で切るような、低負荷ルーチンの存在が必要となってくる。
Win 10では、1/4を超えるCPU占有をTSSで他のタスクに割り振るために認めていない。
より負荷を軽くすることが要求される。
しかし、負荷を軽くする内容については記載がない。

116 :デフォルトの名無しさん:2017/03/12(日) 19:38:38.32 ID:a1qa7agM.net
いくらやっても見つからないと思ったらば、こんなの見つけた。
https://www.slideshare.net/garicchi/windows10api
37. バックグラウンドタスク
38. BackgroundTask • UWPは基本的にアプリを閉じるとタスクを実行できなくなる • BackgroundTaskに登録しておくとTriggerが発動したときに別
のプロセスとして処理を実行できる App System System Trigger BackgroundTask 別プロセス BackgroundTask登録
39. Background Task Triggerの例 • Time Trigger • 一定時間でTaskを実行 • 最短15分間隔 • System Trigger • システムのあらゆるイベント時にTask実行
• 例 Internet Available , Power State Changed • Push Notification Trigger • プッシュ通知が来た時にTask実行

MIDI 再生専用のタスクを作って、何かしかの指示を送って実行、
という処理が必要なのかな?。

117 :デフォルトの名無しさん:2017/03/13(月) 22:50:24.29 ID:71lamdyx.net
http://www.utp.or.jp/bd/978-4-13-064067-1.html
機会があったらば読んでほしいのだけれども。

細かい計算や理論は除外して、
SALSの運用の話を見てほしい。

全部のソースリストが記載されているものがあって、
記載内容を修正した後でソースリスト(2万枚のパンチカード?)を修正する
という旨の内容が書いてあったはず。
いつ、どのような修正をしたのか、修正の前後の内容を保存している
ということをしないと、障害の巣窟になってしまう、なんて内容が書いてあったはず。

これは、デカコンを使っていたころ読んだ本なので、手元にない。版元では品切 の模様。
どこが、どのようにおかしいから、どのように変更した、
ことを記載しておくこと。
現実としては、作業記録として専用に作るのは面倒だから、
ライブを定期的に、あるいは大規模な修正を行う前に、一括して圧縮保存。
修正作業に入って、修正した日時と修正の原因をコメント行としてソースに残しておく、
ということで、済ましている。

FreeBasicの癖がよくわからないので、>>111 の様な事をやっていて、
本格的な移植作業には入っていない。
ライブの移植が終わるころには、癖がつかめてくるのではないかと思われる。

118 :デフォルトの名無しさん:2017/03/13(月) 22:59:35.57 ID:71lamdyx.net
MIDIファイル再生に関して、こんなものを見つけた。
http://officetanaka.net/excel/vba/tips/tips22.htm
以下のファイルが関係している。
C:\tool\FreeBASIC\inc\win\mmsystem.bi
C:\tool\FreeBASIC\inc\win\ddk\mmddk.bi
ここまでしかやっていない。

119 :デフォルトの名無しさん:2017/03/13(月) 23:49:42.95 ID:71lamdyx.net
>>114 こんなの見つけたので知らせておく
http://www.cactussoft.co.jp/Sarbo/divMIDISeqLongMsg.html
そのためmidiOutLongMsg()関数は、非同期式で動作する仕様になっています。
非同期式とは、関数が実行された段階でデバイスドライバーは、
「はい、ロングメッセージの送信ですね、受け付けました。」と言うだけで制御を戻します。

と待ち時間に関係なしに制御が戻って、勝手に演奏してくれないと、パックグラウンド゜サウンドに使えない。

ズンチャカやっていて、それ以外の処理系が止まってしまうのは、使えない。

120 :デフォルトの名無しさん:2017/03/14(火) 22:02:38.43 ID:1/oLMu3p.net
>>118 非同期の起動に成功した。
http://eternalwindows .jp/winmm/mci/mci02.html
http://www13.plala .or.jp/kymats/study/MULTIMEDIA/mciCommand_callback.html
https://msdn.microsoft.com/ja-jp/library/cc410496.aspx

121 :デフォルトの名無しさん:2017/03/14(火) 22:03:19.95 ID:1/oLMu3p.net
Case MM_MCINOTIFY
'「MM_MCINOTIFY」定数を使うには 要 #Include Once "win/mmsystem.bi"
Astring = "MM_MCINOTIFY "+ Hex$(wParam) + " " + Hex$(lParam)
TakaDammyReturnCode = SoundFilePlay(10, Astring)
buff = Astring
SetDlgItemText(hWin, IDC_STC1, @buff)
'wParam = (WPARAM) wFlags
'lParam = (LONG) lDevID

122 :デフォルトの名無しさん:2017/03/14(火) 22:06:03.27 ID:1/oLMu3p.net
あと
CmdZString ="Open " & SoundFile+" notify"
MSerrorCodeMI= mciSendString(CmdZString, @CmdRetZString, SizeOf(CmdRetZString), TakaHWND)
buff ="Openを開始します"
SetDlgItemText(hWin, IDC_STC1, @buff)
Case IDC_BTN3
CmdZString= "Play "&SoundFile + " notify"
MSerrorCodeMI =mciSendString(CmdZString,@CmdRetZString, SizeOf(CmdRetZString), TakaHWND)
buff= "Playを開始します"
SetDlgItemText(hWin, IDC_STC1, @buff)
Case IDC_BTN4
CmdZString ="Close " & SoundFile+" notify"
MSerrorCodeMI= mciSendString(CmdZString, @CmdRetZString,SizeOf(CmdRetZString), TakaHWND)
buff ="Closeを開始します"
SetDlgItemText(hWin, IDC_STC1, @buff)

123 :デフォルトの名無しさん:2017/04/09(日) 21:36:39.17 ID:LdLCQwyT.net
Test

124 :デフォルトの名無しさん:2017/04/09(日) 21:43:21.61 ID:LdLCQwyT.net
>>122 のあと、マンゴーがなにんとかで、かけなくなって放置。
気が付いた点で関係情報を
外部タスクの同期起動は、Shell 等がある。
保守関係で、被同期にしたいので探して見つかったのが
'declare function WinExec(byval lpCmdLine as LPCSTR, byval uCmdShow as UINT) as UINT
'MSReturnCodeUINT = WinExec(byval "notepad", SW_SHOW)
とか
MSReturnCodeUINT = WinExec(byval "notepad "+OutFile, SW_SHOW)
これは、MSが切り替えを予定している。それで
'declare function CreateProcessA(byval lpApplicationName as LPCSTR, byval lpCommandLine as LPSTR,
byval lpProcessAttributes as LPSECURITY_ATTRIBUTES, byval lpThreadAttributes as LPSECURITY_ATTRIBUTES,
byval bInheritHandles as WINBOOL, byval dwCreationFlags as DWORD,
byval lpEnvironment as LPVOID, byval lpCurrentDirectory as LPCSTR, byval lpStartupInfo as LPSTARTUPINFOA,
byval lpProcessInformation as LPPROCESS_INFORMATION) as WINBOOL
Dim pi As _PROCESS_INFORMATION
Dim PiPtr as LPPROCESS_INFORMATION
dim si as _STARTUPINFOA
Dim SiPtr as LPSTARTUPINFOA
Dim As Zstring * 256 szCmd = "notepad "+OutFile

PiPtr = @pi
SiPtr = @si
memset(@si, 0, sizeof(STARTUPINFO))
memset(@pi, 0, sizeof(PROCESS_INFORMATION))
si.cb = sizeof(STARTUPINFO)
' 1 2 3 4 5 6 7 8 9 10
MSReturnCode = CreateProcess(NULL, szCmd, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, @Si, @pi)

125 :デフォルトの名無しさん:2017/04/09(日) 21:48:26.55 ID:LdLCQwyT.net
タイマー割り込み処理。
Case IDC_BTN1
buff = "IDC_BTN1を開始します"
'declare function SetTimer(byval hWnd as HWND, byval nIDEvent as UINT_PTR, byval uElapse as UINT, byval lpTimerFunc as TIMERPROC) as UINT_PTR
SetTimer(hwnd, 1, 2000, NULL)
SetDlgItemText(hWin, IDC_STC1, @buff)

で起動して
case WM_TIMER
'
buff = "WM_TIMER が発生しました"
SetDlgItemText(hWin, IDC_STC1, @buff)
Case WM_SIZE
と「WM_TIMER」事象発生を受けて、かン系ルーチンを起動する

126 :デフォルトの名無しさん:2017/04/09(日) 22:09:11.11 ID:LdLCQwyT.net
V.B.用に作ったタートル関係、FreeBasicでは関係命令が存在するだが、
変な拡張をしたがために、廃止できない状態に。
うまく動かないと思ったらば、ByRef, ByValの関係で、出力値に常に0が定義されていた。

(なんたら)=(かんたら)のなんたら部のみを検索するルーチンを作って、
Function文から引数名を引き抜くルーチンを作って、比較。
1ファイル平均3引数程度、ByRefをしなければならない場所がByValになっていた。
短期即興のルーチンだから解釈できない引数が800近くある。
ルーチン数でも同じくらいだから、引数の関係した未発見のエラーが多いと思われる。
タートル関係のルーチンが増えて、現在1170ルーチンのライブラリーとなっている。

127 :デフォルトの名無しさん:2017/04/09(日) 22:26:03.33 ID:LdLCQwyT.net
ファミコン等、かなり古いゲームでは8*8文字とか使っている。
それ前だと、ニキシー管 https://ja.wikipedia.org/wiki/%E3%83%8B%E3%82%AD%E3%82%B7%E3%83%BC%E7%AE%A1
を使ったスロットマシーンとかもある。

V.B.でこれを再現しようとした名残で、7セグとか14セグ、16セクとか
https://ja.wikipedia.org/wiki/7%E3%82%BB%E3%82%B0%E3%83%A1%E3%83%B3%E3%83%88%E3%83%87%E3%82%A3%E3%82%B9%E3%83%97%E3%83%AC%E3%82%A4
の文字表示ルーチンがある。
結果として、V.B.用のタートルが捨てられない。

128 :デフォルトの名無しさん:2017/04/13(木) 21:48:58.87 ID:CzF9QVAq.net
ByRef, ByVal 接頭語に関して。
サブルーチン内で定義する方法をLet文、具体的には「=」記号のみに限定する
という方法を選択して、
引数の変数を示す語をInstrで探して、
前が数字とアルファベット以外・又は文頭、後ろが数字とアルファベット以外、の場合に、変数を参照していると解釈する。
Open、For、Dim、ReDim、Select Case、IF、DO、LOOP、WHILE、Untilの場合には専用にルーチンで語の一致をみて、参照する場合と決定
IF THEN ELSE 文は、IF - Then 間、THen-Else間、ELSE移行の3文に分割
変数の前の文字を 「# : , ( 算術演算子」の場合に分けて
変数の後ろの文字を 「: , ) 算術演算子」の場合に分けて
「,」や「()」の場合には、前後の()を探して、配列名か関数名を特定。Declear文に記載がある場合に限って関数と解釈、ない場合が配列と解釈。
関数の場合には、自己の検査結果より引数が定義にしているか参照しているを調べる。配列名の場合には参照すると決定(MSやUnix系関数は判断できない)。
算術演算子の場合には参照と決定。
前に「#」があるばあいには、参照と決定。
前に「=」があるばあいには、参照と決定。
後ろに「=」があるばあいには、定義と決定。
多文字演算子として、MOD 演算子は + に書き換えで処理。

までやって、100位解釈できない引数があるけど、なんとかそれらしきものができた。
あとちょっとやれば、ByRef ByVal ガ原因の混乱は終焉すると思う。

129 :デフォルトの名無しさん:2017/04/15(土) 11:39:21.57 ID:e+ro1QoX.net
>>122 のあとのマンゴー関係で書けなかった内容。
画面中にある表示枠情報。
Dim CmWndpl As WINDOWPLACEMENT
CmWndpl.length = sizeof(CmWndpl): 'MS指示、参照前に定義のこと
MSReturnCode = GetWindowPlacement(hWnd, @CmWndpl)
で取得、
MSReturnCode = SetWindowPlacement(hWnd, @CmWndpl)
で復元。

'使用TVの物理サイズの取得
Dim R As RECT
Dim as HWND hWnd
hWnd = GetDesktopWindow()
MSReturnCode = GetWindowRect(hWnd, @R): 'スクリーン座標の取得

'タスクバーの位置と大きさを返す
Dim TaskBerInfo As _AppBarData
'(大域) Dim MSReturnCodeUintPtr as UINT_PTR
ZeroMemory(@TaskBerInfo, sizeof(TaskBerInfo)) : '(MS指定) 「TaskBerInfo」領域内を0で塗りつぶす
TaskBerInfo.cbSize = sizeof(TaskBerInfo): '(MS指定) 初期化、領域の大きさを定義
'declare function SHAppBarMessage(byval dwMessage as DWORD, byval pData as PAPPBARDATA) as UINT_PTR
MSReturnCodeUintPtr = SHAppBarMessage(ABM_GETTASKBARPOS, @TaskBerInfo)
リターンコードが「UINT_PTR」という使用頻度の低い型を使っていることに注意。

130 :デフォルトの名無しさん:2017/04/15(土) 11:46:28.47 ID:e+ro1QoX.net
'システム枠の幅と高さの取得
'declare function GetSystemMetrics(byval nIndex as long) as long
Select Case ActionType
Case SM_CXSCREEN, SM_CYSCREEN
'0, 1 'プライマリモニタの画面全体の幅と高さを取得します。
WideLong = GetSystemMetrics(SM_CXSCREEN)
HightLong = GetSystemMetrics(SM_CYSCREEN)
Case SM_CXVSCROLL, SM_CYHSCROLL
'2, 3 垂直スクロールバーの幅、または垂直スクロールバーの矢印の高さをピクセル単位で取得します。
WideLong = GetSystemMetrics(SM_CXVSCROLL)
HightLong = GetSystemMetrics(SM_CYHSCROLL)
'const SM_CYCAPTION = 4 ''通常のタイトルバーの高さをピクセル単位で取得します。
Case SM_CXBORDER, SM_CYBORDER
'5, 6 立体効果のないウィンドウの境界の幅と高さを取得します。
WideLong = GetSystemMetrics(SM_CXBORDER)
HightLong = GetSystemMetrics(SM_CYBORDER)
Case SM_CXDLGFRAME, SM_CYDLGFRAME
'7,8 'タイトルバーがあり、サイズが変更できないウィンドウの周囲を囲む枠の幅と高さをピクセル単位で取得します。
WideLong = GetSystemMetrics(SM_CXDLGFRAME)
HightLong = GetSystemMetrics(SM_CYDLGFRAME)
以下略。「GetSystemMetrics」関係がやたら沢山あって下手に書くとマンゴーに引っかかりそうなので一部分だけ。
Case SM_CXVIRTUALSCREEN, SM_CYVIRTUALSCREEN
'78, 79 仮想画面の幅と高さをピクセル単位で取得します。
WideLong = GetSystemMetrics(SM_CXVIRTUALSCREEN)
HightLong = GetSystemMetrics(SM_CYVIRTUALSCREEN)
と、40組ぐらいある。
'const SM_CXFOCUSBORDER = 83
から
'const SM_CMETRICS = 97
まで、Win系BIファイル('C:\tool\FreeBASIC\inc\win\winbase.bi)には記載があるが、内容が検索では見つけられなかった定数がある。

131 :デフォルトの名無しさん:2017/04/15(土) 11:51:10.66 ID:e+ro1QoX.net
'表示枠全体, 表示枠使用可能範囲、最大表示可能枠の取得
Dim MainWaku as tagRECT
Case 1
'declare function GetWindowRect(byval hWnd as HWND, byval lpRect as LPRECT) as WINBOOL
MSReturnCode = GetWindowRect(InhWin, @MainWaku) 'InhWinの左上端と右下端の座標をスクリーン座標で取得します。
Case 2
'declare function GetClientRect(byval hWnd as HWND, byval lpRect as LPRECT) as WINBOOL
MSReturnCode = GetClientRect(InhWin, @MainWaku) 'InhWinの表示枠内、ユーサー領域の左上端と右下端の座標をスクリーン座標で取得します。
Case 3
'declare function GetClipCursor(byval lpRect as LPRECT) as WINBOOL
MSReturnCode = GetClipCursor(@MainWaku) 'マウスカーソルの移動可能な範囲に相当するスクリーン座標を取得します(最大表示範囲)。
Case 4
'http://liweijing.blogspot.jp/2007/03/blog-post.html
'declare function SystemParametersInfoA(byval uiAction as UINT, byval uiParam as UINT, byval pvParam as PVOID, byval fWinIni as UINT) as WINBOOL
MSReturnCode = SystemParametersInfo(SPI_GETWORKAREA, 0, @MainWaku, 0) 'タスクバーの大きさをのぞいた画面の大きさ

132 :デフォルトの名無しさん:2017/04/15(土) 11:54:37.99 ID:e+ro1QoX.net
'表示枠全体, 表示枠使用可能範囲取得
Dim hBtn As HWND
Dim MainWaku as tagRECT
Dim PointXY as tagPOINT
hBtn = GetDlgItem(InhWin, IDnoGRALong): '表示枠内部品のハンドル(枠番号)を取得, hBtn=0でエラー
Select Case ActionType
Case 1, 11
MSReturnCode = GetWindowRect(hBtn, @MainWaku) 'hBtnの表示枠内部品の、左上端と右下端の座標を表示枠座標で取得します。
Case 2, 12
MSReturnCode = GetClientRect(hBtn, @MainWaku) 'hBtnの表示枠内部品の、左上端(0,0)と右下端の座標を取得します。

133 :デフォルトの名無しさん:2017/04/15(土) 11:58:30.77 ID:e+ro1QoX.net
'スクリーン座標 → ユーザー座標に換算
Dim as tagPOINT PointXY1, PointXY2
PointXY1.X = InWaku.Left
PointXY1.Y = InWaku.Top
IF (ActionType = 1) Then
MSReturnCode = ScreenToClient(InhWin, @PointXY1)
Else
MSReturnCode = ClientToScreen(InhWin, @PointXY1)
End If
IF (MSReturnCode = 0) Then IError = 1
PointXY2.X = InWaku.Right
PointXY2.Y = InWaku.Bottom
IF (ActionType = 1) Then
MSReturnCode = ScreenToClient(InhWin, @PointXY2)
Else
MSReturnCode = ClientToScreen(InhWin, @PointXY2)
End If
IF (MSReturnCode = 0) Then IError = 1
IF (Ierror = 0) Then
InWaku.Left = PointXY1.X
InWaku.Top = PointXY1.Y
InWaku.Right = PointXY2.X
InWaku.Bottom = PointXY2.Y
Else
'エラー
End If
てな感じ。

134 :デフォルトの名無しさん:2017/04/15(土) 12:03:35.44 ID:e+ro1QoX.net
表示枠や表示部品移動、大きさの変更について、
MSReturnCode = MoveWindow(hBtn, PointXY.X, PointXY.Y, WideLong, HightLong, True): '個別表示物の枠の寸法を定義, 再作画を指示
MSReturnCode = SetWindowPos(InhWin, HWND_TOP, 0, 0, new_width, new_height, SWP_NOMOVE)
MSReturnCode = SetWindowPos(hBtn, NULL, 0, 0, new_width, new_height, uFlags)
MSReturnCode = GetWindowRect(hBtn, @rw)
MSReturnCode = ScreenToClient(InhWin, @PointXY)
MSReturnCode = MoveWindow(hBtn, PointXY.X, PointXY.Y, new_width, new_height, True): '個別表示物の枠の寸法を定義, 再作画を指示
MSReturnCode = SetWindowPos(InhWin, HWND_TOP, LeftLong, TopLong, 0, 0, SWP_NOSIZE)
が関係しているらしいのだけれども、現在混乱して、作成中止中。

135 :デフォルトの名無しさん:2017/05/02(火) 10:03:18.39 ID:qBaC0+Zg.net
GFDL1.2の文書読んでいて気が付いた。
サブライセンス出来ないじゃん。

136 :デフォルトの名無しさん:2017/05/04(木) 11:36:41.54 ID:+fiMgp6j.net
そのままの意味で再許諾はできないよ

137 :デフォルトの名無しさん:2017/05/05(金) 06:45:28.53 ID:tmTYNlNg.net
かいとか。連投規制に引っかかった。

138 :デフォルトの名無しさん:2017/05/05(金) 07:11:15.97 ID:tmTYNlNg.net
>>128 の内容で一部抜けがある。
Line()等()の後ろに色々指定されている命令の場合、個別に処理して、参照だけで定義されていない
マルチステートにすると解釈が困難になる(:で切って1文1文を検索、表示は切る前の文節)ので、この手の命令を含むマルチステートを禁止した。
SelectCase, Sleep 文も同様な処理が必要になった。
MOD演算子の他にXOR演算子なども書き換えが必要であった。

ByVal, ByRef の間違いが1ファイルに2-3か所ぐらいあった。
引数として存在する物の使われていない変数が結構ある。これは、Function文として()がないと解釈できないので、無意味な引数をつけている。
これがエラーになるので、Type YearnInteger As Integer とYearn型変数を用意して検索の対象から外した。

Astring = ComDeclareListDir2 + "*.txt"
IF (dir$(Astring) <> "" ) then Kill Astring
が動かないみたい。Kill文に*?を使った場合にエラーになるみたい。
対応ルーチン作成中。

日曜プログラマーの場合には、多少実行効率が悪くても、多少処理が遅くても、
ソフト作製時間が少なくて済むように、一番手間のかかる、障害発見時間を短くて済むようにすることが必要。

139 :デフォルトの名無しさん:2017/05/06(土) 16:45:07.39 ID:Xeh+WPsq.net
クロスリファレンス表
https://search.yahoo.co.jp/search?p=%E5%A4%89%E6%95%B0%E5%90%8D+%E7%9B%B8%E4%BA%92%E5%8F%82%E7%85%A7%E8%A1%A8%E3%80%80%EF%BC%A2%EF%BD%81%EF%BD%93%EF%BD%89%EF%BD%83&
aq=-1&oq=&ai=zigtrn1cQYWrys51a_UUkA&ts=3634&ei=UTF-8&fr=top_ga1_sa&x=wrt
の作成ソフトをしらないか。
自作ソフトではかなり解釈ができない場合がある。
例、For-Next のAs 句

自作ソフトがわかりやすいように、文法を制限することはたやすい。
しかし、過去スレを見ればわかる通り、この手の制限をわかりずらいとする人がいる。

日曜プログラマーにとっては、
自分の描いたソフトには必ず障害が発生する、と信じて例外処理ルーチンを付すこと
は、その後の保守の簡便化に関係する。

しかし、簡便化ルーチンを否定する人は多い。
自前のルーチンで解釈が困難で、「難解なルーチン」となる部分を解釈してくれるもの
クロスリファレンス表作成ソフトがあるものと信じて、ここに問い合わせる。

140 :デフォルトの名無しさん:2017/05/09(火) 19:35:55.11 ID:YDoq9mLA.net
ファイル名関係処理でDBCS関連がらみの処理をどうしようか、
と迷っていたら、ファイル名関係のシステムコール(スーパーバイザ参照)ルーチンを見つけた。
細かいことは C:\tool\FreeBASIC\inc\win\shlwapi.BI を見てくれ。
「declare function Path」で検索すると、主要なルーチン名を見つけることができる。
一部 declare sub Pathなんたら()があるから注意してくれ。
「Pathなんたら()」と記載しないと参照できない。

141 :デフォルトの名無しさん:2017/05/13(土) 22:52:55.55 ID:6qsyWLV0.net
http://www.dotup.org/uploda/www.dotup.org1247922.zip.html
http://www.dotup.org/uploda/www.dotup.org1247923.zip.html

>>140 関係。動作試験した内容。
使いたい人がいたら、適当に使って。
ネットワーク関係のシステムコールが見つかったので整理中。
ローカルでの運用が主体なので、MSネットワーク関係が出てきて混乱している。
V.B.を購入した2000年頃の内容では、MSネットワークがウイルスソフトにやられることが多いので、MSネットワークは使用しないように、というウイルス対応が多かった。
だから、関係ルーチンを使わないようにしていた。だから、内容が理解できない。

C:\tool\FreeBASIC\inc\win\shlwapi.bi の内容は検索してみればわかる通り、個人サイトでは2010年頃に公開されている。
だから、かなり出遅れた内容となる。
'' MS指示 PathAddExtension() → PathCchAddExtension() を使え
なんて旨の内容もある。MSが指定したルーチン名はC:\tool\FreeBASIC\以下の*.BIファイルには見つからなかった。
近い将来、サポートされるものと思う。

142 :デフォルトの名無しさん:2017/05/14(日) 11:53:59.80 ID:J0U25/Ze.net
>>140 つづき。
Astring = "*.Txt": Kill Astring
がうまく動作しなくてはじめたこの処理だけど、こんなの見つけてしまった。
http://www.all.undo.jp/asr/Ver7/11.html
>有用性の高いWindows APIの動作が変わってる事だと思います。
>具体的にはPathMatchSpec()というAPIです。
>このAPIはWindows 8正式版の頃から挙動が怪しくなりまして、取りこぼしやら誤ヒットやらと、落ちるわけじゃないんですが比較の結果が正しくない文字が多数発生してました。
ということで、>>141の内容で打ち切って、自前ルーチンの作成が必要であるということになってしまった。
>Windows Vista以降であればPathMatchSpecEx()というAPIが別で存在している
PathMatchSpecEX()があるらしいのだが、FreeBasic ではサポートされていない。
>FindFirst系のAPIだとワイルドカードの組み合わせによって
は、皆さんご存知ですよね。Win 95頃長いファイル名がサポートされて、別名として短いファイル名が用意された。
別名、つまり、8.3形式のファイル名では重複するときに末尾2文字以上を(チルダ)(数字)に置き換える。
だから、おかしなことになりやすい。*で拾って、個別に比較して、処理するということが必要になってくる。
末端ユーザー(オペレーター)に対して、チルダを使うな、と指示して、チルダを使っているファイルをユーザーレベル(プログラム仕様書)で排除すれば済むのだけれど。

143 :デフォルトの名無しさん:2017/05/17(水) 20:43:36.59 ID:5N4X+pOX.net
>>141 のつづき。
http://www.dotup.org/uploda/www.dotup.org1251962.zip.html
http://www.dotup.org/uploda/www.dotup.org1251960.zip.html

>>140 関係。動作試験した内容。
使いたい人がいたら、適当に使って。
ネットワーク関係と、表示枠関係は動作試験をやっていない。

不審な動作があったので、ついでに記載。
DimChk42で新規にDialogAppAsMainのテンプレートを使って作成。
その後をDimChk42の内容をDimChk42B, DimChk42C, DimChk42Dにコピーして試験を続けた。
DimChk42AはDimChk42の名称を変更したもの。
DimChk42A内 BAKディレクトリーを消そうとしたら消えない。ReadOnlyになっていたので、これを解除して消去した。
そしたら、DimChk42B, DimChk42CのBAKディレクトリーも一緒に消えてしまった。
どこをどうしているのか、わからないけどOS由来の不審な挙動か、FBEが何かやっているのか、わからない。
OS由来の仕様の可能性が高い。

144 :デフォルトの名無しさん:2017/05/20(土) 11:06:25.21 ID:ZcoJjZsO.net
以前書いたような気がするのだが、
*.DLL ファイルの使い方が現時点で分からない。
結果として、LZH, ISH等のファイルが使えないでいる。
ISHは手作業でバイナリに戻して、手持ちのライブラリーのBAse64に切り替えるとして
LZH等が使えないでいる。 http://www.madobe.net/archiver/index.html

ZIPが使えるような雰囲気だが、
C:\tool\FreeBASIC\examples\manual\libraries\zip.bas
対応する ZIP.A ファイルなどが見つけられなかった。

今回、BZIP関係が成功したので、記載する。関係ファイルは
http://www.dotup.org/uploda/www.dotup.org1254567.zip.html
参照。
https://sourceforge.net/projects/fbc/files/Older%20versions/0.90.1/Binaries%20-%20Windows/Libraries/
内' FB-win32-bzip2-1.0.6.zip 内 libbz2.a の参照例
'コピー元ファイル C:\tool\FreeBASIC\examples\compression\bz2compress.bas
圧縮しかできない。解凍方不明。

検索資料 http://s-yata.jp/docs/libbzip2/
BZip対応解凍ソフト、CubeICE、http://www.vector.co.jp/soft/winnt/util/se489109.html

2ちゃんねるって、Base64による投稿を認めているのかな?

145 :デフォルトの名無しさん:2017/05/20(土) 19:52:51.58 ID:ZcoJjZsO.net
>>144 
使いたい人がいたら、適当に使って。
これ書き忘れた。

BZIPでは複数ファイルの一括圧縮ができないようなので、一括ファイル合併ルーチンを作ろうとして四苦八苦。
Dim FileSizeOver as DWORD
Dim FileSizeOverPtr as LPDWORD
「FileSizeOverPtr = @FileSizeOver」行を入れるのを忘れて
FileSezeGetULongInt = GetFileSize(FileHandle, FileSizeOverPtr)
とやると、ハングするので要注意。

146 :デフォルトの名無しさん:2017/05/24(水) 23:48:18.25 ID:ATqZKMOK.net
>>145 つづき。
なんとか、TARファイルもどき(タイムスタンプや属性をMSのデータそのまま複写等)を作るのに成功。
TARのファイル構造
'http://www.redout.net/data/tar.html tar の構造
'http://openlab.ring.gr.jp/tsuneo/soft/tar32_2/tar32_2/sdk/TAR_FMT.TXT TAR32.DLL フォーマット説明ファイル
を眺めて
https://ja.wikipedia.org/wiki/Tar
をみたら、考えることって同じなんだね。
パンチカードを使っていたころのルーチンが生きていたころ、パンチカードノ内容をほぼそのまま保存したUnPACK形式のデータファイルと
1枚のパンチカードの末尾以後の空白を削除したPack形式のデータが存在する。
Packデータを直接読み取れないのでpack形式をUnPack形式に変換して、固定長データとして取りあ使う。
パンチカートをデータファイルに変換し、保存することを目的に作ったのがパンチ等シすテム。
Tarの構造は、パンチラシステムに近い構造だった。
TARを読んでいたら、BZIPのマルチファイル形式も認めているようなのだが、
関係情報を持っている人はいないか。
Unixのソースファイルを読めば書いてあるのだろうが、Unixはデカコンを使うのをやめた年の終わりごろに入った機械なので、まったく中身を見る時間がなかった。
さっぱりわからない。

147 :デフォルトの名無しさん:2017/05/25(木) 21:36:48.40 ID:wf6/c17h.net
>>144 つづき。こんなファイルを見つけた。
'C:\tool\FreeBASIC\examples\dll\dylib.bas のコピー

148 :デフォルトの名無しさん:2017/05/27(土) 15:33:51.50 ID:ZQgU3vIU.net
>>147 つづき。
なんとか、LZH A とLZH E の2つのコマンドが使えるようになった。
詳細は、
http://www.dotup.org/uploda/www.dotup.org1262265.zip.html
さんしょう。
DLLファイル関係命令は、以下の通り。
http://makoto-watanabe.main.jp/freebasic/PgDylibsymbol.html
http://makoto-watanabe.main.jp/freebasic/PgDylibload.html
http://makoto-watanabe.main.jp/freebasic/PgDylibfree.html

149 :デフォルトの名無しさん:2017/05/27(土) 15:49:52.47 ID:ZQgU3vIU.net
>>148 つづき。
また、書くのを忘れた。
使いたい人がいたら、適当に使って。

Dim なんたら as function(こうたら) As なんたら
の使い方を覚えるべく、引数の類似したルーチンを見つけて、使いして、
文法エラーが出ないか、
だけを注意して継ぎ足していった結果が、>>148
したがって、FreeBasic用に1行Type 命令で定義されている変数型名に合わせているのではなく、
DLLファイルの内容に合わせて定義していった。
だから、変な型変換が入っていたりして動かないものも多いと思う。

150 :デフォルトの名無しさん:2017/05/28(日) 20:11:33.54 ID:RhTBneuP.net
>>148 つづき。
使いたい人がいたら、適当に使って。
http://www.dotup.org/uploda/www.dotup.org1263729.zip.html
ULH3300.EXE 導入すれば何とかなるだろうけど、最小限の動作試験程度の内容しかいれていない。
コマンド(C:\Program Files\なんたら\COMMAND.TXT)の使い方が結構忘れている。
あるいは、仕様が変更になったのかもしれない。
QBでは、バッチファイル作成ルーチンを作って、子プロセスでバッチファイルを起動していたから、スイッチなどはきれいさっぱり忘れている。
うまく動かない(子ディレクトリーの再帰読み出しと再帰解凍ができない)。
うまく動かない状態で、ArcDll.basには記載されている。

メモリーの内容を使った圧縮解凍(UnlhaExtractMem,UnlhaCompressMem)はコンパイルできなかった。
'ANSI 版とUnicode 版の2種類が存在する場合(AW)があるけど、区別していない。ANSI 版が起動しているはず。
UniCode( As WSTRING) を使っていないから。
今のところDBCSがわからなくて放置しているから、Uni-Codeまで手が回らない。

151 :デフォルトの名無しさん:2017/06/02(金) 23:57:18.03 ID:fEm5aE5c.net
マイクロソフトの作成した*.HファイルをFreeBasic用の*.BIファイルに機械変換した
という意味にとれる内容が記載されていたので、ちょっと探してみた。
Converting C Headers with swig
と、SWINGというソフトがある模様。しかし、現時点でDLハすべて失敗している。
https://sourceforge.net/projects/swig/?source=typ_redirect

152 :デフォルトの名無しさん:2017/06/04(日) 01:21:58.65 ID:YYutyyMm.net
検索してみたらそれらしきものが有ったけど
日付がかなり古い感じ
https://www.freebasic-portal.de/downloads/kommandozeilentools/swig-fb-wrapper-70.html
自分ではダウンロードもしていないし試していない
このサイトなら大丈夫だと思うけど自己責任で

こういうのも有るみたいよ
https://github.com/dkl/fbfrog
これは素のCだけでC++には対応してないみたい
参考にどうぞ

前にスレでswigの話してる時に揉めてたみたいね・・・

153 :デフォルトの名無しさん:2017/06/21(水) 08:52:54.72 ID:62o+/t06.net
test

154 :デフォルトの名無しさん:2017/06/21(水) 19:25:35.91 ID:62o+/t06.net
>>152
ドイツのサイトで
https://www.freebasic-portal.de/downloads/kommandozeilentools/h2bi-bas-134.html
を見つけた。現在ドイツ語を解読中。
コマンドラインから実行するように作成された複数のファイルがあるみたい。

swig_fb.exe を実行したら、| More とか >>HelpMess.txt のようなパイプ処理が使えないWin10だった。
現在SWIG Users Manual, E:\BasTool\SwigWinDoc\Manual\Contents.html を解読中
共通部分だけ解読すれば何とかなりそうなので、そんなに時間がかからないと思うけど
LZH A とLZH E の2つのコマンドが使えるから、急く必要性は低い。

155 :デフォルトの名無しさん:2017/06/23(金) 20:28:24.97 ID:sAip3Otx.net
以前から何回か書いているように、自己書き換えルーチンが存在する。
TakaDammyReturnCode4 = TakaErrorPointSach(IniNameString, TakaSubRoutineNo)
の行を各サブルーチンに追記するだけなんだけど
Function TakaErrorPointSach(IniNameString As String, TakaSubRoutineNo As Long) As Wata
ルーチン内に
TakaDammyReturnCode4 = TakaErrorPointSach(IniNameString, TakaSubRoutineNo)
行を書き込んでしまったのが自己書き換えルーチン。

コンパイルは正常終了。実行したら、ハングした。
サブルーチンコールに伴うスタック不足のエラーが発生しないで、ハングする。
どのくらい多重参照できるか調べていないが、原因の特定が困難な障害の原因になりうるので、注意してくれ。

156 :デフォルトの名無しさん:2017/06/24(土) 20:29:56.29 ID:tgLAy7wE.net
前スレの内容になるが
http://www.hi-ho.ne.jp/makoto_watanabe/FbEdit/tut2.htm#start
で、
#Define Text1 1001
に対して、IMEで日本語を入れると、じばけしてしまう。対応として
CONTROL "",IDC_LST1,"ListBox",0x50310141,3,0,40,12,0x00000200
のようにリストボックスを用意して、
いくつかの候補をINIファイルなどに保存して置き、
選択入力するようにした。
ソフトで行う内容なんて、初期状態はともかくとして、ある程度の期間がたつと同じようなことしかしなくなる。
入力に関して、自由度が低くても、なんとかならないことはない。
INIファイルなどはエディタを使って直接編集する。
エディタの同期起動については、SHELL命令などを参考にしてくれ。

157 :デフォルトの名無しさん:2017/06/25(日) 14:13:32.16 ID:0Z+EQ6/s.net
QB時代から使っていた
AString = "D:\TTT\*.*"
IF Dir$(AString) <> "" Then Kill AString
が、FreeBasicではうごかない。ファイルが削除されず残ってしまう。

ByRef ByVal前置句の辞書とか、過去にソースファイルから読み取って、
後で何かの処理に使おうとして保存している情報がある。
INI ファイルでは、32KB, 64KBの壁があり、32/3*2 = 16KBて、1ファイル21KBを超えないように管理する必要がある。
最大容量の2/3を超えないように最初は設計する。2/3を超えるようなことがあったらば設計しなおし、1/2まで減らす。
というのが、学生時代に学んだ在庫管理で、今は
https://www.sist.ac.jp/~suganuma/kougi/other_lecture/SE/stock/stock.htm
な内容がある。日曜プログラマーとしては、簡便に、多少効率が悪くても最適解を使わないで、簡易解を使うことになる。
1ファイルに入りそうもないと思ったらば、
1文字目でアルファベット別の30分割(A-Z、数字)とか
元ファイル別に本来の値を残して、簡易ファイルで検索するとか
の手法を使う。データベースファイルを構築できればよいのだが、今のところ成功していない。

このためだけに、特定のディレクトリーに分割保存したINIファイル一括削除ルーチンを作成した。
使いたい人は使って、何かの参考にしてくれ。ライブの内容は除いてある。
http://www.dotup.org/uploda/www.dotup.org1293573.lzh.html

158 :デフォルトの名無しさん:2017/06/28(水) 21:40:33.73 ID:KQoqOcRm.net
'declare function GetFileTime(byval hFile as HANDLE, byval lpCreationTime as LPFILETIME, byval lpLastAccessTime as LPFILETIME, byval lpLastWriteTime as LPFILETIME) as WINBOOL
lngWin32apiResultCode = GetFileTime(lngOpenFileHandle, @udtCreationTime, @udtLastAccessTime, @udtLastWriteTime)
の関係するフゃいるの時刻情報の取得で、
一連の処理に時間がかかる。CreateFile(), GetFileTime(), FileTimeToLocalFileTime(), FileTimeToSystemTime(), CloseHandle()
結果として、処理が終わる前に再度起動する(障害としてもう1回クリックしなおす)。
2度目の時に、訳の分からない動作をする。
重複起動を抑制するルーチンが必要となる。

159 :デフォルトの名無しさん:2017/07/03(月) 12:41:35.66 ID:Y68LdOdo.net
http://makoto-watanabe.main.jp/freebasic/tipsFileDialog.html
がエラーで動かないことは前スレに記載した。
一部変更して動くようになったので、記載する。障害(コンパイルエラー)が発生したのは、Function FileSelectFolder ()内で、ここの変更を記載する。

「 Dim fp As FOLDER_PROPS」行後に「Dim ppidl as LPITEMIDLIST」行を追記する。
「@bi.pidlRoot」という文字を見つけて「@ppidl」と変更、3か所。
挿入1行と変更が3か所。

Fun SHBrowseForFolder() での影響がわからない。
.pidlRootに値を定義していない影響がわからないから。何を定義するのかがわからないから。
コンパイルを通っただけだから、さらなる検証が必要。

160 :デフォルトの名無しさん:2017/07/04(火) 22:53:08.02 ID:3jSqiyCx.net
>>159 つづき。
FbEditで
ファイル、新規プロジェクト、DialogAsMain.tplを選択
プロジェクト、Add Existing、モジュールで、Sub01.Bas を作成
Sub01.Bas に、
http://makoto-watanabe.main.jp/freebasic/tipsFileDialog.html
をこぴー、既に上げた変更を行って、緑の▽をクリック、
がやった内容なんだが、
どういうわけが、起動モジュール以外の部分が初回で実行される。
'********************* Usage: *****************************
以後が実行された。

最後に END を書き加えたら、秀良したのだが、なぜが常駐している。
タスクマネージャーを起動して止めたけど、Winが不安定になって、再起動する羽目にあった。

マルチモジュールで開発する時には注意してくれ。
現在は、引数合わせを行っている。
このまま使ってもよいのだが、頭の悪いソースチェックルーチンが引数を理解できない、等の障害が出ている。
ソースチェックルーチンがわかりやすいように、引数を変更する(PTR引数をByRef引数に、Return (値)やFunction=(値)を(ルーチン名)=(値)に等)必要がある。
このあたりが理解できる変数表作成ルーチンはないのだろうか。
解読する必要がある人ならば
C:\tool\FreeBASIC\inc\win\commdlg.bi
を見てくれ。動くには動くのだが、
何か変更しようとすることを前提の描き方ではないので、
どのような変更ができるのか、定義値と参照値はどれか等、内容がよく理解できないでいる。

161 :デフォルトの名無しさん:2017/07/09(日) 21:50:01.50 ID:RJnMz3eK.net
かいとか

162 :デフォルトの名無しさん:2017/07/09(日) 22:04:22.47 ID:RJnMz3eK.net
If Instr(なんたら) Then の意味が分からなくて作成したもの。
IF <式> Then 内 <式>の値が0の時が False その他がTrue になる感じ。
http://www.dotup.org/uploda/www.dotup.org1302872.lzh.html
>>159-160 のつづき。ライブ化した。
http://www.dotup.org/uploda/www.dotup.org1302874.lzh.html
CtrlFile3String = GetMaintCtrlFileString(5, IniNameString)

TakaDammyReturnCode4 = TakaErrorPointSach(IniNameString, TakaSubRoutineNo)

Function BoxSelectFileString() から End Function 迄
をそっくり削除して、抜けている大域宣言をすれば、単独起動が可能だと思う。
低レベルな自己書き換えルーチンでも理解できるような、容易な状態に書き換えている。

163 :デフォルトの名無しさん:2017/07/13(木) 23:00:12.66 ID:jVjH3qh4.net
>>140 DBCSがらみの処理は、ほぼ終わりが見えてきた。
主だったルーチンは C:\tool\FreeBASIC\inc\win\shlwapi.bi を参考にしてくれ。
DBCSがらみは C:\tool\FreeBASIC\inc\win\winnls.bi だけではあるが、ファイル名処理に絡んで一部ルーチンが他の*.BIにも存在する。
Fun StrCmpNI()等で、DBCSの比較が可能なシステム参照が存在する。

文字関数は、http://makoto-watanabe.main.jp/freebasic/PgKLen.html 等が存在する。
VBでは、文字数で規定している。全角文字の「123」がVBでは3文字、FBでは6文字になる。
文字数で位置を指定する場合と、文字位置(DBCS1バイト目)を指定する場合の2つを作成する必要がある。
VBに移植したときに、削除したルーチンを復活させる必要もある。これは、表示文字に限って使うルーチンで、
QBmidString(Astring, STpoint, Haba) というMID$()関数を想定したときに、
文字幅 Haba の値によって、DBCSの途中で途切れてしまう場合が発生する。
途切れた文字を含めて返す場合と途切れた文字を削除して返す場合の2通りを考える必要がある。
QBmidString("123", 3,3)で、「23」と返すか「2」と返すかの違い。
同様に、Left$(), Right$()でも発生する問題だ。表示ルーチンなので、じばけを防ぐ程度の問題であり、少しぐらい表示部位が乱れても気にしない(余分に空白を確保しておく)場合となる。

この後に待っているのが、フォント関係。
http://makoto-watanabe.main.jp/freebasic/CptAscii.html#start
なんてあるけど
http://euc.jp/i18n/charcode.ja.html
をカバーしないと日本語化が終了しない。
現時点において、実行中にフォントの切り替えに成功していない。前途多難である。

164 :デフォルトの名無しさん:2017/07/21(金) 20:29:14.28 ID:2DaCfB3F.net
前スレで、アイコンの切り替えに関しての「切り替える方法」が見つかった、と書いた気がする。
か、アイコンの切り替えに成功していない。フォント処理の事前練習としてやってみたんだが、うまくいかない。

C:\tool\FreeBASIC\inc\gmp.bi の解読をしていた。日本語サイト https://na-inet.jp/na/gmp_ja/ をつらつら眺めるに
実数関係は、MPFR ライブラリ http://makoto-watanabe.main.jp/freebasic/tipsMPFR.html を使えという旨の記載があった。
自分でマクローリン(テーラー)をやるならともかく、その他のことだったらば切り替える必要があるかもしれない。
分数演算(mpq_型変数を使うもの)と整数演算(mpz_)をGMPに切り替えてゆく作業に入ることになるかな。
http://www.jma.go.jp/jma/kishou/know/bosai/dojoshisu.html とか
http://www.data.jma.go.jp/cpdinfo/riskmap/exp_qt.html の計算をするとなると、
30年*365日*24時間 =26万点の値を使うことになるから。
度数分布から確率分布計算をしてみたいが、QBの頃はメモリー不足でできなかった。

165 :デフォルトの名無しさん:2017/07/21(金) 20:36:30.45 ID:2DaCfB3F.net
>>164 つづき。
やたら資料の大きさ(データ数)を多くするのは、nを無限大に発散させると、すべての分布関数がガウス分布に近似できる、という大数則があるため。
Fit(あてはめ)をして、残差から誤差を推定して、Fitの度合い、つまり、間違う確率を検討づける。
ところが、ガウス分布以外の分布関数だと、検定精度が低いし、誤差も多い。

大量のデータを用意して、計量形検定が使えるようにした方が楽。計数型検定は面倒くさいから。

166 :デフォルトの名無しさん:2017/07/22(土) 15:15:30.05 ID:9DN5e6AB.net
>>164 つづき。
MPFR ライブラリ http://makoto-watanabe.main.jp/freebasic/tipsMPFR.html
のうち、 D:\bas\Projects\MPFR01\mpfr-fb.bi は、シングルモジュール用で、
こっちが普通にやっているマルチモジュールには対応していない。
D:\bas\Projects\MPFR01\mpfr-3.1.5\mpfr.bi のみで対応する必要がある模様。

前スレに書いた、自家製の可変長自然数演算ルーチンをGMPに切り替えるべく、ルーチンの分離を始めた。
可変長整数演算ルーチンと可変長分数演算ルーチンを使っているライブラリーが、可変長実数ルーチンをのぞ゜いてないので、
こっちは廃止予定。可変長倍精度ルーチンをMPFRに切り替えられるかどうかがカキだ。

このあたりからうまくいけば、三樽モデルに入れる。

167 :デフォルトの名無しさん:2017/07/30(日) 09:04:41.96 ID:u+yoeGtL.net
Font 関係。RCファイルを操作すべく
Resourcefile、add、Font、Font01と手入力、100→510と書き換え、Filename枠内をクリック、横のファイル選択ボタンをクリック
までは良かった。
Windows(C:)、Wndows で、Font ディレクトリーが存在しない。エクスプローラーでは存在する。
手作業でホルターをそっくりD:にコピーして、約340ファイルが存在したが、こちらも洗濯不能。
別のディレクトリーにコピーしたら、こちらは洗濯可能で、関係ファイルをシステムからローカルにコピーするツールを作成中。

168 :デフォルトの名無しさん:2017/07/30(日) 20:22:55.03 ID:u+yoeGtL.net
>>163 実行中のFont の切り替えについて。
http://www.hi-ho.ne.jp/makoto_watanabe/FbEdit/tut2.htm#start
関連で、システムホントに限るけど、成功した。
GetStockObject()で、ANSI_FIXED_FONTやANSI_VAR_FONTを読みだして使うとじばけ。
その他、5種は日本語表示可能。

SendDlgItemMessage() となる。
http://www.dotup.org/uploda/www.dotup.org1324099.lzh.html
にテスト結果を記載。ライブは省略してある。使いたい人は適当に使って。

169 :デフォルトの名無しさん:2017/07/31(月) 20:53:31.06 ID:hUdORezO.net
アイコン処理。
http://www.hi-ho.ne.jp/makoto_watanabe/FbEdit/tut1.htm#SECOND_STEP
で、LoadIcon()を使った処理が書かれているが、MSでは、LoadImage()を使うようにとの指示。
苦労の日々だったが、ひょんなことから解決された。

LoadImageゅょ
SendMessageゅょ
のあとに、SetDlgItemText( を入れ
DestroyIcon(ょ
DrawMenuBar(
となる。細かい内容は
http://www.dotup.org/uploda/www.dotup.org1325037.lzh.html
みてくれ。
使いたい人は適当につ買ってくれ。()内をいれるとはじかれてしまうので、()内はぬいてある。

170 :デフォルトの名無しさん:2017/08/02(水) 21:17:17.15 ID:wtPuYz7+.net
>>169 つづき。
書いた内容を Case WM_INITDIALOG 以降にコピーしても動作しなかったのが LoadImage() 系処理。

そんなわけで、ちょっと使い方に迷いが出ている。
見本のように、Case IDC_BTN18 以降のように書いていればアイコンの変更ができるのだが。

171 :デフォルトの名無しさん:2017/08/03(木) 20:57:23.32 ID:GxZl6DCx.net
>>168 で入力枠、EditText の日本語化が成功したことを知らせた。
日本語化が他の枠でも可能と思って、今まで後回しにしていた編集選択枠、ComboBoxの使用を開始すべく、
RCエディタで編集した、までは良かった。
編集選択枠がなぜか入力モードにならない。先は長い。

>>169
LoadImageゅょ
SendMessageゅょ
のかわりに
Sleep 1
とするとうまくいくかもしれない。
ライブ化して、Taka01U.Bas系にまとめたんだけど、任意のファイルからの入力指定がうまくいかない。
上述改変をしたら、使用可能になったから。
BIファイル作成ルーチンも書き換える必要があるので、起動時の処理は修正していないし、検討もしていない。
本体6ファイル 26KB、ライブ2ファイル、60KB。
本体は、BAS, RC, FBP, BIのテンプレファイルの他に、ライブが作成した2ファイルの構成。
2ファイルにしたのは、Case WM_INITDIALOG内に埋め込む処理と、サブルーチンコールとして使用する処理の2系統。
Declare 文やConst IniNameString as String、Const TakaSubRoutineNo As Long、TakaDammyReturnCode4 = TakaErrorPointSach(ょ行の処理は考えていない。
どのようにBIファイルの処理を構文解読ルーチンで理解させるかを考えたら、何もできなくなってしまった。

172 :デフォルトの名無しさん:2017/08/04(金) 21:17:19.91 ID:rK3gLdJI.net
Sleep 命令には注意が必要だ。
表示枠が消えて、ハングして常駐してしまう、という障害があった。
Sleep 命令が実行され、待ち状態に入ったが、
キー入力されたことにタスクが理解できず、いつまでも常駐している
という状態にあった。

WM_HELPINFO という機能があるらしい。
https://msdn.microsoft.com/ja-jp/library/2chd03xy%28v=vs.80%29.aspx
しかし、C:\tool\FreeBASIC\inc\win\winuser.bi には記載がいな。

>>171のアイコン切り替えで、WM_WM_NCUAHDRAWCAPTION = &h00AE、が発生するらしい。
これの意味が分からぬ。

173 :デフォルトの名無しさん:2017/08/09(水) 22:20:18.40 ID:LLNdI7OD.net
アイコン関係、初期化ルーチンで任意のファイルのアイコンに切り替える、という、VB時代の処理をあきらめた。
何かの事情が発生したときの処理に対応という方針で、いくつかのサブルーチンを作成した。

ここに、資源関係の処理を入れようとして、いくつかのサブルーチンを作成。
サブルーチンコールを管理している、つまり、Declear文が羅列されている、TakaCon1.BI作成ルーチンに登録するようにして、
大域変数は、全部共通にして、資源関係のサブルーチンの定数と、資源の定数を分離。
個別に処理する時には、#define 指定文字を指定するが、一括処理する場合は指定しないで、全部羅列した処理系を作成した。
一例だと、 IDC_BTN1の処理系に入ったら、 IDC_BTN?の新規割り込みを一括して抑制、
処理が終わったらば、もとの状態に戻すというルーチン。
大域変数を使えば簡単なんだが、Iniファイルに保存しておくようにした。
とここまでやるのに、結構時間がかかってしまった。

>>163 のDBCSがらみの処理がでてきてしまった。
カンマ形式のファイルの内、最も単純な形式、「,」で区切りの分割ルーチン。
二バイト目が,の場合におかしなことになってしまう。
かって一世を風靡した表計算ソフトのカンマ形式ファイルの書式、文字は"で囲む、という処理をしていた理由が分かったような気がする。
両脇を#で囲んだカンマ形式のファイルもあった。この理由もわかったような気がする。区切り記号が2バイト以上だったらば楽なんだけど、1バイトの「,」の処理には苦労した。
パーツの表題として、DBCSを記載して、RCファイルを読み取ると、この現象がわかるかと思う。
Byte単位の位置で返す Instr文、文字数で返すInstr文、DBCSとSBCSを区別しないシステム関数のInstr文の3つか゛必要な理由がわかってもらえると思う。

174 :デフォルトの名無しさん:2017/08/18(金) 20:19:53.91 ID:9L7+pOSL.net
前スレの続きになる。
'表示枠(Static)のxstyleを50000100, SS_NOTIFY 指定に変更したもの
'事象が発生し、以下の表示が行われる
に成功した。メッセージ枠の表示をオペレーター(末端ユーザー)が消去するルーチンとして
メッセージ枠のクリックをすること、のルーチンで作成してきた。
障害表示方法としてこの方法が使えるようになった。(消さないといつの障害ひょうじかわからなくなる)

http://www.dotup.org/uploda/www.dotup.org1342596.zip.html
使いたい人は適当に使って。

175 :デフォルトの名無しさん:2017/08/22(火) 21:28:01.26 ID:C4SDUJ2K.net
前スレにちょこっと書いた気がする。
今は昔、センターニュース、http://iss.ndl.go.jp/books/R100000002-I000000016279-00 をまとめて読む機会があった。
その中で、端末を使って遠隔操作する時の注意事項がかいてあった。
キーボードを眺めて、右端に、LED赤ランプがつくPRINTキーがある。
初めて使う時には、意味が分かってもわからなくても、このランプをつけて桶。
そうすれば、何かの役に立つときがある
こんな内容のコラムだった。Win系やPC-9801系を使っている人だと意味が分からない。
デカコンの端末としての機能を要求される機種を使っている人しかわからないだろう。

TV画面に表示される文字をそのままプリンターで印刷する機能で、
不慣れなオペレーターがおかしなことをしてしまった時に記録が印刷されているので、
管理者が復旧作業をするときの手助けになる記録を残している。

これは、結構便利な機能で、異常動作を非かく的簡単に割り出すことができる。
ゲームでは、全画面をゲーム画面として使ってしまうのが普通で、
とあるゲームメーカーでは、起動直後にRS-232Cを初期化して(初期化ルーチンは製品版にも残っている)、
ゲームの実行状態を出力し続けるルーチンとして存在した。

日曜プログラマーにとっては、障害復旧作業が容易であることが、優先する。
娯楽でやっているのだから、負担になるようなこと、原因が特定できにくい障害は排除しなければならない。

多少処理が遅くなったとしても、設計上発生しえない異常動作や入力値の異常値は記録しておく価値がある。
異常値は処理しないで即リターン、なんてやると、発見が困難な障害となりやすい。

176 :デフォルトの名無しさん:2017/08/26(土) 10:09:58.49 ID:YXn+YofD.net
オプションボタンの処理がなんとかできるようになった。
自動と手動があり、手動の方はさわりをやったぐらい。動作試験はいいかげん。
自動の方がなんとか動くようになったので、こんなところで打ち切り。
使いたい人がいたら適当に使って。Aを最初に作って、コピーしてGまで作成した。
Gで何とか動くので打ち切りとした。
この間に自動書き換えのライブルーチン Taka06E.bas を作成して、作成されたファイルが TakaRadio.BI
ライブファイル、Taka01B.Bas, Taka01S.Bas 等が含まれていないので、関係ルーチンはコメントなどに書き換えてくれ。

DBCS関係でちょっと苦労した。
DBCS非対応のルーチンにDBCSを含む処理をながすと、運が良ければ2バイト目をSBCS文字として処理してくれる。
発見方法としては、入出力文字のダンプしかないので気が付くのに遅れることがある。

177 :デフォルトの名無しさん:2017/08/26(土) 10:22:17.46 ID:YXn+YofD.net
>>176 これ忘れた。

http://www.dotup.org/uploda/www.dotup.org1349700.zip.html
使いたい人は使って。

178 :デフォルトの名無しさん:2017/08/26(土) 19:42:07.42 ID:YXn+YofD.net
DBCS処理で、特定の文字(全角空白等)に対する処理があり、CP932に限って処理していた。
他の日本語ページがあると面倒なので、一覧表を作成してみた。
'http://vanillasky-room.cocolog-nifty.com/blog/2007/06/windows-8ab4.html
'http://vanillasky-room.cocolog-nifty.com/blog/2007/06/post-156a.html

使いたい人がいたら適当に使ってみて。

http://www.dotup.org/uploda/www.dotup.org1350112.zip.html
MSの用語がよくわからぬので、最大値と最小値の範囲が適正な範囲になっているかどうかは不明。

179 :デフォルトの名無しさん:2017/09/02(土) 17:01:26.17 ID:+2eoALbI.net
*.RCファイルの解釈で、座標系についてわかったこと。
IDD_DIALOG DIALOGEX -4,-28,208,102  行、表示枠の大きさ。左上ユーザー領域を原点として、原点座標(0,0)と右下座標(208,102)、管理領域(-4,-28)を示す
CONTROL "IDC_STC",IDC_STC1,"Static",0x50000100,3,3,204,18 行の、各部品の表示座標(3,3,204,18)
に対して4+1 = 5, 28+1=29水平移動する。
Dim as tagRECT MainWaku, NowWaku, DialogWaku
TakaDammyReturnCode = IniFileRECTRead(CtrlFile7String, DialogSecName, DialogWaku)と IDD_DIALOG 行の読み取り値を構造体 DialogWaku に定義して
(前略) IniFileRECTRead(CtrlFile7String, SecName, MainWaku)と CONTROL "IDC_STC"行を MainWaku に定義する。
MSReturnCode = OffsetRect(@MainWaku, 1 - DialogWaku.Left, 1 - DialogWaku.Top) と、水平移動して、
(前略) MapDialogRect(TakaHWND, @MainWaku) と座標変換する。
以上の作業で。
hBtn = GetDlgItem(TakaHWND, IDC_STC1): '個別表示物のハンドル(枠番号)を取得, hBtn=0でエラー
MSReturnCode = GetWindowRect(hBtn, @MainWaku): 'スクリーン座標の取得
と得られる表示部品の座標と同じ値が得られるようになった。

180 :デフォルトの名無しさん:2017/09/03(日) 19:38:14.65 ID:sgzMDNBD.net
FreeBasic の想定外の仕様があった。
'Public Function IniFileWrite1 OverLoad(FileString as String, SecNameString as String, KeyNameString as String, KeyValBool As Boolean) As Xusa
Public Function IniFileWrite1 OverLoad(FileString as String, SecNameString as String, KeyNameString as String, KeyValLong As Long) As Xusa
とBool型と整数型の宣言があるときに
IniFileWrite1("D:\aaa.txt", "Tekito01", "tekito02", 0)
と即値で参照すると、 KeyValBool As Boolean で宣言したルーチンが選択される。

Str$(KeyValLong) 値が「False」と解釈される。整数だったらば、0&等で参照すればよいのだが、面倒なので
前者のルーチンは廃止した。Iniファイルへの出力ルーチンなので、STR$(なんたらBool)と文字化して、文字列として参照するように変更する、
VBの頃はIniFileWrite()はすべて文字だったので、もとに戻した内容となっている。
文字列と数値だけならば、Linkのほうで間違いをしても、極端な間違いとならないだろうという推定からの対応。
即値「0」がBool型定数と解釈されたことに驚いた。

変数型の間違いによる障害は極めて発見しにくいので、注意してくれ。

181 :デフォルトの名無しさん:2017/09/05(火) 21:17:38.14 ID:h569Mykb.net
スタイルシートを色々いじってみたが、コンボボックスが想定したような動作(V.B.6様表示動作)をしない。
しばらくはListBoxで乗り切る予定。
コンボボックスを立て幅が任意に変わってくれるListBoxとして使っていた変態のたわごと。

ライブはないけど、使いたい人は適当に使ってちょうだい。
https://www.dotup.org/uploda/www.dotup.org1358260.zip.html

Taka06系ライブは、使い方の分かるパーツがなくなったことで、ここまでで打ち切りかな。
作画ルーチンがわからないので、ヒ゜クチャボックス等が使えないし
http://www.hi-ho.ne.jp/makoto_watanabe/FbEdit/tut3.htm#start 等
なんとかバーの使い方もよくわからないし、

MPFR系ライブ Taka05L.Bas
http://makoto-watanabe.main.jp/freebasic/tipsMPFR.html
で、変数の解放(終了処理)チェックルーチンが作りかけ。
メモリー関係の終了処理に関係した障害は、発見が極めて困難で、現象が一定しない障害になりやすい。
だから、効率(速度)を重視するか、効率を犠牲して不連続領域の発生しやすい使用直後の終了処理をするか、それとも使う変数を大域変数にして一括開始処理・一括終了処理にするか、で論議が分かれる。
ここの皆さんはどれを選ぶのであろうか。

182 :デフォルトの名無しさん:2017/09/05(火) 22:30:41.26 ID:h569Mykb.net
>>181 ツールバー関係がなぜ使い方がわからないかを説明しておいた方がよいかな。

QBの頃に開発したサブルーチン、SUB LineInputMakeCmdLine() がある。
画面上端3行のみ占有、その他の行はReturn時に復旧させる。
Iと入力したら、Input命令と解釈して、次の候補、Txt, CSV, CCC, T10, TSPの選択画面になって、、、、
とIコマンドに対する候補を表示して、選択するという機能。
これをツールバーに割り当てたい。
最初に命令の候補が表示されていて、一つを選択すると、選択肢が現れるという、動的割り当てを行う。
これがわからない。見た感じだと、静的割り当てしかできない。
V.B.では、命令選択をオプションボタンで決定して、候補を羅列、HideかEnableかの使い方があるが、候補を特定するようにした。
ツールバーで動的割り当てをする方法がわからないから、V.B.で使っていた方法で乗り切ろうかと思う。

183 :デフォルトの名無しさん:2017/09/10(日) 02:07:35.37 ID:6Eba6vnN.net
起動画面の拡大縮小に伴う、配置部品の拡大縮小表示がなんとか、動くようになった
V.B.の処理をそのまま移植するような調子で作った、DP系、2016.08から始めて1月で挫折した
手作業でいろいろやったのが2017.02-04、これはこれで完成したのだが、ちょっといじろうとすると、何がなんだかわけがわからない状態になってしまう
極端な場合、最初から作り直した方が早いという現象。パーツを2-3個減らして修正しようとして、挫折した6月
*.RCファイルに配置された状態から、そのままの位置配置で拡大縮小ができるようにと、始めた
なんとか、MPRFの*.BIファイルのように、BIファイル内に関係ルーチンを保存させて、これを参照するという方法に切り替えた
親ルーチンファイルごとに専用ルーチンを自動的に作成するという方向性で、Taka06C.Bas からTaka06I.Basを作成、癖をつかんだところで、Taka06B.Basを作成することとなった
なんとか、完成できた
>>181 のナントカバーについて。ツールバーはFreeBasic専用DLLファイルがある模様。いろいろな小細工は不可能に近い。
ステータスバーが、何とか見つかって、DimChk74系で作成
ステータスバーの位置を読み取ることで、画面再上端と画面最下端の4店の取得に成功
やっと、「クライアント座標系」という名称の物が、QBの論理座標系に相当すること
RCファイルの座標系は、ダイヤろくの座標をDialogWakuに保存して、各部品の座標をMainWakuに保存して
OffsetRect(@MainWaku, 1 - DialogWaku.Left, 1 - DialogWaku.Top)
MapDialogRect(TakaHWND, @MainWaku)
の演算を行うことで、「クライアント座標系」に換算できる
枠変形時に発生する事象では
WakuWidth = LOWORD(lParam) 'クライアントエリアの新しい横幅
WakuHeight = HIWORD(lParam) 'クライアントエリアの新しい高さ
WakuType = wParam
'GetClientRect(hWin, @rect) 'WakuWidth = rect.right: WakuHeight = rect.bottom とそれぞれ同じ値
と、変形後のクライアント座標を入手できることをつかんだ
何とか出来たのがコレ、使いたい人は適当に使ってくれ
https://www.dotup.org/uploda/www.dotup.org1361779.zip.html

184 :デフォルトの名無しさん:2017/09/16(土) 09:04:18.02 ID:0k/O/pWh.net
https://www.dotup.org/uploda/www.dotup.org1366764.zip.html
ライブはないけど、使いたい人は適当に使ってちょうだい。
V.B.の頃から使いだしたが、ListBoxで複数列の表示をする方法がある。
VBなので、対応値を各候補に割り当てる(関連付ける)方法は見つけられなかった。
キーになるもの、例えば通し番号と、いくつかの列をもつ行を表示して、
通し番号から、保存してある値を参照する、変更したら、全部一括してLISTBoxに候補を設定する
という使い方をしていた。何とかそれらしき、ルーチンの作成に成功した。

Taka06系ライブで、BIファイルを作成している。作成したBIファイルはつけた。

185 :デフォルトの名無しさん:2017/09/23(土) 00:11:15.41 ID:TIuQkNLj.net
>>169-172 >>173
Icon関係、こんなのをみつけた
http://www.nitoyon.com/vc/reference/gui/static.htm
表示している最中に DeleteObject してしまうと、Bitmap が表示されなくなってしまうので、親ウインドウを閉じる直前に DeleteObject しなければならない。
と、SendMessage()直後に開放するのではなく、タスク終了時に開放する必要があるとの記載と読み取れる。

186 :デフォルトの名無しさん:2017/09/27(水) 19:31:08.07 ID:dFhB3tDJ.net
http://www.hi-ho.ne.jp/makoto_watanabe/FbEdit/index.html
「新規プロジェクト」内「テンプレート」に関する情報
Addin の場合
作成された *.Bas ファイルに
「#include "..\..\Inc\Addins.bi"」行がある。これは、
C:\FbEdit\Inc\Addins.bi
を示すらしい(ディスク内にこのファイル以外の同名のファイルが存在しない)。
D:\bas\Projects\ExeType1\ExeType1.bas
なんて別ドライブにて作業している場合には、
「C:\FbEdit\Inc\*.*」を「D:\bas\Inc\*.*」にコピーする必要がある。
作成された *.Bas ファイルに関して、「#include once "windows.bi"」行の後に
「#Include Once "win/commctrl.bi"」を書き加える必要がある。
これで、内容を修正していない状態でのコンパイルは通る。

Console の場合。
そのままでコンパイルは通るが、マルチモジュールにと複数のファイルを登録したら *.O がないとしてコンパイルできなかった。

Tabstrip の場合。
「declare function DlgProc(byval hWnd as HWND,byval uMsg as UINT,byval wParam as WPARAM,byval lParam as LPARAM) as integer」行が
コンパイルエラーで動かない。Declare文に合わせるか Function文に合わせるか、で後者を選択した。
つまり、前述Declear文をコメント行に変更して、
「declare Function DlgProc(byval hDlg as HWND,byval uMsg as UINT,byval wParam as WPARAM,byval lParam as LPARAM) as bool」文を追加した。

MS用語で、コールバック関数、以前使っていた用語では、ユーザー定義ルーチン、なので、
参照側、システム(スーパーバイザー)の定義がどうなっているのかをみないと、正確な内容はわからない。

現在チルドレン(GW?QB?用語)で参照ルーチンを作成できないか、あるいは、DLLファイル化するか、で迷っているところ。
多分、「ユーザー側(プログラム)で、連続した領域を要求したにもかかわらず、システムが確保できなくて、無理に実行して、ハングした」と思われる障害で苦しんでます。
https://mevius.2ch.net/test/read.cgi/tech/1475897582/856-897

187 :デフォルトの名無しさん:2017/09/30(土) 06:57:11.47 ID:0ZNFHa8Z.net
360互換機を使っていたころ、コマンド行の解釈は専用の内部タスクがあった。
表に出ることはないタスクなので、名称は覚えていない。システムを示す、コマンドの表題の末尾に「$」が記載されていたことを覚えている。

>>186 に書いた通り、領域の確保ができない場合に、分割する必要がある。
「自分で考えるよりも、誰かがやった歴史通りにまねをできるように」と学ぶのが、義務教育の社会科の中の一分野「歴史」。
分割するのに、360の歴史に従って、コマンドラインの解釈を分割することにした。
FBのコマンドラインに準じて、Fun SwitchFileRead2()系統を作成した(前スレ参照)が、これらは全部廃棄。
360に準じて作成し、今回QBに移植したFun SwitchFileRead()系統を復活させた。
前者はコマンドラインを順次解釈しているに対して、後者は前置詞・語・後置詞、修飾語の区切りが規定されているので、汎用化しやすい。
前者は、とうしてもスイッチの解釈が各ユーザー(プログラム)専用になってしまう。
後者は汎用性があるので、無意味なスイッチでも通過してしまうという欠点を持つが、主プログラムで使わないスイッチを読み飛ばしてしまうことで対応可能。

別タスクにして、チルドレン(GW(QBの前のバージョン)用語)で芋づる起動することを前提の Shell 命令
http://makoto-watanabe.main.jp/freebasic/PgShell.html
を使うことになる。タスク間の連絡を何にするか、迷ったところで、ハンチ等システムを復活させることにした。

188 :デフォルトの名無しさん:2017/09/30(土) 07:13:23.29 ID:0ZNFHa8Z.net
ハンチ等システム、内部構造は、TARファイルやISHファイルに類似したもので、
Unpack(語句の後ろに未使用の領域がある)データファイル、固定長文字列を単位としたランダムファイルとほぼみなせる。
それで、RANDOMファイルをつらつら眺めるに
http://makoto-watanabe.main.jp/freebasic/PgRandom.html#start
'C:\tool\FreeBASIC\examples\files\random.bas
'C:\tool\FreeBASIC\examples\files\records.bas
セクターの定義が Type命令を使うように替わった。TYPE命令で文字列を定義すると、文字列の区切りにヌル文字(&H00)が挿入される。
QBでは、セクター番号を示すらしい2バイトが挿入された。
ということで、末尾に &h0D, &h0Aを挿入して、テキストエディターで直接編集する、パンチカード等にふさわしい手法が使えない。
かといって、Binaryでやったらば、分量が増えて分割した意味がなくなってしまう、Taka01J..Bas は50KB程度しかないファイルだから。
バイナリエディタ、Stirling.exeで見やすくするために、16バイトの倍数に分割して、先頭と末尾に記号を置いて、、等の作業を始めた。

189 :デフォルトの名無しさん:2017/09/30(土) 07:25:12.70 ID:0ZNFHa8Z.net
>>186 の後に色々書いたらば、拒否されたので、用語だけ。
エディターボックスの内容が変わったことを示すルーチン
Case EN_CHANGE
'内容が変わる直前
Case EN_UPDATE
'内容が変わった直後
Select Case LoWord(wParam)
Case IDC_EDT1
GetDlgItemText(hWin, IDC_EDT1, @buff, SizeOf(buff))
Buff = "変更 :" + Buff
SetDlgItemText(hWin, IDC_STC2, @Buff)
End Select
Case EN_MAXTEXT
'挿入時にスペースを使い切った。
End Select
Case WM_SIZE
と、Case WM_SIZE の並びに挿入する。

190 :デフォルトの名無しさん:2017/10/02(月) 19:33:39.22 ID:pJ+UmT/H.net
>>186 の後に色々書いたらば、拒否されたので、用語だけ。
パーツの文字色と背景色の変更方法
Case WM_SIZE の並びに以下のように挿入する。
case WM_CTLCOLOREDIT
''エディット コントロールが描画されようとしています。
case WM_CTLCOLORLISTBOX
''リスト ボックスが描画されようとしています。
case WM_CTLCOLORBTN
'ボタンが描画されようとしています。
case WM_CTLCOLORDLG
'ダイアログ ボックスが描画されようとしています。
case WM_CTLCOLORSCROLLBAR
'スクロール バーが描画されようとしていることを示します。
case WM_CTLCOLORSTATIC
'スタティック コントロールが描画されようとしています。
Dim As HDC hdc = Cast(HDC, wParam)
Dim As HWND PatsHWND = Cast(HWND, lParam)
if( GetDlgItem(hWin, IDC_STC2) = PatsHWND) Then
SetTextColor(hdc, BGR( 128, 128, 255))
SetBkColor(hdc, BGR( 0, 0, 128))
Dim PatsHBRUSH As HBRUSH = Cast(HBRUSH, GetStockObject(NULL_BRUSH))
return Cast(BOOL, PatsHBRUSH)
End If
Case WM_SIZE
と、マーこんなところかな。

191 :デフォルトの名無しさん:2017/10/02(月) 20:12:31.55 ID:pJ+UmT/H.net
色関係
http://makoto-watanabe.main.jp/freebasic/PgRgb.html
Windows APIプログラマのための注意: Windowsでの衝突を避けるために、Windows参考のRGBというマクロ名は、FBヘッダーでは、BGRに改名されました。
の意味が分からなかったが、 C:\tool\FreeBASIC\inc\win\wingdi.bi の先頭に名称を変更したとの記載有。
どこか忘れたけど GetRValue()とGetBValue()を逆に使っている*.Basが入っているはず。
COLORREF型変数を16進ダンプすれば、内部構造が見当つくはず。
MSReturnCodeLR = SendDlgItemMessage(hWin, IDC_PGB1, PBM_SETPOS, 50, 0) 'メモリ50 を表示
SendDlgItemMessage(hWin, IDC_PGB1, PBM_SETBKCOLOR, 0, MScolor) '背景色設定
とプログレスバーを使って、色はチェックした。
プログレスバーは Select Case LoWord(wParam) 内 Case IDC_BTN1から色を直接制御できる。

DLLファイル関係。
http://www.hi-ho.ne.jp/makoto_watanabe/FbEdit/tut5.htm#start
の「Dim Shared hRichEdDLL As HMODULE 」の後に使い方が書いてある。

192 :デフォルトの名無しさん:2017/10/03(火) 19:11:06.84 ID:GaATZUfo.net
>>186 
多分、「ユーザー側(プログラム)で、連続した領域を要求したにもかかわらず、システムが確保できなくて、無理に実行して、ハングした」と思われる障害で苦しんでます。
https://mevius.2ch.net/test/read.cgi/tech/1475897582/856-897
の関係。前スレで、https://www.slideshare.net/MoriharuOhzu/ss-14083300 なんて話題があったわけで、
複数機能を分割してツギハギの算譜を構築していったわけだが、巨大になりすぎた。
VB ( >>198 でVBとQBがごっちゃになっているところがある)で、同じようにメモリーが不足して、非常駐部(*.frm)に分けた内容を常駐部に戻したために、同じような案件が発生した。
元々Win(NT系)では、640KB(又は720KB)の制限が残っている。Win 10 32Bit系でも残っていた。
掲示板の内容を見れば、表に出ることを嫌う内容みたいだ。
サブルーチンやモジュールを参照する管理領域(オーバーレイローダー、ルートモジュール)を最小にして、
オーバーレイ領域を大きくとる、つまり、オーバーレイ領域同士の参照を禁止する(GWの文法)、複数のモジュールで共通するルーチンはそれぞれに分配する、という手法。
大学のサイトで、解説があった。
http://pepper.is.sci.toho-u.ac.jp/index.php?plugin=attach&refer=%BB%B3%C6%E2%A4%CE%BC%F8%B6%C8%A4%CE%A5%DA%A1%BC%A5%B8%2F16%BD%A9%2F%A5%AA%A5%DA%A5%EC%A1%BC
%A5%C6%A5%A3%A5%F3%A5%B0%A5%B7%A5%B9%A5%C6%A5%E0&openfile=8-3_%C2%E7%CD%C6%CE%CC%CC%E4%C2%EA%A4%C8%A5%AA%A1%BC%A5%D0%A1%BC%A5%EC%A5%A4.pdf
http://www-higashi.ist.osaka-u.ac.jp/~y-nakamr/lecture/systemsprograming2008/sp20081015.pdf
DLL化するには、閉塞されたモジュールにしないと面倒(CollBack関数の使用)なので、チルドレンの使用になると思う。
VBでは、10-60KB程度の内容を*.frmに分割することで、常駐*.Bas領域の容量不足に対応していた。
64bitはあと1-2世代たたないと恐ろしくて使えない。MSが8086以来崩せなかった部分だから。

193 :デフォルトの名無しさん:2017/10/05(木) 21:21:49.11 ID:NosQ3QuL.net
>>186
C:\FbEdit\Inc\Addins.bi 関係の情報。同一ディレクトリー内に有ったファイルについて、の調査結果。
わからないものが多い。また、英語ソフトの為ファイルの導入をしていないものもある。
複数台体制になったらば、1台は試験に使えるのだが、現状では1台体制の為動作試験は見送った。
もし、関係ファイルを導入したりして、使うことがあったらば関係情報を知らせてほしい。

''D:\bas\Inc\SpreadSheet.bi
'' sprsht.dll 不在に付不動の障害有。類似名に splsht.dll というファイルがあるらしい
''C:\tool\FbEdit\Projects\Samples\SprShtDemo\SprShtDemo.Bas
'' http://www.fltk.org/wiki.php?V341+TC+Q sprsht 1.2.2 sprsht.exe WIN executable
'' 表計算ソフト(sprsht.exe)

'' D:\bas\Inc\showvars.bi
'' FbEdit 出力画面に何かを表示させるためのルーチン

'' D:\bas\Inc\RAResEd.bi
'' C:\tool\FbEdit\Projects\Addins\ReallyRad\ReallyRad.bas に使用例有

'' D:\bas\Inc\RAProperty.bi
'' C:\tool\FbEdit\Projects\Addins\ReallyRad\ReallyRad.bas 使用例
'' C:\tool\FbEdit\Projects\Addins\FbDebug\FbDebug.bas 使用例

'' D:\bas\Inc\RAHexEd.bi
'' 使用例見つからず

'' D:\bas\Inc\RAGrid.bi
'' C:\tool\FbEdit\Projects\Samples\GridDemo\GridDemo.Bas 使用例
'' https://autohotkey.com/ の AutoHotkey に使われている RAGrid.dll を使った処理。
'' マウス・キーボードの自動入力。

194 :デフォルトの名無しさん:2017/10/05(木) 21:23:23.27 ID:NosQ3QuL.net
>>193 つづき
'' D:\bas\Inc\RAFile.bi
'' C:\tool\FbEdit\Projects\Addins\SnipletAddin\SnipletAddin.bas 使用例

'' D:\bas\Inc\RAEdit.bi
'' 使用例 C:\tool\FbEdit\Projects\Samples\RAEditTest\RAEditTest.bas

'' D:\bas\Inc\RACodeComplete.bi
'' 使用例発見できず
'' https://github.com/JohnTroony/Plugme-OllyDBGv1.0/tree/master/IDAFicator%20v2.0.11.45 に、RADASM の構成ファイルとして記載有。
'' http://masm32.com/board/index.php?topic=229.0 より RadASM.zip のDL可能 DLしたが *.DLL不在
'' https://forum.tuts4you.com/index.php?app=forums&module=forums&controller=topic&id=14483 著者サイト、サインアップという文字があるので追跡を中止

'' D:\bas\Inc\Addins.bi
'' FbEdit で Addin をテンプレートで選択したときに使用される。

以上、解読・ネット検索した結果

195 :デフォルトの名無しさん:2017/10/09(月) 09:57:01.97 ID:OFonel0E.net
配列の初期化
http://makoto-watanabe.main.jp/freebasic/PgDim.html
で、要素を書き並べるのだけれども
数があわない、位置があわない、等で散々。
こんなものを作ってみた。1次元、符号付単精度整数のみ対応。
>>186 に書いた通り、Taka06系ライブが容量不足で動作不能でハングしている。
したがって、DBCS非対応、チェックボックス・オプションスイッチ等非対応、等 Taka06系を使用しないで作成している。
以前書いたように、英語は天才的にできないので、Google機械翻訳に頼った。

https://dotup.org/uploda/dotup.org1358694.zip.html
使いたい人は適当に使ってちょうだい。

196 :デフォルトの名無しさん:2017/10/09(月) 12:35:42.48 ID:OFonel0E.net
配列の初期化
http://makoto-watanabe.main.jp/freebasic/PgRedim.html
で、
Redim は、固定サイズの配列では使えません - つまり、範囲固定の配列には Dim を使います。
と書かれている。「使えない」ということで、何かしらのエラーが発生する物と思っていた。

大域変数で
Dim Shared TakaCommFile(TakaTakaFigLSU To 0) As String
Dim Shared TakaCommFileFig(TakaTakaFigLSU To 0) As Long
と領域を確保して、別モジュール(ファイル)にある
PunchFileAutoData(TakaCommFileFig(), TakaCommFile())
と、値を定義するルーチンを呼び出し
ReDim iTakaCommFile(TakaTakaFigLSU To 0) As String
ReDim iTakaCommFileFig(TakaTakaFigLSU To 0) As Long
と、値を初期化して使用するつものが
値が定義されない。Redim文を除いたらば定義された。
動的配列と静的配列の違いを子ルーチン側で判断する必要がある。
あるいは、静的配列を廃止して動的配列のみに統一するとか、
いずれにしても、配列の引数関係を追跡する必要が出てくる。

197 :デフォルトの名無しさん:2017/10/10(火) 19:42:36.81 ID:VvL8ZiBO.net
>>190 のつづき。
case WM_CTLCOLORSTATIC
'スタティック コントロールが描画されようとしています。
If( GetDlgItem(hWin, IDC_RBN1) = PatsHWND) Then
'If( GetDlgItem(hWin, IDC_STC2) = PatsHWND) Then
の2系統
case WM_CTLCOLOREDIT
''エディット コントロールが描画されようとしています。
If( GetDlgItem(hWin, IDC_EDT1) = PatsHWND) Then
の1系統で背景色が変更可能。

著作権法で注意する点として、
誰が書いても同じ結果にしかならないこと
は、著作権が成立しない。
Tipsサイトがあるけど、それぞれのTipsに著作権はほぼ成立しない。例外として、変数名の命名法等
Tipsサイトでの著作権は、どの内容について書いたか、という、取捨選択した結果について成立する。

今までいろいろ書いてきたけど、Freebasicの算譜については、だれがやっても同じ結果にしかならない内容を特に選んだ。
パンチラシステムという名称は書いたけど、パンチラシステムそのものについては書いていない。
UnPackデータファイル、別の言い方をすれば、ランダムファイルの使用法しか書いていない。
ランダムファイルの使用法は、だれがやっても同じ結果になる。
したがって、著作権が成立しない。

現象の存在を知らせる内容、これは報道になるので、著作権法の規制にならない。

198 :デフォルトの名無しさん:2017/10/13(金) 23:33:57.30 ID:4WiG0cBL.net
>>187
なんとか、コマンドライン解釈部の分離に成功した。
実行形式で、450KB。
分離に成功したのは、Taka01J.Bas、ソースファイルで100KB。
100KBの内50KBは動作試験ルーチン、つまり、各種エラーチェックルーチン。
QB用パンチラシステムでは、各種エラーチェックをテキストエディタの各種機能に依存していた。
自前で作るのが面倒だから、エディターでチェックできるようにいろいろ小細工をやっていたわけだけど
FBでは、ヌル改行で、キャリッジリターン改行で゜はない。
結果として、エディタ任せのチェックルーチンを自前で作ることになってしまった。
こうなると、パンチラではなくなってしまう。360の頃に、1箱2000枚のパンチのチェックを手作業でやったことがある。
機械をつかわないで手作業で処理ができるということが、パンチラシステムの根底にあるのだが、
ヌル改行は手作業を著しく面倒にするバイナリエディターの使用に依存してしまう。

EMSの雑誌記事を思い出すわ。20KBの常駐部(コンペ゛ンショナルメモリー)を確保するために
500KBの実行ファイルが存在するというソフトの存在。

199 :デフォルトの名無しさん:2017/10/14(土) 11:13:12.14 ID:io4DSZT5.net
>>186-187 >>192 でチルドレンと書いた処理系がある。
FBの内容を読んでいたら、FBにチルドレンが搭載されていることに気が付いた。
http://makoto-watanabe.main.jp/freebasic/PgChain.html#start

よんだ範囲だと、QBやGWと内容が異なっている。
>外部プログラムが終了すると、実行は、Chain 呼び出し直後の部分から、再開します。
とあり、QBやGWでは継続処理ではなく、その場で終了してしまう。
それで、パンチ等に継続処理の命令を書いて、先頭から実行しするようにChain参照を続ける、パンチ等に継続命令があったらば継続するという処理を描いていた。
今は昔のQB, GW。

200 :デフォルトの名無しさん:2017/10/16(月) 19:45:20.78 ID:Rl7RwqK1.net
MS の
InDir2ZString = "SCR.exe"
InDir2PTR = @InDir2ZString
'MSReturnCode = PathFindOnPath(@InDir1ZString, @InDir2PTR)
で、SCR.exeのフルパスを取得できないでいる。
結局、GWの環境変数取得・分離分割・実行ファイルの絶対ファイル名取得、ルーチンが復活。
>>198の Taka01J.Basのパンチラファイルの構造を変更して、参照する外部ルーチンのフルパスを保存するようする予定。
今週いっぱいこれにかかりきりだ。
ところで、MSのスプーラはどのあたりを見れば書いてあるのかな。
見つからなければ、自前で作るしかないので、最も簡単な処理方法を選択することとなる。
実行形式のファイルを自己ディレクトリーに共通領域からコピーして、自己タスクとして起動する方法が最も簡単。
レジストリーを使わないで、自己の存在する場所のファイルのみを使っていれば、同じ名称のべ゜つタスクになるので、資源の奪い合いが発生しない。
もっとも単純かつ最も簡単で、一番始末に困るスプーラー(?)となる。

201 :デフォルトの名無しさん:2017/10/27(金) 20:48:40.11 ID:h0yxU7mD.net
Declare Function FileSelectString(
と宣言して
Private Function FileSelectString OverLoad(
Private Function FileSelectString OverLoad(
とルーチンを作成したら、なぜかFileSelectString()の大域参照ができるようになっていた。
局所参照ルーチンが大域参照可能となると、発見しずらい障害になるので、要注意。

202 :デフォルトの名無しさん:2017/11/08(水) 22:38:42.08 ID:yc7uDHtl.net
子プロセス(GW用語)から子プロセスを呼び出して、
30KB節約しようとした。
一つ目は比較的簡単にできた。
2つ目は、怪しげな変数を返す。
したがって、現在混乱中。
パンチラシステムで、複数のルーチンをチルドレン(GW用語)すると、日常的に発生する怪現象の一つ。

情報処理用語では、時差問題、と呼ぶこの現象で、今月いっぱいかかってしまうかな。
FBはコンパイラーなので、処理情報を標準エラー出力に出し続けて、追跡して、障害を特定する必要があるから。
インタープリンターだと、適当なところにSTOP文を入れて、print文で表示させながら、追跡していくのだが、
コンパイラーだと、状態を標準エラー出力に書き出させて、見当つけるしかない。
デバッカー?、そんな高級なソフトは使えません。MSのデバッカーがなぜか動作して、訳の分からない状態になっていますので。

203 :デフォルトの名無しさん:2018/01/02(火) 14:02:32.56 ID:5TyhEdY1.net
あけましておめでとうございます。
相変わらず、時差問題に苦しんでいます。

204 :渡辺真:2018/02/12(月) 23:10:18.67 ID:J2JlECET.net
一年ぶりに、FreeBASIC 日本語版マニュアルを更新しました。
2018年1月18日までの英文版 Wiki の変更を反映したつもりです。
http://makoto-watanabe.main.jp/freebasic/

CHM 版は、下記でダウンロードできます。
http://makoto-watanabe.main.jp/freebasic/FB-manualJP20180212.zip

修正すべき点、加筆すべき点など、ご指摘、ご意見を、お願いいたします。
FreeBASIC で遊んでみて下さい。

205 :デフォルトの名無しさん:2018/02/16(金) 02:34:42.11 ID:RDbDi6VM.net
漏れは正しいライセンスを遵守する

Documentation
The documentation is released under the GFDL license.

206 :デフォルトの名無しさん:2018/02/16(金) 13:48:53.52 ID:ecrQZx2F.net
勝手にやってろ
そもそも向こうに行けよ

207 :デフォルトの名無しさん:2018/02/19(月) 17:56:30.67 ID:pz2UhWki.net
orz

208 :デフォルトの名無しさん:2018/02/28(水) 15:07:54.17 ID:lSHAMaGx.net
戻ってきたら相変わらず。

>>55
手遅れだが、割と平和でまともな人の多い OSDN へ移行した方がいいと思うよ。にちゃんはダメだね。
が、ここ数年で高性能な BASIC 系言語が出ているから苦戦すると思う(幸い国内ではあまり知られていない)。

チラシ裏
Vzエディタにしろ QBASIC にしろ古いものを復刻しようとすると、必ずユーザー側で変なヤツが現れて、まとわりついてコミュニティを破壊するからなあ。古いものは思い出にしたまま、使い続けるなら専門修理業者任せのほうがみんなにとって幸せなのだろうな。

209 :デフォルトの名無しさん:2018/02/28(水) 19:20:55.37 ID:3pm9mJ+R.net
ここはバカ専用スレなので、下記スレに移動してな
ttp://mevius.5ch.net/test/read.cgi/tech/1486254007/

210 :デフォルトの名無しさん:2018/03/01(木) 02:11:38.86 ID:xKpbk5NS.net
>>208
ドキュメントを原文の専門修理業者任せにしたままだったほうが良かったのでは?って思ったよ。

211 :デフォルトの名無しさん:2018/03/02(金) 22:38:10.83 ID:nrwBdfCB.net
ぐちぐちうるせぇ
折角別に有るんだからそっちへいって二度と来るな
スレ違いです

212 :デフォルトの名無しさん:2018/03/11(日) 10:31:01.66 ID:zUkaU6dD.net
AppGameKit Mobile Released on Android!
https://www.thegamecreators.com/post/appgamekit-mobile-released
https://play.google.com/store/apps/details?id=com.tgc.agk.mobile

金曜日、2018年3月2日にTGC NewsのAppGameKit News、

今日、Androidプラットフォーム上のAppGameKit Mobileがリリースされました。
今では、AppGameKit Mobileでどこでもどこでもアプリ、デモ、ゲームを作成して、「外出先で」コーディングすることができます。

この完全に無料のAppGameKitのバージョンでは、通常のAppGameKitスクリプト言語を使用してコードを作成してから、プロ
ジェクトをコンパイルしてデバイス上で直接実行することができます。このアプリにはデモとサンプルが付属しているため、新
規ユーザーはプログラミング言語の使いやすさを知ることができます。

カットダウンしたIDE内でアプリケーションをコーディングしてから、超高速コンパイラを使用して、プロジェクトをほぼ即座に実
行することができます。クラウドを追加して保存すると、あなたのプロジェクトをTheGameCreatorsのウェブサイトにアップロー
ドして、プロジェクトを安全に保護したり、Windows、Mac、Linux版のAppGameKitでコーディングを続けることができます。

AppGameKit Mobileは、デスクトップ版の多くのコマンドへのアクセスを提供します。最も重要なのは、ゲーム作成のためのす
べての主要なコマンドです。

・3Dグラフィックスと3D物理
・2Dグラフィックスと2D物理
・レンダリングコントロール
・サウンド&ミュージック
・ユーザー入力
・ファイルI / O
・センサー

カメラと写真のアクセスでは、あなたのデバイスから画像メディアをインポートしてから、これらの画像をアプリケーションのス
プライトまたはテクスチャとして使用できます。

今すぐ無料でダウンロード!

213 :デフォルトの名無しさん:2018/04/07(土) 01:15:02.53 ID:SAZaE57U.net
ほえーすごいなこのスレ
freebasicって学習曲線が0に向かっていくのかしら

214 :デフォルトの名無しさん:2018/04/07(土) 21:51:47.96 ID:cSksy2F8.net
freeBASICネタじゃないけどBASIC総合とかないので
ネット上で試せる行制御型BASICが有った
http://www.quitebasic.com/
cとかは良く有るけどBASICは珍しい気がする

215 :渡辺真:2018/05/15(火) 18:03:14.13 ID:j460gO/q.net
久々に「GUI ライブラリ Window9」の日本語マニュアルを更新しました。
http://makoto-watanabe.main.jp/freebasic/Window9.html
CHM Helpファイル(日本語 helpWindow9JP20180515.zip)もダウンロードできます。

Window9 を使ったコードと表示画面の例(これは、ほんの一部です)
http://makoto-watanabe.main.jp/freebasic/Window9/W9S.html

注意:オリジナルの Window9 は、FreeBASIC 32 ビット版にしか対応していません。
しかし、D.J.Peters さんの分岐バージョンは、32 と 64-bit FreeBASIC に両対応しています。
https://www.freebasic.net/forum/viewtopic.php?f=14&t=17058&p=245609#p245609
http://shiny3d.de/public/libs/libWindow9.zip

216 :デフォルトの名無しさん:2018/05/20(日) 18:59:21.38 ID:zE3tRiv6.net
3月にパソがストライキに入って
先日タイ米ん万円を投じて機械を切り替えた。
で、ストライキ中のパソの中身を抜き取ろうとして中身を見たら
ハードエラーだった。
2016年以来、BIファイル内に書き込んだ、おおっぴらにできないメッセージ(つまり、MSの悪口とその対応方法)の数々を失った。

217 :デフォルトの名無しさん:2018/05/23(水) 19:09:14.59 ID:Au5e7VGg.net
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

QAGW2

218 :渡辺真:2018/05/23(水) 23:01:11.10 ID:DanoYNXa.net
連想配列(Dictionary Class)のページを追加しました。

http://makoto-watanabe.main.jp/freebasic/tipsDictionaryClass.html

このページの内容は、MITライセンスで公開します。

219 :デフォルトの名無しさん:2018/07/04(水) 23:07:04.86 ID:gFgZc5FG.net
KDY

220 :デフォルトの名無しさん:2018/08/20(月) 21:12:53.14 ID:KbXm7+ba.net
Swin_FB の起動に成功しました。
取扱説明書の和訳と、起動用ショートカット、起動に必要なインタフェースファイルをUPします。
使いたい方は使ってください。
https://dotup.org/uploda/dotup.org1617761.zip.html

現時点では、UNLHA32.h の変換に成功していません。
http://www.madobe.net/archiver/lib/unlha32.html

221 :デフォルトの名無しさん:2018/08/20(月) 21:27:58.08 ID:KbXm7+ba.net
Swin_FB 入手先
http://www.freebasic.net/temp/swig_fb.zip
https://www.freebasic-portal.de/downloads/kommandozeilentools/swig-fb-wrapper-70.html
前スレ
https://hibari.5ch.net/test/read.cgi/tech/1139379786/294-318

https://dotup.org/uploda/dotup.org1617761.zip.html
の中身と
swig.exe と 変換前のファイル UNLHA32.H は同じディレクトリーに放り込んで

swig - ショートカット の「右クリック」「プロバティ」内「リンク先」の
(なんたら)swig.exe の部分は使用するSwig.exe の絶対パスを指定してください
さもなくば、
swig.exe を「右クリック」「ショウトカット作成」で作成したショートカットの 「右クリック」「プロバティ」内「リンク先」の
(なんたら)swig.exe の右側部分に、 00Taka.I とインタフェースファイル名を追記してください

222 :デフォルトの名無しさん:2018/09/04(火) 22:58:36.83 ID:ZvNTEXo5.net
h_2_bi.bas
http://www.freebasic.net/forum/viewtopic.php?t=15364
の解読、FBEを作ったコンパイルに成功。

ファイル - 新規プロジェクト
で、
プロジェクト名 h_2_bi 、
テンプレート Console.tpl
を選択。
h_2_bi¥h_2_bi.bas が作成されるので削除。
ドイツのサイトからDL した 141003_h_2_bi-0.2.8.2 内
src\*.* を h_2_bi¥へコピーする。

これで、緑の△をクリックすると、コンパイルで゛着て実行される。
終了直後に画面が消えるので、どのように実行されたかは、今のところ特定できないでいる。

223 :デフォルトの名無しさん:2018/10/14(日) 11:43:50.41 ID:PHuq9XaV.net
freebasicネタじゃないけど
Pete's QBasic Site(http://www.petesqbsite.com/)が10年振りに更新されてるw
特に内容は無くて生存報告みたいな感じだけだけど
更新は無くてもサイト自体を消滅させる気は無くて続けます
って事みたい
いいねこういうの

224 :デフォルトの名無しさん:2018/12/21(金) 22:39:53.15 ID:2D1W7LFf.net
>>223
こういう個人のアーカイブが残ってるのは心強いね。

2000年代に個人サイトがわらわらと出てきて、自分で作ったリンクが
今じゃ大半がリンク切れになってることと思い合わせると
インターネット上に個人が作ったホームページの寿命ってすごく短いから
粘り強い奴がいるだけで感心する。

225 :デフォルトの名無しさん:2019/01/01(火) 20:17:37.42 ID:W62CM7SG.net
そういえばジェオシティも今度無くなるんだよね?
そうすると又結構な古いタイプの情報サイトが無くなりそう
infoseekのが結構痛かった
nifty系もなくなったんだっけか?
こういう時どっかの金持ちが参照維持だけしてくれたりすると助かるんだけど
あんまりそういうのないよなぁ

226 :デフォルトの名無しさん:2019/01/05(土) 01:05:11.82 ID:Hk3fPtKV.net
1.06のリリース準備を始めたらしい

227 :デフォルトの名無しさん:2019/01/05(土) 18:29:45.90 ID:pJbMq/2j.net
>>225
インフォシークはなくなってはいない。
なくなったのと大差ないがw

228 :渡辺真:2019/02/05(火) 17:52:14.30 ID:EYnGF/re.net
一年ぶりに、FreeBASIC 日本語版マニュアルを更新しました。
2018年分の英文版 Wiki の変更を反映したつもりです。
http://makoto-watanabe.main.jp/freebasic/

CHM 版は、下記でダウンロードできます。
http://makoto-watanabe.main.jp/freebasic/FB-manualJP20190205.zip

修正すべき点、加筆すべき点など、ご指摘、ご意見を、お願いいたします。
FreeBASIC で遊んでみて下さい。

229 :デフォルトの名無しさん:2019/02/18(月) 15:01:48.71 ID:cJx6rpHH.net
1.06が来たみたい
修正が主みたいなのかな?

230 :渡辺真:2019/02/21(木) 23:09:29.28 ID:Pmc5nLJd.net
Version 1.06.0 [変更]
- Integer/Long パラメータの名前修飾は、32ビットで64ビットと一致するように反転されました。
このため、同じFBコードとC ++コードは、32ビットと64ビットの両方で互換性があります。
整数は、C ++ の long として扱われ(Win64を除く)、Long は C ++の int として扱われます。
- 「演算対象 bool/nonbool 混在」警告の警告文を調整しました。
- test-suite はユニット・テスト・フレームワークに libfbcunit を使います。
- SELECT CASE AS CONST はデータ型を尊重し、範囲外の定数に対してオーバーフロー警告を表示します。
- ブール値:ブール値データ型に対して NEG 単項演算子 '-' を許可しない。
- すべての fb RTL関数は、CONSTness、fb rtlib 組み込みプロトタイプに追加された CONST修飾子についてチェックされます。
https://sourceforge.net/p/fbc/bugs/727/
- WSTRING は戻り型にすることができますが、プロトタイプ(DECLARE)および関数ポインターの場合のみです。これにより、すべての fb 組み込み実行時関数の PROCPTR() を取得できます。
- 複数行コメントは、一貫性のため "-lang fblite | qb | deprecated" で "-lang fb" のように解析されます。

231 :渡辺真:2019/02/21(木) 23:12:47.25 ID:Pmc5nLJd.net
Version 1.06.0 [追加]
- Win64 の Long パラメータの名前修飾は、デフォルトでは C++ int に変換されます。'as [u] long alias "long"' の形式の修飾子を使って C++ long に変換されます。
データ型サイズは、まだ32ビットですが、C++ long を期待して外部 C++ ライブラリを呼び出すことができます。
- -noobjinfo オプション。コンパイル時ライブラリの書き込み/読み取りと、.o および .a ファイル間のその他のリンクオプションを無効にします。
これは、.fbctinf セクションを破棄するための fbextra.x(補助的なリンカ・スクリプト)の使用も無効にします。これは、この種のリンカ・スクリプトをサポートしないゴールドリンカを使う場合に役立ちます。
- Linuxコンソールの Inkey() は、F11 と F12 を認識するようになりました。
- Windows および Linux で、画面コントロールを介した OpenGL による 2D 画像生成(angros47)
- Windows API バインディングを更新して _WIN32_WINNT &h0501, &h0600, &h0601 を追加サポートしました。
- X11 では、ScreenControl GET_WINDOW_HANDLE は Display ptr を param2 に配置します。
- バインディングを更新:SDL2 2.0.6, SDL2_image 2.0.1, SDL2_mixer 2.0.1, SDL2_net 2.0.1, SDL2_ttf 2.0.14
- 演算子 SQR() の多重定義を許可
- [static] shared byref 変数を許可: byref 変数で初期化される
- '-w constness' 警告:コマンドラインで 'CONST 修飾子の破棄' 警告を有効にする
- #pragma constness :ソースコード内の 'CONST 修飾子を破棄' 警告を有効/無効にする

232 :渡辺真:2019/02/21(木) 23:13:19.90 ID:Pmc5nLJd.net
Version 1.06.0 [バグ修正]
多数(具体的には changelog.txt を参照)

233 :渡辺真:2019/03/02(土) 22:06:43.47 ID:37vBKWsy.net
日本語ヘルプ CHM 版に、FB-manual-1.06.0.chm の更新を反映しました。
下記でダウンロードできます。
http://makoto-watanabe.main.jp/freebasic/FB-manualJP20190302.zip

234 :渡辺真:2019/04/06(土) 19:41:32.81 ID:sCxy6Cc1.net
【小学生向けプログラミング講座】FreeBASIC初級という動画を見つけました。
https://lgbtiqa.com/?p=4323
https://www.youtube.com/watch?v=4zxL2OODLVM&list=PLEobDPumkkgLIqiCBfe41DdNKiMIE_FEu
小学生にも役立つとよいですね。

235 :デフォルトの名無しさん:2019/04/07(日) 20:25:09.74 ID:RlRJPM9R.net
ちょっと試してみたい時に
自己責任でどうぞ
https://www.jdoodle.com/execute-freebasic-online

236 :デフォルトの名無しさん:2019/05/30(木) 13:05:47.26 ID:OtbiB0s5.net
basic事情について少し纏まっているので参考に
https://github.com/DualBrain/gotBASIC

237 :デフォルトの名無しさん:2019/06/12(水) 18:51:11.25 ID:QLhHYnyP.net
少しパニくっています。win10 のコマンドプロンプトで日本語表示が半欠け状態です。
今まで何ともなかったのに、気が付いたら、意味の分からない表示になっています。
コンパイラは、0.90と1.06どちらも同じ状態です。
ただし、thinkpad win10 64bitは大丈夫で、hpの64bitと富士通の32bitで同じ症状です。
自作のバッチやgccコンパイル実行ファイルは、正しく表示されます。
諸兄のご教示お願いします。

238 :デフォルトの名無しさん:2019/06/13(木) 00:32:01.15 ID:MSqyIT0z.net
自分はさっぱり解らない系ですが

今まで動いていたなら
何らかのパッチが当たったり環境変更した事が原因になる様な気がするけど?
障害が発生する前後で環境的に何かなかったか?を調べるくらいでしょうか?

パラッと検索した感じだと
フォントを変更する
文字コードを変更する
みたいなのが多いみたいだけど
何かアプリケーションをインストールした時に
設定を変更してしまう様な物をインストールしてしまって
コンソール設定が変わる
という事もあるかもしれないので
発生前後(というか前しかないと思うけど)に何かなかったを色々調べてみては?

http://fxrobot.hatenablog.com/entry/2016/10/09/022352
ここの人がやっている方法で出力してみたらどうなるか?(既にやってる?)

後まさかとは思うけど
再起動したら直るとか(笑)

本家の掲示板で聞くのが一番だけど
漢字関係だと向こうにも解らないだろうしなぁ

239 :デフォルトの名無しさん:2019/06/13(木) 09:50:13.07 ID:I2r9lF36.net
レスありがとうございます。
ご指摘のリンクは見ましたが、日本語入力しないので、同じ問題ではないと思われます。
例えば

print "今日は Free Basic"
sleep

だけでコンパイルしても日本語部分だけ半欠け表示になります。
win10の更新以外は何もしていないはずですが・・・

240 :デフォルトの名無しさん:2019/06/13(木) 21:17:03.54 ID:MSqyIT0z.net
発生する環境と発生しない環境が有るのなら
その違いを徹底的に調べるしかないと思うなぁ

241 :デフォルトの名無しさん:2019/06/13(木) 22:27:08.57 ID:h2JtO818.net
おそらくwin10のコマンドプロンプト、シェルと
freebasicの日本語表示のライブラリかなんかの
バッティングでしょうかね。
powershellでも同じでした。
fbcでは半欠け、gccは正常なので困ります。
数値計算のために結構使わせてもらってきて
数値計算結果は問題ないです。
数値計算はcは少し怖いです。
英語で問い合わせはできないですね。

242 :デフォルトの名無しさん:2019/06/13(木) 23:42:34.58 ID:NulSwGzN.net
文字コードだろ

Ruby でも、Linux 系のcygwin, msys などの日本語表示では、バグる。
Ruby console のirb は、日本語表示ではバグる。
だから皆、Mac を使う

ところが、Windows10・WSL・Ubuntu では、日本語でもバグらない。
だから漏れは、WSL側にも、Rubyを入れて、irbとして使っている

WSLの場合は、sjis/UTF-8 の変換に、バグがない

たぶん、さらにWSLよりも、仮想OS でLinux を使う方が、もっとバグらないだろう

243 :渡辺真:2019/06/14(金) 09:43:52.28 ID:tecWAOkg.net
コマンド プロンプトのプロパティで、「レガシーコンソールを使用する」にチェックを入れてみてください。

244 :渡辺真:2019/06/14(金) 10:07:56.10 ID:tecWAOkg.net
追記
Windows 10 OctoberUpdate (version 1809)で導入された新しいコンソールの不具合に起因して発生しています。
マルチバイト文字のコンソール出力を行うアプリケーションにおいて、コンソール出力が正しく表示されない場合があります。
マイクロソフトでは開発部門でも本問題を認識しており、次期バージョンの OS (19H1) において修正される予定です。

245 :デフォルトの名無しさん:2019/06/14(金) 12:19:26.74 ID:wlmyLBOz.net
windows側の問題なのね
これか
https://social.msdn.microsoft.com/Forums/ja-JP/3a8a7941-a284-40eb-9588-808c575e7c1b/1249612540124721251912531-1809-12398-os?forum=visualstudiosupportteamja

setlocaleすると大丈夫ってのも書いてあるから
gccではsetlocaleしているから起きないのかもね

こっちに載ってる例で
http://makoto-watanabe.main.jp/freebasic/PgEncoding.html
setlocaleするともしかすると解消するのか?

自分はサンデープログラマー系なので話十分の一くらいに聞いておいて

246 :デフォルトの名無しさん:2019/06/14(金) 13:53:03.86 ID:HjQQktwN.net
>>243
いつもお世話になっております。直りました。
>>245
ありがとうございます。
すっきりしました。
setlocaleとかよくわかりませんが、ゆっくり調べてみます。

247 :渡辺真:2019/07/04(木) 19:35:18.22 ID:gsP/6jYH.net
Windows 10 をお使いの方にお尋ねします。
私の Windows 10 パソコンでは、グラフィックを表示するプログラムは、白い画面が出て終了してしまいます。
プログラム例:
https://lgbtiqa.com/?p=4331
https://www.freebasic.net/forum/viewtopic.php?f=7&t=27514
https://www.freebasic.net/forum/viewtopic.php?f=7&t=15284&start=15
https://www.freebasic.net/forum/viewtopic.php?f=7&t=17702&start=15

どれでも結構ですので、お使いの Win10 パソコンで正常に表示されるかどうか教えて下さい。

248 :デフォルトの名無しさん:2019/07/05(金) 08:54:22.43 ID:TZXCRxqJ.net
>247
Windows 10でも問題なく実行します。
赤い風船?みたいな物が画面上を動きます。

もっとも、Windows 10には、Free Basic をインストール
していないので、Windows 7でコンパイルした実行プログラム
をWindows 10で実行した結果です。

249 :渡辺真:2019/07/05(金) 10:56:38.66 ID:KB6SBbLY.net
早速確認いただき、有難うございます。

私は、64ビット2台、32ビット2台の、計 4台も Win10 パソコンを持っていて、それぞれメーカーや購入時点が違うので、ドライバや BIOS の問題は考えにくいと思っています。
そこで、Win10 だと、誰のパソコンでも動かないのかと思いましたが、デフォルトの名無しさんや、michyo さんの環境では、コンパイルされた実行ファイルが、Win10 で動いているのですね。

とても不思議です。

250 :デフォルトの名無しさん:2019/07/05(金) 13:27:53.69 ID:GGpe/EUY.net
馬鹿はWin10なら全て同じだと思っている

251 :sage:2019/07/06(土) 10:52:14.35 ID:mfI6ooWq.net
今回は構成の違うマシンが全部同じなら
環境を比較調査する事も出来ないから原因を探るのは厳しそうですね
他の人が上手く行っている事からすると
今回も環境問題っぽいですね
この前の人はマシンによって違いがあったから
調査の仕様は有るけど
後は似たような経験が有って解決した人が居れば良いけど
今の所は居なさそうですか
デバッグでステップ実行して何処で落ちるか?
というのは調べられないんですか?

252 :渡辺真:2019/07/06(土) 16:26:56.37 ID:eNlQvJia.net
Windows イベントビューアでエラーの状況を確認しました。
プログラムは、下記の2つの例外コードで終了していました。
例外コード: 0xc0000005
例外コード: 0xc000041d
難しいです。

253 :デフォルトの名無しさん:2019/07/06(土) 18:03:19.81 ID:mfI6ooWq.net
そのエラーコードで検索したら
https://www.maruo.co.jp/hidesoft/8/x01632_.html
こういう話が出てきた
もしかするとファイルが壊れている?(fbc.exeとか?なんかのdllとか?)
コンパイルをするマシンは各機でやってるんですか?
特定のマシンたけでコンパイルして他のマシンに配っているならコンパイルしているマシンがハード的に何か有るのかもしれない
昔ハードディスクにエラー箇所が有って
そこにexeが有ったらしくて
それでアプリケーションが起動しない
という経験をした事は有る
それに似ているような気がする
あくまできがするだけだけど

254 :渡辺真:2019/07/07(日) 11:06:12.35 ID:pDt/nlD9.net
原因は、私の Win10 PC の日本語設定でした。
本家掲示板の MrSwiss さんのアドバイスに従って、Win10 PC を英語画面に変更したところ、グラフィック画面は表示されました。
Microsoft日本に連絡します。

255 :デフォルトの名無しさん:2019/07/07(日) 11:28:45.76 ID:Ts5uCd7M.net
別に、Windows の問題じゃない

外人が作る、すべてのアプリは、sjis を知らない。
漏れら日本人だって、Windows に入っている、数百ある外国の言語なんて、1つも知らないだろ

Windows は国際化されていないから、外人のアプリで、日本語を使うとバグる!
一方、Linux では、UTF-8 で国際化されているから、世界中で共通の文字コード

Ruby のirb でも、日本語を入力すると、バグる。
sjisを想定していない。
使えるのは、半角英数字(ascii)のみ

特に、ユーザー名・ファイルパスなど、システム関係に日本語を使うと、よくバグる

256 :デフォルトの名無しさん:2019/07/07(日) 13:21:40.11 ID:NA7PlYnQ.net
馬鹿が馬鹿に回答と

257 :デフォルトの名無しさん:2019/07/08(月) 02:32:03.03 ID:S5loCBHp.net
正常に動作している人との違いを見ることが出来れば良いんだけど
環境の違いが原因だと面倒だよなぁ
何が違うんだろうか?
リンク先の話には
imeが関係しているのではないか?
という話だから
何が別のimeを入れていたりしないかね?

258 :デフォルトの名無しさん:2019/07/08(月) 16:50:56.88 ID:qJVG7Z+B.net
この人、前にもコンソールの日本語表示が崩れるって騒いでいたけど
何年経っても初歩的なミスをしてそうだな(コードもWindowsも)

259 :255:2019/07/08(月) 23:05:48.45 ID:G1DtFXg8.net
Windows で、Ruby のirb が、sjis でバグるのは、
readline が参照している、libedit に問題があるらしい

Linux で作っているソースコードを、Windows でコンパイルして、sjisでバグる。
Linuxでは、UTF-8 だから、sjisを想定していない

外人は、sjisを知ってるわけないから、半角英数字(ascii)だけで作ってるから、sjisでバグる

フォントがかすれたり、カーソルが消えたり、回復不能になる!

260 :デフォルトの名無しさん:2019/07/08(月) 23:14:18.33 ID:fk6b3a2Z.net
>>259
馬鹿は死ねよ

261 :渡辺真:2019/07/09(火) 17:05:58.59 ID:kFqa6T0+.net
私は、最近「般若心経」にハマりました。
http://makoto-watanabe.main.jp/freebasic/tipsHeartSutra.html

初歩的プログラム例です(^^;)

262 :デフォルトの名無しさん:2019/07/09(火) 21:39:08.16 ID:gdYXIa6p.net
写経の自動化って・・・

斬新なアイディアだな。写経になってないような気もするが。

そういやチベットでは経典をぐるぐる右回しするやつがあるが、あれもある意味自動化だな。

263 :渡辺真:2019/07/09(火) 22:19:54.80 ID:kFqa6T0+.net
よくご存じで。日本にも有るようです。

https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%3AMani_hojoin_uji_japan.JPG

264 :デフォルトの名無しさん:2019/07/09(火) 23:08:51.79 ID:11PXPZRU.net
高級言語は
多数のアセンブラを一行で書いちゃう
みたいな所が有るから
似ている?

265 :渡辺真:2019/07/10(水) 08:40:06.58 ID:IEVlFF2p.net
小学校でプログラミング教育が始まることを意識して作ってみました。
http://makoto-watanabe.main.jp/freebasic/PgRnd.html#Dices

上級プログラマなら、さいころが転がるところを表現できるのでしょうが(^^;)

266 :デフォルトの名無しさん:2019/07/10(水) 17:08:13.88 ID:NolX0ibb.net
freebasicのフォーラム見てたら
最高アクセス記録が
Most users ever online was 321 on Jul 08, 2019 5:09
になってた
前はもっと前だった気がしたけど
この日に何か有ったんだろうか?

最初プログラミング教育って聞いて
日本も終に初めるのか
と思ったけど
年間10時間www
図画工作より下とか悲しい
だからそこまでの内容は扱わないと思われる
コンピュータープログラミングではなくて
手順や式次第(プログラム)を学ぶ
そういう話らしい

267 :デフォルトの名無しさん:2019/07/10(水) 22:52:17.95 ID:Gf6jvZsp.net
小学校でプログラミング教育の教材としては
LOGO
がいいのじゃないかな、と思う。

268 :デフォルトの名無しさん:2019/07/11(木) 01:34:58.45 ID:2JRZU4lZ.net
LOGOをバカにするわけじゃないが、今どきそれはないわ
プログラミング教材は今はもう色々と揃ってるよ
ブロックを組み合わせたり、ロボットを操作したり、グラフィカルなコードを書いたり出来る
大学の研究室でやってきたようなことを教材として提供してきているよ

義務教育課程においては、論理的思考と遊び感覚で興味をもたせることが大事
興味のある子はどんどん進んでいけばいいけど、本格的なコードを書くのは大学以上で構わない(一般論としてね)
こんなのは外国語と同じで普段使わないのに覚えたところですぐに忘れるからな
それならPC業務で使うソフトウェアや専門職で扱われる機械(コンピュータを使った)を触らせた方のがよっぽど良い

269 :デフォルトの名無しさん:2019/07/11(木) 02:43:49.18 ID:024QjgN/.net
>>265
こんなゴミみたいなものを宣伝すんなよ

270 :デフォルトの名無しさん:2019/07/11(木) 03:55:04.12 ID:YQHsyFQ3.net
WinFBEがダウンロードしたら即使えて環境変数がどうのとかるからHSP的お手軽さがあって
ええやんと思いきやscintillaをsjis版探してきて差し替えないと満足に打てないという…
他の日本語化されてるIDEも検索して引っかかる日本語の入門ページも怪しげな中華アプリや中華サイトを想起させる残念っぷり
ポテンシャルは高そうなのに色々勿体ない
真くんはMSにケチつける謎の行動力を出す前にまず日本語のお勉強とフリーの日本製エディタで
出来のいいのなんていくらでもあるんだからそれを参考にするようにした方がいいと思う
WinFBEはlangファイルのエディタがついてたけど真くんは関わったらダメだぞ約束だからな

271 :デフォルトの名無しさん:2019/07/11(木) 17:58:39.98 ID:HcmCiWg7.net
logoは座標じゃない方法でいきなり描くから
座標の概念を未だ教わっていない低学年なんかには確かに向いているかも
今回はファロが結構使われそうだけど
freebasicにはdrawが有るから
これで何とかw

272 :渡辺真:2019/07/15(月) 16:41:43.47 ID:vipAzGRF.net
本家のフォーラムで UEZ さんに GIF 動画を表示するプログラムを作ってもらいました。
サイコロを振る動作が加わりました。
http://makoto-watanabe.main.jp/freebasic/tipsDisplayGifAnimation.html

273 :デフォルトの名無しさん:2019/07/20(土) 02:29:21.79 ID:BmjrbxAK.net
わざわざ他者の手を煩わせて持ってくるのがサイコロぶん回す動作が云々て…
お前はもうHSPあたりの初心者向けである程度枯れてる言語でも触っとけよ
検索で引っかかるのがあんなゴミみたいなサイトとか訳わからんわ

274 :デフォルトの名無しさん:2019/07/20(土) 16:41:45.37 ID:c6J6E4hv.net
渡辺氏に反対の奴は別スレ行け
そういう話でついているだろうが
このスレではお前はただの荒らしでしかない

275 :デフォルトの名無しさん:2019/07/21(日) 06:39:43.61 ID:MiK/T5rx.net
ガイジか?
ならテンプレ作ってそう書いとけ

276 :デフォルトの名無しさん:2019/07/21(日) 18:56:29.59 ID:c+HlyquL.net
このスレを全部読めガイジ

277 :デフォルトの名無しさん:2019/07/25(木) 10:43:24.08 ID:NIVjBiK4.net
ガイジ(渡辺真)のメモ帳スレやぞ
気に入らんなら別スレ立てるんだな

278 :デフォルトの名無しさん:2019/08/05(月) 00:53:06.31 ID:vtHHaLTi.net
スレを全部読みもしないで何を偉そうにガイジとか語るのか
あっちのスレがどうなってるのかと思ったら
スレが落ちてる…
新しいバージョンが出たのに話題にもしてない
口先ですらも無い
酷い者です

279 :デフォルトの名無しさん:2019/08/05(月) 06:54:16.15 ID:X9eOP/Xs.net
分岐したスレは新しいバージョンが出る前にもう落ちてたからな
つか、ここ数年の基地外独占スレを正常だと思っているわけ?
スレ分けしたから熱りが冷めたと思うけどね

280 :デフォルトの名無しさん:2019/08/05(月) 07:01:40.11 ID:X9eOP/Xs.net
>>278はそこまで言うなら自分から話題を振ったらどうよ?
公式フォーラムではz(w)string型の派生型、組み込み配列の拡張などの話が出ているけど
そういったのを話題にしたら?

281 :デフォルトの名無しさん:2019/08/11(日) 17:58:49.33 ID:zhYrYZpf.net
だから偉そうな事を言うのが良いなら向こうのスレ行けって言ってんだろう
ここは趣味でカチャカチャ遣る程度でも構わないし
basicはどっちかって言うと
趣味的にやるのに向いてるし
freebasicはゲームを作るとかそういうのに力が入ってる物でもある
どんな遣り方でも何を作ってもどんな遣り方でプログラムして良い
そういう方向に向いている
それを兎に角規制しないと気がすまない
そういうのは向こうへ行けって話だ
このスレを全部読んで頭がおかしいのはどうこう〜
とか言ってるのはこのスレには要らない
偉そうにしたい奴が居るべき場所ではない
好きなようにプログラムする
それこそがfreebasicらしいし
向こうのフォーラムはどんな初歩的であろうと馬鹿な勘違いしている質問でも
丁寧に教えてくれる
まさしくbasicプログラマーがどういった者か解っている
このスレはそれをただ自分が凄い事を解っていると思わせたい奴が自慢する奴のスレじゃない
そういう最近マウント?とか言うのをやりたい奴は向こう行けって話し
最近来ないあの人みたいなのでも別に構わない
何だかこれこれを知らないと駄目
みたいな話をする奴は要らない
自慢と職場のコーディング規約が宗教教義みたいに崇め奉る奴は向こうへ行け
どういうプログラムをするも好きにする
それを邪魔したり止めろとか言う奴は向こうのスレへ行けだ
向こうのスレが落ちている言い訳をわざわざしたり
いい加減にこっちに来るなよ

282 :デフォルトの名無しさん:2019/08/12(月) 20:31:18.87 ID:sfgyFXyc.net
>>281
こっちが>>280で話題を誘導しているのに
それに乗っからずに勝手な主義主張をしている君がいらないよ

君はあのスレ独占基地外と同じだよ
自分のことばっかりで他人のことを考えない
そんなに自分の居場所が欲しいなら自分で作ってどうぞ
ここを独占するな

283 :デフォルトの名無しさん:2019/08/16(金) 10:48:32.93 ID:DXZ2nZlX.net
独占スレより初心者の質問スレみたいになることを期待したらダメなのかな
そういう日本語のコミュニティがあればありがたいのだけど
自分で作れと言われたらそうなのだけど俺自身が質問に答えられるような技量が無いので…

284 :デフォルトの名無しさん:2019/08/17(土) 14:55:32.76 ID:xhCRX2Jr.net
初心者の質問に対してわざわざプログラミング熟練者の方たちがサンプルソース書いてくれても
平然とパクられる上にわけのわからん真ちゃんライセンスを強制的に適用されるからな
どこそこシュバって来るから害悪でしかない

285 :渡辺真:2019/08/27(火) 16:02:10.26 ID:UIQ7b6PL.net
FreeBASIC バージョン 1.07.0 がリリースされました
by coderJeff &raquo; 2019年8月27日
ハイライト:
・型組み込みの CVA_LIST での可変個引数関数、およびCVA_START()、CVA_COPY()、CVA_END()、CVA_ARG()マクロのサポートを追加
・「-strip」および「-nostrip」コマンドライン・オプションを追加して、シンボル除去を制御
・ユーザ定義型が Z|WSTRING として機能するように「type UDT extends Z|WSTRING」を追加。
および組み込み関数 TRIM/LTRIM/RTRIM、LCASE/UCASE、Cxxx()変換、INSTR/INSTRREV、MID関数とMIDステートメント、SADD/STRPTR、LSET/RSET、ASC、SELECTステートメント、SWAP、IIF、 および PRINT/LPRINT/WRITE でうまく機能するように
・エラーコード生成を細かく制御するための新しいコマンドラインオプション「-earray」、「-enullptr」、「-eassert」、「-edebug」、「-edebuginfo」、「-elocation」を追加
・'./fbc-int/array.bi' を追加して、開発者および上級ユーザー向けに配列記述子の内部を公開
・大域の多重定義演算子の名前修飾を修正
一部のバイナリ(ライブラリ)は、正しく動作させるためにソースから再コンパイルする必要があります。
・その他のバグ修正

詳細は changelog.txt を参照下さい。

286 :デフォルトの名無しさん:2019/08/27(火) 20:24:33.54 ID:5QTtWizR.net
1.07ですか
機能追加の様ですね
1.06が久しぶりだったので急に活発になった感じがしていいね☆

それと最近向こうのフォーラムにアクセスが多いのは
中国からのアクセスが増えたみたいな話が有った


初歩的な人を阻害するのは282の方だ
話題を振るとか言っておいて
自分が凄い事がわかっていると自慢したいだけの奴
向こうのスレは俺たち凄いよね俺たち凄いよね
正しくそんなスレだった
気持ち悪い
向こう行けよ
マウントとか邪魔なだけ

287 :デフォルトの名無しさん:2019/08/28(水) 05:32:29.90 ID:BH9jws6u.net
原著作者に確認してるから何も問題無いよ
啓示されている内容に従うのは原著作者に確認せずに使う場合
スレを読まずに勝手な事言う奴も居るし
スレ読まないなら来るなよ頭おかしい
いい加減にしろよ

288 :デフォルトの名無しさん:2019/08/30(金) 03:28:19.95 ID:QR2JIBSJ.net
真が自演してるんか

289 :渡辺真:2019/08/30(金) 12:02:10.98 ID:a6qhDvjF.net
FreeBASIC バージョン 1.07.0 使用の注意!
一部のバイナリ(ライブラリ)は、正しく動作させるためにソースから再コンパイルする必要があります。
つまり、古いバージョンでコンパイルされたdllに含まれるコードを実行できない場合があります。

290 :デフォルトの名無しさん:2019/09/04(水) 14:09:26.26 ID:H3UGm1oj.net
このスレは、定期的に基地外に乗っ取られるな

291 :デフォルトの名無しさん:2019/09/06(金) 01:31:58.12 ID:cN4xbwjU.net
過疎りすぎて定期もくそもないと思うんだけど
人増えないかな

292 :デフォルトの名無しさん:2019/09/29(日) 19:50:39.74 ID:mdCYdpYZ.net
パッチ?当てたのが出たのか
随分と活発になり始めたな

293 :デフォルトの名無しさん:2019/10/01(火) 21:42:48.51 ID:gKKhTXL2.net
@BASICをメインで使いたい人向け
A何かに特化している
Bそのうち準標準の扱いになる
C未来なんて無い

どれ?

294 :デフォルトの名無しさん:2019/10/02(水) 16:48:28.04 ID:MpixNZic.net
4

295 :渡辺真:2019/10/05(土) 15:13:54.93 ID:yyroxSJk.net
私が言うのも変ですが FreeBASIC って何に使うのでしょうね。
使い方を提案できると、利用する人が出てくるのでしょうね。

私は、毎日株価を計算して半自動発注するシステムを運用していますが、Excelマクロを使っています。
http://makoto-watanabe.main.jp/vba_DailyTrade.html#performance
Excelマクロだと、I/O インタフェース部分にスプレッド・シートを使えるので、生産性と保守性で圧倒的に有利です。
FreeBASIC は使っていません!

296 :デフォルトの名無しさん:2020/02/15(土) 12:49:16 ID:QxJ/lPgT.net
https://dotup.org/uploda/dotup.org2063243.zip.html
バージョンup後の初めての動作試験。 http、ftp処理。
旧内容は、大幅に動かなくて、復旧に時間がかかりました。
主に、$の削除

297 :デフォルトの名無しさん:2020/02/15(土) 13:25:39 ID:QxJ/lPgT.net
使い方と言っても、私のは、尋常な使い方ではないから需要は少ないかも。

極端に大きな値や小さな値が混在する数値系の処理
値に推定値や補間値、欠落値が混在している統計処理(主に自由度の操作)
尋常な人がやらない画像処理
自動取得が禁止されているネットデータのCSV化。
このあたりかな。
今のエクセルは高機能になったからいろいろできるはずですが、Visual Basic と同様に操作方法がわからない。
2.14時代から長い付き合いのある GW-Basic を使い続けることに。

>>296は、以前ダウンローダーを作った時の名残です。
人参自動収穫機が難しくて使えず、Gethtml だと必要ない内容(カウンター)もDLしてしまう。
なら、自分で作ってしまえと作ったものがありました。
難しくて投げた https 系をやらないと、今の時代は使い物にならないようです。

298 :デフォルトの名無しさん:2020/02/18(火) 22:08:39 ID:jAgQ28jU.net
Const 文の
const NEWLINE = !"\r\n" ''送信末尾の(CR)(LF)コード
の書き方を掲載している場所わかりますか。
Chr$()関数を使っていたのですが、Chr$()関数では定義できなくて、HTTP, FTP 関係ルーチンが放置した覚えがあります。
即値を代入しての組み込み関数を、コンパイラが定数に置き換えてくれるとかなり楽になりますから。

299 :デフォルトの名無しさん:2020/02/21(金) 10:21:10 ID:ughFqVG6.net
https://dotup.org/uploda/dotup.org2068331.zip.html

タイマー割り込みの動作試験。
単発タイマー、連続タイマー、時刻表示の3つ。
特定時刻に鳴るタイマー(チャイム?)は作成していません。

タイマー間隔を任意に切り替えるバージョン(10年以上前に公開した)は作っていません。

300 :デフォルトの名無しさん:2020/02/23(日) 12:36:50.29 ID:8Dw4Oxqs.net
SINGLE と DOUBLE のデータ長さはわかりますか。
http://makoto-watanabe.main.jp/freebasic/PgSingle.html#start
http://makoto-watanabe.main.jp/freebasic/PgDouble.html#start
http://makoto-watanabe.main.jp/freebasic/TblVarTypes.html#start
より、全体長さ 32bit, 64bit まではわかるのですが、仮数部のbit数、指数部のbit数がみつかりません。

仮数部(?記憶があいまい)24bit、指数部8bit の場合が、単精度実数
この2倍が倍制度実数と覚えていますが、Fotranの場合です。
8087等は読んでもわかりませんでした。

301 :デフォルトの名無しさん:2020/02/23(日) 13:28:38.17 ID:eqn5u97I.net
>300

Dim S As Single
Dim D As Double

S=0.12345678901234546789
D=0.12345678901234546789

Print "S = "; S
Print "D = "; D

Sleep
end

としてコンパイル、実行してもればわかるのではないですか

302 :デフォルトの名無しさん:2020/02/23(日) 21:23:53 ID:8Dw4Oxqs.net
https://dotup.org/uploda/dotup.org2070754.zip.html
Uxix時間・時刻が必要になって、こんな換算をやってみました
必要な理由は http://www.nict.go.jp/JST/http.html 参照
計算のチェック例
https://ja.wikipedia.org/wiki/UNIX%E6%99%82%E9%96%93
Double の有効桁が不足したらしく、共食いが発生したので、
整数部のみ分離して計算するという、わけのわからないテクニックを使っています。
結果は、共食いを解消できませんでした。

処理時間を考えると、NTPサーバーにつないでも意味がないようです。
遅いWin2kマシンを使っているためかも
http://makoto-watanabe.main.jp/freebasic/ の
Windows では特権 SE_SYSTEMTIME_NAME が必要です。通常は、呼び出しプロセスを、管理者権限で実行する必要があります。
意味は、FBEdit の !や▽マークで起動するのではなく、作成したEXEファイルのショートカットを作成して
ショートカットを右クリック、
「管理者として実行」を里クックして
起動するという内容らしいです。

303 :デフォルトの名無しさん:2020/02/23(日) 21:39:40 ID:8Dw4Oxqs.net
>実行してもればわかるのではないですか
昨年やりました。
ビット操作で1ビットのずれがあるときに、ほぼ等しい、という比較ルーチンを作ろうとして。
結局、内部構造がわからず、挫折しました。
やり方は
Type aaa
aDouble as Double
End Type

Type AAb
B1byte as byte
(中略)
B8byte as byte
End Type

Lset aaa, AAb
Lset AAb, aaa
で16新ダンプさせて、Byteの方で値を操作し、何とDouble が表示されるか、を8ビット256こづつ試してゆく方法です。

GWでもやったから、比較的簡単に見つかるかなと思ったのですが、だめでした。

304 :デフォルトの名無しさん:2020/02/26(水) 19:51:50.25 ID:Dy5bnnEL.net
ちょっとマニアルで気が付いた点を少々
http://makoto-watanabe.main.jp/freebasic/PgFormat.html#start
ddd 日を、省略形で表示します。(Sun-Sat)
(Sun-Sat) → (日-土)
以下同様に、
dddd  
mmm
mmmm
英語表記になっていますが、表示されるのは日本語表記です

koto-watanabe.main.jp/freebasic/PgDateSerial.html#start
参考欄
Date Serials は Time Serials (
http://makoto-watanabe.main.jp/freebasic/PgTimeserial.html#start
)の間違いかとおもわれます。

http://makoto-watanabe.main.jp/freebasic/CatPgDate.html#start
は、Format
http://makoto-watanabe.main.jp/freebasic/PgFormat.html#start
も、関係関数に含まれるのではありませんか。

305 :渡辺真:2020/02/29(土) 12:30:13 ID:Hs4SAFSa.net
>>304
教えていただき有難うございます。
修正しました。
ところで、日本語環境で DateValue を使ってうまく日付を設定するほほがあれば教えて下さい。

追記:
来週末を目標に、英語 Wiki の更新を、日本語マニュアルに反映させる作業をしています。

306 :デフォルトの名無しさん:2020/03/02(月) 01:17:10 ID:v6XbUmZi.net
>>305
>日本語環境で DateValue を使ってうまく日付を設定するほほが
DateValue の条件に、使用しているOSに依存する、という内容があるので
HTTP通信のヘッター部 Date: の解釈に使えない
とあるので、使用をあきらめ、自前でルーチンを作ってしまいました。
Fun DayString10String()系の一群の処理です。
ファイルの時刻操作関係は
Fun DayTime()系の一群の処理で
1970年または1900年以前のデータ処理(古文書)を行う関係で、
DateSerial ではなく、西暦の文字列表記を使うような形式にしました。

今回は NTPサーバーに接続するための Unix時刻処理を行うために
#Include once "crt/time.bi"
処理系関数の使用と、言語系 DateSerial の使用と
#Include once "win/winbase.bi"
処理系関数の使用が候補に挙がり、
これら3種のルーチンの比較(私でもなんとか使えるルーチンが作成できるか)を行っている状態です。

DateValue は、説明文を見て、私では無理だと感じましたので全く使っていません。
多分 FBの著者は、米国系日付と英国系日付( mm/dd/yy dd/mm/yy )の問題から、システム環境に依存するように作成したものと思われます。
日本では (yy)yy/mm/dd になっているのですが、全角(算用数字と漢数字)と半角の問題、旧暦(和暦)の問題があり、
GW-Basic では対応してなく(幻の明治5年12月3日から12月30日までの日付を入力すると換算できる)、使い物にならないとして使用を打ち切りました。
https://ja.wikipedia.org/wiki/%E6%98%8E%E6%B2%BB5%E5%B9%B4
同様な問題は数値変数化関数(Str$())でも、(登記に使われている)漢数字の数値化ができない等でみられました。

したがって、DateValueを使っていません。

307 :デフォルトの名無しさん:2020/03/02(月) 23:01:53 ID:v6XbUmZi.net
DateValue が、想定した動きをしないので、Fun DayString20()系を作成しました。
Fun DayString20()を作るきっかけとなったルーチンを引っ張り出して、それらしき内容にまとめたものをUPします。
https://dotup.org/uploda/dotup.org2077653.zip.html
上4つが日付処理、下4つ(実質は3つ)が時刻処理です。
なお、Fun Daystring20()系を作成したころに参照したサイトの多くは消失しました。

処理可能なCodePage 一覧を入手するルーチンと、CodePageから日付情報を抜き取るルーチンの名称がわかれば、続きを書けるでしょうけれども。
コードページ関係処理は訳が分からなくて、使っていません。
それと、レジストリーをダンプすると、各国の言語別情報が保存されています。
ここから関係情報を抜き出せれば、やり方があるかもしれません。

308 :デフォルトの名無しさん:2020/03/02(月) 23:32:12 ID:v6XbUmZi.net
日付設定に関して FreeBasic 処理系では
SETDATE 現在のシステム日付を設定します。
SETTIME 現在のシステム時刻を設定します。
の2つだけです。http://makoto-watanabe.main.jp/freebasic/PgSetdate.html#start では
SetDate m + "/" + d + "/" + y
とあり、Format() 関数を使うように変更すると
SetDate Format(A_DATESERIALdouble, "mm/dd/yyyy")
と書き換え可能です。

今のところ、NTPサーバーに対して送る ユニックス時刻 作成ルーチンと、その逆関数を作成中です。
ですから、いろいろな動作試験はちょっと先になります。
関数を作ったらば、正関数を通して得た演算値を、逆関数に送って戻ってきた演算値が、最初に使った値と同じになるか、を延々と繰り返します。
ループバック試験と同じようなこと
https://ja.wikipedia.org/wiki/%E3%83%AB%E3%83%BC%E3%83%97%E3%83%90%E3%83%83%E3%82%AF
を正関数、逆関数で延々続けます。
適当な間隔で第三者の計算値を利用する場合もあります
初期には定義域を定めて、乱数で作った値で比較します。
これを本格的にやると、1か月ぐらいかかります。

309 :渡辺真:2020/03/07(土) 14:07:11 ID:DREGeK3h.net
一年ぶりに、FreeBASIC 日本語版マニュアルを更新しました。
2020年3月3日までの英文版 Wiki の変更を反映したつもりです。
昨年、英文 Wiki は「プログラマーのための案内」が充実し、プログラム例が増えました。
http://makoto-watanabe.main.jp/freebasic/CatPgProgrammer.html

FreeBASIC は、マルチ・プラットフォームで、描画や数値計算など、高速で実行できる、広範囲の分野のプログラムを作成できます。
分からないことがあったら、コミュニティに問い合わせると短時日で解決が得られます。
FreeBASIC は、プログラミング自体を楽しむことができる、優れたプログラム言語です。
FreeBASIC は、エンターテインメントです!!

310 :デフォルトの名無しさん:2020/03/08(日) 18:24:19.12 ID:Bt73oz3/.net
ユニックス時刻については
G:\FBProject\Inc\incFB\curl.bi
内に、関数が用意されているみたい。
最初 As Tm Ptr で*.BIを検索したがほとんど見つからず(Time.BIぐらい)
As Time_t で検索したら結構見つかった。
クライアント系を探すのであれば、curl.bi を眺めることとなる。
現在、関数名とそれの機能をコメント行で書き込み中。

>>309 >エンターテインメントです!!
大型コンピューターの取扱説明書に書かれているコマンドを一つ一つ手入力で打ち込んで
動かない
例を集めた。メーカーの人は絶句し、シスオペや保守員は「そりゃ遊びだ」といった。
説明文の内容を突き合せてゆくのは、結構楽しいかもしれない。

昔のTheベに乗っていた内容として、マージャンゲームを作ったらば、実際に動かして、役満がそろうかの動作試験をやるみたい。
この時の悲哀が掲載されていた。
時間が限られているプロのプログラマーと私のような日曜プログラマーでは、考え方が違いますから。
個人で逆汗できた昔の内容と、今は違います。

311 :渡辺真:2020/03/21(土) 14:02:48 ID:p9cNf5xv.net
Windows 用 GUI ライブラリ Window9 の日本語マニュアルを更新しました。
これを利用すると、FreeBASIC のプログラムを簡単に書けるようになります。

画面とコードの例(これは、ほんの一部です)
http://makoto-watanabe.main.jp/freebasic/Window9/W9S.html

312 :渡辺真:2020/04/19(日) 12:59:00.45 ID:dxFBh1Cp.net
スレ違いですが、「Processing」というプログラム言語&開発・実行環境を知りました。
 作成したプログラムは、「アプリケーション(exe)としてエクスポート」で、単独で実行できます。
 驚いたことに、プログラムファイル(拡張子 pde)は、そのまま Web 上で動作します!!
 作例:
・足し算とひき算の問題を自動生成
http://makoto-watanabe.main.jp/ProcessingAdditionSubtraction10key.html
・ランダムに動きまわる円
http://makoto-watanabe.main.jp/Processing.html
http://makoto-watanabe.main.jp/ProcessingTriangularRelationship.html

  「Processing」は、JavaScript に似た構文なので、Basic 派の私は、逐一マニュアルを参照する必要が有りました。(^^;)

313 :渡辺真:2020/04/25(土) 11:38:52 ID:aI29s4Ad.net
「Processing」で作成した「足し算とひき算の問題を自動生成」を FreeBASIC で書き直しました(^^;)。
http://makoto-watanabe.main.jp/freebasic/Window9/TextGadget.html
Windows 用 GUI ライブラリ Window9 の使い方の事例になっています。

314 :デフォルトの名無しさん:2020/04/26(日) 02:21:26 ID:0Hr/g/4F.net
>>311
いつもご苦労様です
ところで、Google翻訳の成果物を取り込むのはライセンス違反ですが、大丈夫でしょうか?

315 :デフォルトの名無しさん:2020/04/30(木) 19:05:30 ID:f2FW1ZdI.net
特に考えずに poseidonFB を使用していたのですが、おすすめの IDE はありますか?

316 :デフォルトの名無しさん:2020/04/30(木) 23:27:36 ID:b9TIw4B4.net
未経験から半年でフリーエンジニアになれる人の特徴
https://www.youtube.com/watch?v=YCxu0jn52Qw
フリーランスか会社員かどっちが簡単かについての最終回答
https://www.youtube.com/watch?v=JA4JNSmIdxI
【エンジニア】正社員/派遣社員/フリーランスのメリット・デメリットについて
https://www.youtube.com/watch?v=fTG-eMpwhCg
月収1000万円オンラインサロンオーナーの日常【飲み過ぎ】
https://www.youtube.com/watch?v=lPfWZLatYus&t=107s
借金400万円から人生逆転するまでの軌跡
https://www.youtube.com/watch?v=fXdHlFFUjGY
エンジニアはお金を追求してはいけないという年寄りを論破してみた
https://www.youtube.com/watch?v=qJHCmxFv718
プログラミングスクールを否定する老害どもについて
https://www.youtube.com/watch?v=K2SN-Rr0PgY&t=506s
新人叩きしてる古参勢がすぐ儲からなくなる理由
https://www.youtube.com/watch?v=Ch9Ir8O-iqU&t=332s

317 :渡辺真:2020/05/02(土) 00:02:21.49 ID:Wok0+Aw1.net
>>315
私は IDE として「FbEdit」を使い続けています。
よく似たインタフェースで、進化中の IUP_FB_EDITOR(fbnp) も注目です。
https://www.freebasic.net/forum/viewtopic.php?f=8&t=26030&p=271056#p271056
日本語化表示できます。(近日中に日本語ファイル更新予定)

318 :デフォルトの名無しさん:2020/05/02(土) 22:09:49.34 ID:I06UgVGn.net
>>317
ご紹介ありがとうございます。トライしてみます。

>>295
遅レスですが、私の場合、Excel VBA で作った数値解析プログラムが重くなりすぎて、
VBA での高速化は限度があったので、そのまま移行できる FreeBasic に行き着いた口です。

319 :渡辺真:2020/05/03(日) 20:06:01.13 ID:jFxgOVuk.net
Windows 用 GUI ライブラリ Window9 を使ったプログラム例を追加しました。
http://makoto-watanabe.main.jp/freebasic/Window9/FreeGadget.html
私はイベント駆動型プログラム?について初心者ですが、それなりに動くものができました。
合わせて Window9 のダウンロード用 chm マニュアルも更新しました。

320 :デフォルトの名無しさん:2020/05/03(日) 22:05:04 ID:jqvaZqjg.net
>>314 に返答が無いようなら、Ubuntu Japamese Teamに言いつけますが、よろしいですか?

321 :渡辺真:2020/05/04(月) 15:22:28.23 ID:f4dB6Utx.net
イベント駆動型プログラムを作ってみて、少しわかりました。
1.イベントのそれぞれの Loop を、それぞれ Sub として切り出す。
2.そのイベントをトリガーにしたい処理は、Sub をコールする部分で、Do While 〜 Loop を使って、イベント呼び出しを限定する。
こうすると、望まないイベントで、プログラムが期待しない動作を開始しないようにできました。

322 :デフォルトの名無しさん:2020/05/04(月) 15:41:53 ID:usbjgFsD.net
>>321
お前、統合失調症か?
それとも単に頭が悪い馬鹿か?

323 :デフォルトの名無しさん:2020/05/04(月) 18:21:59 ID:Ak+sR0h1.net
ライセンス違反してる犯罪者では?

324 :デフォルトの名無しさん:2020/05/05(火) 06:55:55 ID:uFC1n9+a.net
ポテンシャルは高いのに日本でFreeBasicが死んでるのはモラル皆無の害獣渡辺真のせいだろ

325 :デフォルトの名無しさん:2020/05/05(火) 09:17:44 ID:bw52hKqJ.net
普通にニーズが無いだけ

326 :デフォルトの名無しさん:2020/05/05(火) 11:30:26 ID:tMVDStQC.net
>>319
初めてFreeBASICをインストールした初心者です。

Window9 GUIライブラリをインストールしたときに、libLinked_Lists.a とlibwindow9.a、
および Linked_Lists.b と Window9.bi をそれぞれ \window9\Bin\Win32 と \window9\include にコピーしました。
この後、C:\FreeBASIC と C:\FreeBASIC\bin を PATH に登録し、この状態で、>>313 にある例1をコンパイルしても、

C:\FreeBASIC>fbc Hello.bas
Hello.bas(4) warning 5(0): Implicit conversion
C:\FreeBASIC\bin\win32\ld.exe: cannot find -lz

と、エラーになります。

http://makoto-watanabe.main.jp/freebasic/Window9/index.htmlの説明にある
libz.aとlibzlib.aのバイナリは、どこからダウンロードできますか?

327 :渡辺真:2020/05/05(火) 13:34:44 ID:Sb8BQzur.net
libzlib.a は、下記でダウンロードできます。
http://freebasic.ucoz.com/window9/zlib.zip

libz.a は、Window9 の旧バージョンに含まれていました。
https://sourceforge.net/projects/guiwindow9/files/LIBFB.zip/download

328 :渡辺真:2020/05/05(火) 13:46:50.44 ID:Sb8BQzur.net
FreeBASIC で使うライブラリは、下記でダウンロードできます。
https://sourceforge.net/projects/fbc/files/Older%20versions/0.90.1/Binaries%20-%20Windows/Libraries/
http://users.freebasic-portal.de/stw/files/prog/fb/libs/
https://sourceforge.net/projects/fbc/files/Tools/Libraries/

329 :326:2020/05/05(火) 13:49:14.86 ID:tMVDStQC.net
>>327

ありがとうございます。
ダウンロード後、libzlib.aとlibz.aを\lib\win32にコピーすると無事コンパイルできました。

330 :デフォルトの名無しさん:2020/05/05(火) 14:35:46 ID:0RuMiyCv.net
完全にUbuntu敵に回したな。

331 :デフォルトの名無しさん:2020/05/21(木) 04:35:48.32 ID:PZXKPupC.net
これを入れれば開発環境が一発で出来上がる!というようなのは無いですか?

332 :渡辺真:2020/05/21(木) 12:33:09.30 ID:YWw/IdqU.net
私は使ったことがないのですが、マニュアルに下記の記述が有ります。

WinFBE エディタ(WinFBE_Suite)には、最新の FBコンパイラがパッケージされています。
これはオールインワンのソリューションです。
https://www.freebasic.net/forum/viewtopic.php?f=8&t=25215

試してみて、感想いただければ有難いです。

333 :渡辺真:2020/05/21(木) 12:35:43.53 ID:YWw/IdqU.net
リンク切れが改善されるか試すための再投稿です。
https://www.freebasic.net/forum/viewtopic.php?f=8&t=25215

334 :デフォルトの名無しさん:2020/05/22(金) 04:17:16.75 ID:aJ+CPNlX.net
>>270にあるな
すでに渡辺真が釘さされてて草

335 :渡辺真:2020/05/22(金) 13:04:53.89 ID:ZPF+3cFO.net
思い出させていただき、有難うございます。
私は WinFBE に手を出さなかったおかげで、深みにハマらずに助かりました。

いま本家フォーラムで話題の IDE は、「Visual Freebasic」という中華アプリです。
http://www.yfvb.com/soft-48.htm

336 :渡辺真:2020/05/25(月) 18:26:31 ID:IxTPiC1m.net
IDE-poseidonFB のマニュアルを日本語化しました。
http://www.hi-ho.ne.jp/makoto_watanabe/IDE-poseidonFB/

「環境設定」→「構文解析」で、「含めるレベル」オプションを「1」とすると、 *.bi を何度も解析しないようできます。
キー入力が重たい場合は、「1」レベルのみにすることを推奨します。

337 :デフォルトの名無しさん:2020/05/31(日) 04:27:42.67 ID:SAiqVuFu.net
アホ鍋のサイトの描画系サンプルが悉くコケるんだけど?
謎ライセンス掲げる割にまともに動きもせん入門サイト気取りとか勘弁してほしいわ
探しても見つからなかったんだけどアホ辺のいない日本語FreeBasicコミュニティとかないのかな

338 :渡辺真:2020/05/31(日) 10:32:11 ID:z50UJSkf.net
入門サイト気取りしているわけではなく、心底アホで、いつまでたっても初心者から抜け出せていないだけです。
是非、まともに動いてためになるコードや使い方を教えて下さい。

339 :デフォルトの名無しさん:2020/05/31(日) 16:28:15.26 ID:L+07WD2q.net
志賀慶一みたいなもんか。

340 :渡辺真:2020/05/31(日) 16:56:28.04 ID:z50UJSkf.net
>描画系サンプルが悉くコケる

ご指摘、教えていただいたのですね。取り違えた回答をしてしまってすみません。

FreeBASIC の描画プログラムによっては、Windows の日本語環境で表示されない場合があります。
Microsoft 社にクレームしていますが、一向に改善されません。

描画プログラムを起動して画面に何も表示されない場合は、一時的に英語表示に切替えると表示されます。
英語表示に切り替える方法を追記しました。
http://makoto-watanabe.main.jp/freebasic/CatPgGfx2D.html

341 :デフォルトの名無しさん:2020/06/01(月) 00:22:00 ID:C7mdhzKn.net
まことちゃん、志賀慶一知ってるか?

342 :渡辺真:2020/06/02(火) 10:41:20.65 ID:phjfFIAh.net
>>314
>Google翻訳の成果物を取り込むのはライセンス違反

どのライセンスにどう違反するのか、どこかに規約などの記述があれば、教えて下さい。

343 :渡辺真:2020/06/02(火) 10:48:37.66 ID:phjfFIAh.net
ちなみに私は「Google 翻訳」と「DeepL 翻訳」を利用しています。
http://makoto-watanabe.main.jp/hotvbs.html#Excite
http://makoto-watanabe.main.jp/vba_internet.html#GoogleDeepL

344 :デフォルトの名無しさん:2020/06/04(木) 07:47:49.82 ID:P6U1ANsF.net
お前は翻訳以前にまず日本語の勉強しろって

345 :渡辺真:2020/06/04(木) 17:02:47.29 ID:h3UtpY21.net
そういう意味では、「DeepL 翻訳」は、私も感心する巧みな日本語表現をしてくれます。
是非お試しを。

346 :デフォルトの名無しさん:2020/06/04(木) 17:45:47 ID:3iycik2n.net
渡辺真に巧みな日本語表現とか評価されるってことはクソ翻訳でダメってことじゃねえか

347 :デフォルトの名無しさん:2020/06/05(金) 10:03:48 ID:Dg9d+c6D.net
この開発環境は、なにに向いていますか?

348 :渡辺真:2020/06/05(金) 21:32:37.15 ID:VewhC10J.net
>>347
>この開発環境は、なにに向いていますか?

FreeBASIC は、無料で、広範囲の分野で使えて、高速処理できるのが特長です。
このため、何かプログラム化したいことがあれば、それに使ってみるのが一番です。
不明な点はフォーラムに問い合わせれば、一両日でそれなりの助力が得られます。

初心者が手軽に使いたいという目的なら、私は Excelマクロを推奨します。

349 :デフォルトの名無しさん:2020/06/13(土) 12:31:40 ID:69yKv8xg.net
Excelマクロ…
HSPの方がまだマシだろ

350 :デフォルトの名無しさん:2020/06/14(日) 14:17:24.87 ID:OhKbqveF.net
Windows9でフォームのアイコン変更する方法はありますか?

351 :デフォルトの名無しさん:2020/06/14(日) 17:48:00.98 ID:/s3XFHFh.net
>>337
>>338
ScreenRes呼ぶ前にScreenControl呼ばないといけないのが渡辺真の載せてるサンプルだと
悉く抜け落ちてるからウィンドウが出て即落ちる状態になってるな

>まともに動いてためになるコードや使い方を教えて下さい
そもそも自分で動かして確認してるのか?
適当なコピペ載せてるだけじゃダメだろ
余計なサイト作るから知識のある人達がやる気なくすことも考えるべきなんじゃないかね
無責任なコピペサイト作るくらいなら爆破失踪して"まともな"常識ある有志に任せるべきだと思うけどね
キミがいるからwikiすらない異常な状態だと気付くべきだよ

352 :渡辺真:2020/06/15(月) 00:38:54.04 ID:CLsadZEX.net
>>351
>ScreenRes呼ぶ前にScreenControl呼ばないといけない

Windows10 日本語環境で、描画画面を表示させる方法を教えていただき、有難うございます。
マニュアルに追記しました。
http://makoto-watanabe.main.jp/freebasic/PgScreenres.html

感謝いたします。

353 :デフォルトの名無しさん:2020/06/15(月) 07:29:28.79 ID:2jYZ1459.net
馬鹿すぎて草
シャシャんなって言われてることがわからんのな

354 :デフォルトの名無しさん:2020/06/15(月) 07:32:13.30 ID:mHTAKnl8.net
そろそろUbuntu Japanese Teamに動いてもらったほうが良いのかもな。

355 :デフォルトの名無しさん:2020/06/15(月) 10:42:08.63 ID:4joJvNmf.net
>>350
SetClassLongPtr(hwnd,GCL_HICONSM,hico)で解決しました。

356 :デフォルトの名無しさん:2020/06/15(月) 15:16:41 ID:sGS04N7G.net
>>352
あのさあ…
お前のやることはありがとうございますだの掲示板で教えてもらいましたでもなく
誤った情報を記載してすいませんで画像削除して修正すべきとこだろ
FreeBasicの不具合でもwin10の不具合でもなくお前の頭の不具合でガセ情報垂れ流すとかどういうことだよ

これから人が増えるといいなって段階の言語でデカデカとwin10じゃ不具合あるかのようなデマ記事載せて
試してみようと思う奴がいると思うか?
お前FreeBasicになんか恨みでもあんのかよ

357 :デフォルトの名無しさん:2020/06/15(月) 22:25:56.29 ID:mHTAKnl8.net
Ubuntu Japanese Teamにも一言詫び入れるべきだろな。

358 :渡辺真:2020/06/28(日) 21:19:32 ID:e3otcrxL.net
連想配列(HashMap)を使った事例を追加しました。
http://makoto-watanabe.main.jp/freebasic/tipsHashMap.html
品目マスタ(15,000件)と品目オーダ(50,000件)を照合して、品目別の受注数量・金額・重量を集計する事例です。
 私のパソコン環境で、1秒以下で処理が完了しました。
(Excelマクロから移植したプログラムで、Excelマクロだと 2秒でした。)

359 :渡辺真:2020/07/12(日) 20:33:21.96 ID:dOIliocz.net
FreeBASIC の examples フォルダにある GLib Hash Table
\FreeBASIC\examples\misc\glib\g_HashTable.bas
の解説?ページを作りました。

http://makoto-watanabe.main.jp/freebasic/tipsGLibHashTable.html

私が知る限り、最速の連想配列です。

360 :渡辺真:2020/07/25(土) 22:08:11.06 ID:ETdiN0O3.net
数独のページを追加しました。
http://makoto-watanabe.main.jp/freebasic/tipsSuDoku.html

新聞に「数独の問題、どうやって作るの?」という記事があって、そこに「必ず解ける配置」を人が頭で考えるのに、たっぷり1日かかった、と書かれていました。
興味を持って、私は Excel マクロで作ってみたのですが、この連休 3日間を費やしてしまいました。(^^ゞ
http://makoto-watanabe.main.jp/vba_SuDoku.html

361 :デフォルトの名無しさん:2020/07/26(日) 02:40:01.03 ID:Lwmxod4b.net
そういう類いの問題はprologでやればすぐなのに…

362 :渡辺真:2020/08/01(土) 12:18:38 ID:kkFkidc8.net
>>361
>そういう類いの問題はprologでやればすぐなのに…

教えていただき、感謝いたします。
ググってみたら、ズバリ prolog の数独プログラムが掲示されていました。
prolog のプログラムは、たった 100行ですが、数独の難問を、みごと 11秒で解決しました。
http://makoto-watanabe.main.jp/numplace000000000.png

私の Excelマクロは、この難問を解くために定石ルーチンを追加する必要がありました。
双子、トリプル、Xウイングによる候補除外テクニックをコード化するのに、また 3 日間かかってしまいました。(^^ゞ
この結果、私の Excelマクロは、なんと 1千6百行の大作になりました!!

手続き型言語と論理型言語の違いを痛感しました。
有難うございました。

363 :デフォルトの名無しさん:2020/08/01(土) 13:43:58.45 ID:cVk77Hxz.net
>>362
打てば響く人だね!かくありたいわ

364 :デフォルトの名無しさん:2020/08/03(月) 06:07:14.90 ID:kEjIUDjU.net
わろた
物は言いようだな
アホ辺のサイトに乗ってるコレ

WinFBE エディタ(WinFBE_Suite)には、最新の FBコンパイラがパッケージされています。これはオールインワンのソリューションです。
渡辺 注1:5 ちゃんねるのレポートによると、WinFBE は、日本語を使えるようにするには sjis版の scintilla に差し替える必要があるようです。
>>270でレスしたの俺なんだけどやんわり言ったらこの有様だよ
FreeBasicで遊んでくれる人が増えるといいなって気持ちであって
アホ辺の為に書き込んだわけでもないしがFBの情報の取りまとめ面してるのは胸糞悪いんだけど

わるいけどキチガイの真はクソサイトからそこ削除してくれない
俺お前の事心底嫌いなんだわ

365 :デフォルトの名無しさん:2020/08/03(月) 11:30:46.42 ID:qdvto+rV.net
>>362
俺もためしにSWI-Prologでやってみたら50行ほどのプログラムで0.003秒で出たけど…
11秒はどう考えても時間かかりすぎ。

366 :渡辺真:2020/08/03(月) 13:53:35.75 ID:BggMupgJ.net
>>365
>50行ほどのプログラムで0.003秒

すごいですね。私が使わせてもらったのは、下記のプログラムです。
http://www.nct9.ne.jp/m_hiroi/prolog/prolog16.html
もし貴プログラムをフリーで利用できるなら、是非公開してください。

367 :デフォルトの名無しさん:2020/08/03(月) 15:02:05.34 ID:qdvto+rV.net
>>366
俺の小汚ないコード使わんでも公式のサンプルそのまま使えるだろ。こっちの方がさらに短い。
https://www.swi-prolog.org/pldoc/man?section=clpfd-sudoku

:- use_module(library(clpfd)).
でclpfdライブラリ読み込んどくこと。

368 :渡辺真:2020/08/03(月) 22:03:14.72 ID:BggMupgJ.net
>>367

数独のプログラムを紹介していただき、有難うございます。
ただ、使い方がいまいち不明なのですが、よくわからない数字が並びました。
http://makoto-watanabe.main.jp/ExampleSudokuNG.png

369 :デフォルトの名無しさん:2020/08/13(木) 14:45:55.04 ID:me27utS4.net
「DispCallFunc」を使用した方いますか?

https://qiita.com/palglowr/items/04250eb1a8a873fbf9d2
を見ながらFreeBasicで真似してみたんですが、
「DispCallFunc」で落ちまくります。

「CoCreateInstance」でエクセルは立ち上がっているので、
そこまでは問題ないです。Variant部分だと思うのですが、
どなたか上手く行った方いらっしゃいますか?

Variant部分は
'Dim vArgs(0 To 7) As Variant
Dim vArgs(0 To 7) As Any Ptr
Dim vt(0 To 7) As Integer
Dim pArgs(0 To 7) As Long
'Dim vRet As Variant
Dim vRet As Any Ptr
Dim i As Integer
Dim iidNull As CLSID

な感じで「Any Ptr」で置き換えました。ちなみにvbLongを3じゃなくて「4」で
やっても落ちました。

「disphelper.bi」を使えばエクセルの起動はできるので問題ないのですが、
「DispCallFunc」は興味本位です。

370 :デフォルトの名無しさん:2020/09/04(金) 06:42:00.15 ID:lJr2idgkp
SIer業界がブラックな理由を解説する。エンジニアは自社開発をしているWeb業界がオススメ!
https://www.youtube.com/watch?v=iy4nnAI9og4
エンジニアの仕事が稼げる理由とは?プログラミングスキルと
仕事の需要は比例しないので、実は技術力が低くても稼ぐことができる!
https://www.youtube.com/watch?v=82Bs-NH8jAM
通勤時間が長い人ほど無能説。家賃節約とか言っている暇があったら、
会社の近くに引っ越して浮いた時間に副業したほうがお金も貯まるし強くなれる。
https://www.youtube.com/watch?v=mt6K1RJnk6I
プログラミングに英語は必要か?に対する明確な答え
https://www.youtube.com/watch?v=WWULJbVECKU
私がヤフーを辞めた理由
https://www.youtube.com/watch?v=-G-7Hc3rJw8
【業界研究】IT業界でひと括りにするのは危険。SIer、Web制作、
アプリ開発で仕事内容が全く違います。【就活・転職】
https://www.youtube.com/watch?v=_IJQ2iBkf4w

371 :渡辺真:2020/10/05(月) 22:16:37.19 ID:2Ho5+Lhz.net
ウイルス感染シミュレーション を追加しました。
http://makoto-watanabe.main.jp/freebasic/tipsCoronaVirusSimulator.html

コロナによる世界の死者数は 100万人を超えました。
コロナは、感染後、10日間経過すると、他人への感染力が無くなる、ということが分かっています。
このため、症状の有無にかかわらず、感染者を早期に発見して、宿泊療養施設などに隔離して、家族やまわりの人に感染を拡大させないことが重要です。
感染していない人と、抗体を持った人だけで、安心して企業活動や社会活動をすることが、経済復興につながります。
経済回復している、他国や地域に学んで、日本も、PCR検査拡大を進めてほしいものです。

372 :デフォルトの名無しさん:2020/10/06(火) 21:24:39.40 ID:aqd2SnDc.net
ウイルスはお前の存在だろ
サイトごと消滅しろ害虫

373 :渡辺真:2020/10/10(土) 21:51:51.65 ID:ciCXbSJA.net
dodicat さんの花火?プログラムを紹介します。

http://makoto-watanabe.main.jp/freebasic/tipsFireworks.html

374 :デフォルトの名無しさん:2021/01/05(火) 14:54:21.25 ID:zOsm6XDhK
デキる人ほどフリーランス化する?★働き方改革
https://www.youtube.com/watch?v=ALflcwYOJtQ
年収890万円以下は社会のお荷物★騙される労働者
https://www.youtube.com/watch?v=CAp-ZrJpF54
騙されたくなかったら勉強しろ★他人のルールは損をする
https://www.youtube.com/watch?v=s176O6qKuPw
底辺の99%は一生底辺★10年後が見えない同僚たち
https://www.youtube.com/watch?v=4Mfiwn2sPD8
稼ぎたければ働くな★4千万円ぽっちも稼げないのはなぜ?
https://www.youtube.com/watch?v=Fi7bILN4wes
サラリーマン思考では儲からない理由
https://www.youtube.com/watch?v=iW6oAo0q0ZI
「頭使えよ貧乏人」に思う、寝てても金入るシステムを作る人
https://www.youtube.com/watch?v=VEB6M_s6abs

375 :デフォルトの名無しさん:2021/04/30(金) 18:48:51.90 ID:0p+GO0CzW
フリーランスに立ちはだかる「常駐」の壁。慣例を打ち壊し、
“テレワーク”案件3割→8割へと成長を遂げた「クラウドテック」の軌跡
https://prtimes.jp/story/detail/DBnPOktyljr
テレワークの一般化により、11月にはテレワーク可能案件83.7%へと増加。
2021年、フリーランスのトレンドは「移住&テレワーク」と予測
https://prtimes.jp/main/html/rd/p/000000045.000050142.html
リモートワーク求人専門サイト「プロリモート」がリニューアルオープン、業務委託契約の求職者と企業をマッチング
https://www.value-press.com/pressrelease/262778
1/3以上が採用につながる高マッチング率、リモートワーク×エンジニア・デザイナー専門の
人材紹介サービス「ReworkerAgent」正式リリース場所からも時間からも自由な働き方を実現!
https://www.nishinippon.co.jp/item/o/713384/
フリーランスエンジニア必見!リモートワークや週3案件があるサービス5
https://yokowork.biz/week3_engineer/
地方在住者と都市部の仕事をつなげるリモートワークに特化したリクルートサイト
 「remoteworkers」ワーカー事前募集開始
https://prtimes.jp/main/html/rd/p/000000002.000072591.html
高報酬案件を求めるフリーランスエンジニアのための案件マッチングプラットフォーム
「Pro Connect Enginner(プロコネクトエンジニア)」正式版、2021年2月28日リリース!
https://prtimes.jp/main/html/rd/p/000000005.000042825.html

376 :デフォルトの名無しさん:2021/05/13(木) 15:46:34.65 ID:VRBOsL7l.net
一年ぶりに、FreeBASIC 日本語版マニュアルを更新しました。
2021年5月10日までの英文版 Wiki の変更を反映したつもりです。
昨年につづき、「プログラマーのための案内」が充実して、プログラム例が増えました。
http://makoto-watanabe.main.jp/freebasic/CatPgProgrammer.html

377 :デフォルトの名無しさん:2021/06/05(土) 13:18:45.88 ID:PkbjzTDp.net
Basic自体を学習目的で触ってみようと思って見つけたんだけど
これってかなりCに慣れてないと厳しい?

378 :デフォルトの名無しさん:2021/06/07(月) 23:00:24.39 ID:NgulXIAh.net
書き込み有難うございます。
FreeBASIC は、実用に使うより、学習目的で使うのに向いていると私は思います。
事例や教材が多数あるからです。

FreeBASIC と FbEdit
http://makoto-watanabe.main.jp/program.html#FbEdit
の プログラム事例 をご覧ください。

379 :デフォルトの名無しさん:2021/06/13(日) 06:33:21.32 ID:T1HLFvt4.net
>>377
FreeBasicを学習用途で使うのは全くお勧めできない
本来有能な先人がサンプルや解説サイトを作ってくれたりを期待するところが
375でレスしてる渡辺真とか言うキチガイがその芽を根こそぎ刈り取って厚意をへし折ったからね
日本じゃFreeBasicは完全に死んだよ
英語ができるならワンチャンそっちで独習できるとは思うけども

>>378
お前が本気でそう思ってるならwiki形式で作りなおしておかしなライセンス撤回しろ

380 :デフォルトの名無しさん:2021/06/27(日) 10:58:08.94 ID:SYMfY/Zx.net
FBTrueType(描画画面に日本語を表示)
http://makoto-watanabe.main.jp/freebasic/tipsFBTrueType.html
を追加しました。
日本語フォント(ttf)をそのまま使えて感激しました。

381 :デフォルトの名無しさん:2021/07/03(土) 07:34:02.34 ID:BcbAwRBX.net
>>337
>描画系サンプルが悉くコケる

日本語 IME が描画画面の起動を妨げていることが分かったので、FreeBASIC 1.08.0 で対応改善してもらいました。
https://makoto-watanabe.main.jp/freebasic/CatPgGfx2D.html
お試し下さい。

382 :デフォルトの名無しさん:2021/08/16(月) 19:38:07.97 ID:xe0hV9uc.net
過疎スレに書き込むのもナンだし余計なお世話だろうけど。
ウェブサイトのアイコンは点滅させないほうがいいよ。あと、 OmegaT は導入してなさそうだね。

参考
・視覚障害を意識したWebサイトを作るためのポイント | UX MILK
ttps://uxmilk.jp/69369

383 :デフォルトの名無しさん:2021/09/16(木) 15:40:28.76 ID:MiNir4aK.net
FreebasicでCのgetchar,putcharを使う方法を探しています。
#include "crt\stdio.bi"とすると、とりあえずエラーにならずにコンパイルできますが、
全角文字の出力が文字化けするようです。
Freebasicでパイプ処理ができる小物を作りたい日曜プログラマです。

384 :デフォルトの名無しさん:2021/09/18(土) 14:00:43.76 ID:qMX0D02f.net
関連は不明ですが、コンソール画面で日本語文字の入出力したいときには「Open Cons」を使います。
https://makoto-watanabe.main.jp/freebasic/PgOpenCons.html#Japanese

385 :デフォルトの名無しさん:2021/09/20(月) 15:41:27.04 ID:HYb4RD3U.net
レスありがとうございます。当該サイトは以前見ていましたが、
意味が分からないままでした。
仕事上で、テキストの情報を扱うことが増え、Cv2 K&R の 
入力のコピーが便利で、ちょっと変形して使っています。
sed awk perl の文法を忘れたおやじというところです。
例えば ウィンドウズなら
type a.txt | (filter) > ax.txt とかの処理がしたいわけです。
unix 系 head とか tail とか便利すぎてオプション忘れてますが、
自分のフィルターならまず忘れません。
Cは文字列のサイズのチェックが不安です。
open cons が全角に有効なことは分かりましたが、
入力のEOFの判定はどうしたらよいか、わかりませんでした。
ご教示お願いできますか。

386 :デフォルトの名無しさん:2021/09/20(月) 18:04:48.27 ID:hoQ0j2BT.net
どういうプログラムを作ろうとしているのか理解していませんが、EOF は下記に記述が有りま。
https://makoto-watanabe.main.jp/freebasic/PgEof.html

387 :デフォルトの名無しさん:2021/09/21(火) 10:03:56.06 ID:7NUN8PW8.net
ありがとうございます。うまくいきました。
これで、Freebasicで小物ができそうです。

388 :デフォルトの名無しさん:2021/09/22(水) 12:42:45.93 ID:19eBy2km.net
ほぼ満足のいく小物出来ました。いろいろに使います。
Freebasicはc並みに小さくて速いんで、重宝しています。
それと
このサイトに来るたび、渡辺さんへの悪口を目にするんですが、
あれは、このサイトのジョークとか礼儀なんですかね。
自分は感謝しています。

389 :デフォルトの名無しさん:2021/09/23(木) 16:41:47.77 ID:PHWkHdt2.net
プログラム開発を楽しんでいただけてよかったです。

過疎スレなので、たまたま立ち寄った閑古鳥さんが、激励の書き込みをしてくださるのは、有難いことです。

390 :デフォルトの名無しさん:2021/10/27(水) 10:20:29.70 ID:XE3bmMwX.net
ろりぽっぷってまだあるんだ

391 :デフォルトの名無しさん:2021/11/08(月) 20:02:56.01 ID:LyWkMbL6.net
ロリポップのエコノミープランは良いですよ!
ディスク容量:30GB
料金:132円/月
CGI利用可

392 :デフォルトの名無しさん:2021/11/16(火) 20:23:59.73 ID:qGAt8mtx.net
UEZ さんの描画関連プログラム集:美しさ-数学の魔法
は面白いですよ。
https://www.freebasic.net/forum/viewtopic.php?f=7&t=29021
下記で一括ダウンロードできます。
https://www.mediafire.com/file/64z8zpob2jirec4/The_beauty_-_magic_of_math_Vol._I_-_VII_build_2021-10-07.7z/file

393 :デフォルトの名無しさん:2021/11/16(火) 20:29:10.44 ID:qGAt8mtx.net
リンクで 7&;t=29021 のセミコロンは外して下さい。
https://www.freebasic.net/forum/viewtopic.php?f=7&t=29021

394 :デフォルトの名無しさん:2021/11/17(水) 10:48:24.62 ID:wlAtkNPK.net
最近可笑しな方向にURL改変されることが多いね

395 :デフォルトの名無しさん:2021/11/21(日) 23:49:14.05 ID:X4BrrMt1.net
入門サイト欲しい

396 :デフォルトの名無しさん:2021/11/22(月) 17:35:21.64 ID:Ceedem6V.net
下記をお試し下さい。

プログラマーのための案内
https://makoto-watanabe.main.jp/freebasic/CatPgProgrammer.html

分かりにくいところなど指摘してもらえば、できる範囲で追加・修正などします。

397 :デフォルトの名無しさん:2021/12/06(月) 22:41:24.01 ID:89f8pumb.net
そこのサイト既に使いこなせてる人の逆引きにはいいのかもだけど
まったく初心者向けではないだろ

398 :デフォルトの名無しさん:2021/12/20(月) 06:55:36.22 ID:3MMk62pZ.net
QBやVBの経験あれば余裕でわかるだろ

399 :デフォルトの名無しさん:2021/12/22(水) 21:14:34.91 ID:v5ki7GHL.net
それ初心者入門者言わんのでは?

400 :デフォルトの名無しさん:2022/02/01(火) 19:59:40.38 ID:kzqpJ7vS.net
ライブラリ containers の hashtable(連想配列)を追加しました。
https://makoto-watanabe.main.jp/freebasic/tipsHashTable.html

コーディングしやすく高速で動きます。

401 :デフォルトの名無しさん:2022/02/20(日) 18:40:05.75 ID:y27KtNSa.net
FreeBASIC 日本語版マニュアルを更新しました。
Version 1.09.0 に対応しています。
CHM 版は、下記でダウンロードできます。
https://makoto-watanabe.main.jp/freebasic/FB-manualJP20220219.zip
修正すべき点、加筆すべき点など、ご指摘、ご意見を、お願いいたします。
FreeBASIC で遊んでみて下さい。

402 :デフォルトの名無しさん:2022/04/06(水) 16:56:44.10 ID:deMYqB3T.net
Q Q
Q Q
Q Q
Q Q

403 :デフォルトの名無しさん:2022/04/30(土) 14:19:45 ID:OFr0Yyth.net
FreeBASIC用 GUI ライブラリ window9 の日本語ヘルプを更新しました。
https://makoto-watanabe.main.jp/freebasic/Window9/
https://makoto-watanabe.main.jp/freebasic/Window9/W9S.html
これを利用すれば、オリジナルのテキスト・エディタを自作できるかもしれないですね。

404 :デフォルトの名無しさん:2022/04/30(土) 16:10:55 ID:psUVU9y1.net
誰もこれを使ってそんなものは作らない

405 :デフォルトの名無しさん:2022/05/03(火) 15:20:46.01 ID:oHIcXjBJ.net
テキスト・ファイルを読み込んで、文字の使用頻度を数えるプログラムを作ってみました。
https://makoto-watanabe.main.jp/freebasic/Window9/HashTable.html#window9HashTableTest4
FreeBASIC は、ShiftJIS だけでなくユニコードの日本語テキストを、簡単?に取り扱うことができます。

406 :デフォルトの名無しさん:2022/06/06(月) 17:46:00.09 ID:Li5xvATu.net
以前教えてもらったopen cons で 
標準入力のテキストの最初の行を削除する小物作りました。
無事動いて、gccの実行ファイルが53kbだったのに対して
fbcは40kbで少し感動しました。

407 :デフォルトの名無しさん:2022/07/25(月) 23:51:32.93 ID:zIJWbh9D.net
FreeBASIC のフォーラムに投稿された、文字列置換関数を、まとめて紹介します。
https://makoto-watanabe.main.jp/freebasic/tipsReplaceFunction.html
いずれも日本語文字列の置換に対応しています。

408 :デフォルトの名無しさん:2022/08/11(木) 16:06:26.63 ID:6w5B40xw.net
freebasicをリナックスミントにインストールして遊んでいます。
コンパイルしたものは無事に動いていますが、
軽いエディターでbasファイルのシンタックスハイライトが効きません。
vimは良好ですが、geanyは配色がイマイチです。
nanoでハイライトのカスタマイズができそうですが、やり方がわかりません。
geanyとnanoのシンタックスハイライトのカスタマイズ誰か教えてくれませんか。

409 :デフォルトの名無しさん:2022/08/13(土) 11:02:02.73 ID:VJRNXx4d.net
下記に Windows版ですが Geany を使う記述があります。
http://syntaxerror445.blog21.fc2.com/blog−entry−6.html
私は Linux は分かりませんが。

410 :デフォルトの名無しさん:2022/08/13(土) 11:20:05.90 ID:VJRNXx4d.net
↑ ERROR: Rock54: Warning: NGワード禁止!となったので、英文字は全て全角にしています。

411 :デフォルトの名無しさん:2022/08/13(土) 18:28:55.81 ID:VJRNXx4d.net
軽いかどうかは分かりまぜんが IDE-poseidonFB も Linux で使えるはずです。
設定で容易に色変更できます。

412 :デフォルトの名無しさん:2022/08/14(日) 00:01:19.57 ID:549c+n4K.net
たぶん、FC2 がNG ワードなんだろう。
はてな・twitter などで、投稿が吸い込まれて、一発アク禁になる事もある

5ch では、他の掲示板・ブログの宣伝はできない

413 :デフォルトの名無しさん:2022/08/14(日) 10:53:21.11 ID:VI2zLni0.net
fc2

414 :デフォルトの名無しさん:2022/08/14(日) 10:53:56.42 ID:VI2zLni0.net
entry

415 :デフォルトの名無しさん:2022/08/14(日) 10:54:09.25 ID:VI2zLni0.net
blog

416 :デフォルトの名無しさん:2022/08/15(月) 23:10:25.73 ID:pXqc6sJP.net
>>409 408
レスありがとうございます。
geanyは、IDEとしては、初めて使ってみました。高性能ですね。
IDE-poseidonFBも知りませんでした。
ただ、自分は小さいものしか作れないので、
vim以外のCUIのエディターで、
ハイライト出来たらなと思ったものです。
(geanyはGUIですが。)
スレ違いかもしれません。もう少し調べてみます。

417 :デフォルトの名無しさん:2023/02/19(日) 13:08:44.65 ID:H+AN10kP.net
FreeBASIC 日本語版マニュアルを更新しました。
2023年1月23日までの英文版 Wiki の変更を反映したつもりです。

CHM 版は、下記でダウンロードできます。
https://makoto-watanabe.main.jp/freebasic/FB-manualJP20230218.zip

継承ポリモーフィズムで、暗黙的 / 多重定義 New([]) と Delete([]) 演算子を使う
https://makoto-watanabe.main.jp/freebasic/ProPgUseNewDelete.html
は、私の理解を超えているので翻訳を中断しています(^^ゞ

418 :デフォルトの名無しさん:2023/06/16(金) 20:25:13.87 ID:hAuwC8s7.net
Visual FreeBasic という名前の統合開発環境を見つけました。
FreeBASIC-1.10.0 を同梱しているので、これだけで FreeBASIC を使えるようになります。
https://makoto-watanabe.main.jp/freebasic/helpVisualFreeBasic.html

ソース・コードに、前処理で Visual Freebasic のライブラリを組込んだ上で VBC に渡してコンパイルするので、変数名、関数名に「日本語」を使える点が特長です。

419 :デフォルトの名無しさん:2023/07/04(火) 08:09:07.67 ID:dnMMyz95J
税金泥棒の集會ΝΡтとかいう茶番に腹筋割れそうじゃね
都心まで数珠つなぎて゛騷音に温室効果カ゛スにコ囗ナにとまき散らさせて、気侯変動させて海水温上昇させて地球破壞して.
曰本と゛ころか世界中て゛土砂崩れに洪水.暴風、大雪、猛暑.干ばつ.森林火災にと災害連發させて.
世界中の人々をシ゛ェ丿サイド殺害してるってのに、それに比へ゛れは゛核兵器なんか.すかしっへ゜ほと゛のものて゛しかないだろ
鉄道のз〇倍以上もの温室効果ガスまき散らして經済を破壊するクソ航空機禁止条約やってから寝言ほさ゛けや脳タリン
特に化石賞連続受賞していなか゛らJALだのΑNAた゛のテロリス├と天下り賄賂癒着して好き放題腐敗を謳歌してる
世界最惡の殺人腐敗テ口組織公明党斎藤鉄夫ら國土破壊省なんて、いまだに滑走路にクソ航空機にと倍増させて
旅行支援もとい人殺し支援だのと税金で地球破壊して他國に核攻撃以上の被害を与えてるテロ國家だと自覚して薄汚いクヒ゛掻っ切れや

創価学会員は,何百萬人も殺傷して損害を与えて私腹を肥やし続けて逮捕者まて゛出てる世界最惡の殺人腐敗組織公明党を
池田センセ─が囗をきけて容認するとか本気で思ってるとしたら侮辱にもほと゛か゛あるそ゛!
hΤТрs://i,imgur、cоm/hnli1ga.jpeg

420 :デフォルトの名無しさん:2023/06/24(土) 21:16:05.21 ID:c7BHf1ld.net
また誘ってんの?

421 :デフォルトの名無しさん:2023/07/04(火) 03:09:51.64 ID:ZyJ9aZuM.net
星∞!!!!
輔∞!!!!!
団∞!!!!!!
鷹∞!!!!!!!
聡∞!!!!!!!!
史∞!!!!!!!!!
手∞!!!!!!!!!!
衆∞!!!!!!!!!!!
帽∞!!!!!!!!!!!!
判∞!!!!!!!!!!!!!

422 :デフォルトの名無しさん:2024/01/20(土) 08:28:41.27 ID:wroiQeQ5.net
久しぶりで訪問しました。魅力的なコンパイルなのに使ってる人が少ないのは残念です。
ふと、聖書「プログラミング言語C v2」の「簡単な入門」のところだけでもいいんで、
FreeBasicで書くとこうなるみたいなチュートリアルがあったらいいなと想いました。
自分には荷が重いので、誰かやってみませんか?

423 :デフォルトの名無しさん:2024/01/20(土) 09:29:44.16 ID:G8JgaJSe.net
こんなスレがあったんだな
このスレを見ると40年前の自分よりレベルの低い人間ばかりだと気が付く

424 :デフォルトの名無しさん:2024/01/21(日) 20:00:39.78 ID:XDHQAK/5.net
プログラミング言語は道具なので、事例から入ると興味がわくと思います。
掲示板に掲載された事例の一部です。
https://makoto-watanabe.main.jp/freebasic/TipsTricks.html

BASIC(Beginner's All purpose Symbolic Instruction Code:初心向けの万能記号命令コード)言語なので、誰でも取りかかれるでしょう。

425 :デフォルトの名無しさん:2024/01/22(月) 22:33:41.07 ID:sW5iz7eI.net
>>423
40年前のあなたの方が人間的にはましだったかもしれませんね。
40年間余り自分も進歩してませんが。
>>424
いつもありがとうございます。
しかし、K&Rv2が聖書と言われるのは、c言語の紹介をしながら、
コンピュータプログラミングの根本的な思想と手法を体現しているからだと思います。
freebasicが例えばOSやコンパイラの記述に向いているかどうかは自分は判断できませんが、
可能性があるように感じているんですが。

426 :デフォルトの名無しさん:2024/01/23(火) 20:19:04.86 ID:+pdp0myK.net
FreeBASIC は自己ホスティング・コンパイラで、自分自身をコンパイルしています。
https://makoto-watanabe.main.jp/freebasic/DevBuild.html

https://makoto-watanabe.main.jp/freebasic/CompilerFAQ.html#item35
"FreeBASIC で、OS を書いてもよいですか?"
という質問に対して、
OS をコーディングすることが、名案であるかどうか、ということなら、答えは、「いいえ」です。あなたが、初心者であれば、なおさらです。
という回答があります。

427 :デフォルトの名無しさん:2024/03/20(水) 13:59:39.43 ID:Bv0XSvAu.net
FreeBASIC 日本語版マニュアルを更新しました。
2024年3月14日までの英文版 Wiki の変更を反映したつもりです。

CHM 版は、下記でダウンロードできます。
https://makoto-watanabe.main.jp/freebasic/FB-manualJP20240317.zip

428 :デフォルトの名無しさん:2024/03/20(水) 15:40:19.62 ID:os6Ph0K2.net
コンパイルで、EXEが生成できて、そのEXEのファイルを
他のウインドウズ機にコピーして、そのウインドウズ機で
その、EXEを起動すると、動くのかな❓

モチロン、日本語はNGでも、ローマ字は、ポクは読み書き
バッチリだから、使ってみようかな。どうしようかな?

429 :デフォルトの名無しさん:2024/03/20(水) 16:44:19.38 ID:Bv0XSvAu.net
興味を持っていただいて有難うございます。

表示は勿論、変数も日本語 OK です!
https://makoto-watanabe.main.jp/freebasic/helpVisualFreeBasic.html

249 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★