したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

■■■20レス以内で済むF-BASICの質問はこちらへ■■■

717k5:2018/09/06(木) 17:35:13
こんにちは

相変わらず頑張ってF-BASICを使っています。

今回はWindows10で動くバッチファイルの中でforループから抜け出す判断をF-BASICで作ったプログラムで行おうと思っています。たとれば、このようなバッチファイルの中でhoge.exeというプログラムをF-BASICで作った場合、コマンドの実行結果としての戻り値(終了コード)を出すような関数はF-BASICに用意されていますでしょうか。

setlocal enabledelayedexpansion
for %%f in (*.txt) do (
call hoge.exe %%f
if !ERRORLEVEL! == 1 @echo %%f:ダメです。>> log.log
if !ERRORLEVEL! == 0 @echo %%f:OKです。>> log.log
)
endlocal

https://qiita.com/OutOfServiceExeption/items/031f9b55f35489624a3b

718k5:2018/09/06(木) 17:55:30
すいません、自己解決しました。

endを使えばでいいんですね。

echo off

setlocal enabledelayedexpansion
for /l %%a in (1, 1, 10) do (
call print_env.exe
if !ERRORLEVEL! == 1 @echo 1です。
if !ERRORLEVEL! == 0 @echo 0です。
)
endlocal

print_env.bas

print "hello"
end 1

719k5:2021/02/16(火) 08:36:51
こんにちは、まだF-BASICで頑張っています。

テキストファイルをシーケンシャルモードでopenして何行か読んだ後に、また少し戻って読み直すのって出来ましたでしょうか。

例えば、

open "test.txt" for input as #1

input #1,line1$
input #1,line2$
input #1,line3$
input #1,line4$
input #1,line5$

とした後に、また3行目のline3$を読みたい場合、現在のファイルポイントから3行前に戻るという命令はなかったでしょうか。

720名無しさん:2021/02/21(日) 04:17:41
いくつか方法はあると思いますが、
1.バイナリモードでオープンすればseek命令/関数が使えますが、FREADで読みこむことになります。
2.open for inputを同時に複数オープンしておき、読込処理行数をカウントしながら読み、
戻る必要がある分についてはもう一方のオープンしたほうで遅れて読み進めることで代替。
3.戻る可能性のある行数分の配列変数を用意しておき、配列に格納しながら読み進めることで代替。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板