横河電機製デジタルオシロスコープ(DL1740)より取得した波形データを
フーリエ変換し表示させようと思っています。過去に使ったBASICプログラムを
VisualBasicプログラムに書き換えようとしているのですがその方法が全く解かりません。もし書き換えの仕方を知っている方やこれに関する情報が載っているサイトを知っている方がいらっしゃったら教えて下さい。よろしくお願いします。
>過去に使ったBASICプログラム
ってまさかN88Basicですか、まさかね。
QuickBasicですか?
名前を変換しようとして送っちゃった。(^^;
ちょっとどのBASICかは解かりませんが下にプログラムの一部を載せときます。ちなみにVB6.0に書き換えようとしています。
i = 0 'Definition Of Sampling Interval
j = 0
k = 0
l = 0
If (Abs(am(i) - Amin) > 2) Then
i = i + 1
End If
If (j = 0) Then
j = j + 1
End If
If (i - l > 300) Then
start = Fix(k / j)
End If
j = j + 1
k = k + i
l = i
i = i + 1
If (i < 999) Then
GoTo if (abs(am(i)-Amin)>2) then
i = i + 1
End If
End If
Print "Two minimums are not found."
GoTo Input #"Push Local and Return";AAA
GoTo If (abs(am(i)-Amin)>2) Then
i = i + 1
End If
start = Fix(k / j)
j = 1
k = i
l = i
i = i + 1
If (Abs(am(i) - Amin) > 2) Then
If (i - l > 10) Then
fine = Fix(k / j) - 1
End If
End If
j = j + 1
k = k + i
l = i
GoTo i=i+1
If (i - 1 > 10) Then
fine = Fix(k / j) - 1
End If
GoTo i=i+1
fine = Fix(k / j) - 1
Print fine + "-" + start
pt = fine - start + 1
n = 64
Print n; "Points"
こんな感じです。
QBASICっぽぃなw
構造化プログラムが書けて喜んだ記憶がある(ぇ
>GoTo Input #"Push Local and Return";AAA
…こういうの書いて動いた気分がしないのだが…(orz
ま、オレの知らない構文なんて一杯あるわけか(U゜∀゜U
とりあえず、Abs関数とFix関数は同じ処理だと思われw
構文も、まぁ一部のGoto命令を除けばVBの構文と合致すると思う。
Print文は、Debug.PrintやForm.Printなどでまかなえるとして、
Input文は(知ってる範囲では)なくなったと思う。
代用する関数を用意すれば解決できるだろう。
※さて、定例の誤爆会議を開始s(ry
>Definition Of Sampling Interval
サンプリングの周期の設定と書いてあるよ。
>GoTo If (abs(am(i)-Amin)>2) Then
これはQBではないな。
HPBasicでもなさそうだし。。。。
この
>GoTo Input #"Push Local and Return";AAA
と
>GoTo i=i+1
あたりが判れば、変換はそんなに難しくなさそうな。
なにをしてるプログラムで何の上で動いたいたのか判れば
何とかなるかも。
問題は、データを読み書きしている部分があるとやっかいです。
(この部分は作り直す方が簡単)
どの位のステップのコードか知りませんが、どちらにしても
手作業で変換する事になるので作り直すのと殆ど同じ手間がかかるかと
思いますよ。
私的には、そのコードをVB6.0用に書き換えるより、一から作り直した方が
早いような気がします。
場合によっては、VB6.0に書き換えるより、F-BASIC に変換するなら
簡単です。(こちらは自動で書き換えできる)
http://www.pst.fujitsu.com/products/fbasic/
VB6,0からF-BASICで試したらうまくいきました。また他の案でも試してみます。
ねろさん、ガッさん、花ちゃんさんの皆さん、どうもありがとうございました。
大変役に立ちました!
ツイート | ![]() |