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

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

713名無しさん:2017/02/27(月) 05:38:49
CHOOSEFONTの 「フォント」にはFONT構造体型の変数を指定します。
フォント選択ダイアログで選択されたフォントの情報がFONT構造体に格納されます。

#include "WINDOWS.BI" '-- FONT構造体の定義が読み込まれます。
var FFONT as FONT '---- 変数名FFONTの「FONT構造体」を宣言

 ヘルプ「プログラミングガイド」の [ダイアログボックス] - [コモンダイアログボックス]の
頁の[フォント選択ダイアログボックス]の説明にプログラム例があります。

SETFONT命令などでフォントの設定をしてから描画命令を実行します。

FONT構造体型の内容です(※ヘルプのどこかの頁には誤記があったような気が)。
type FONT

size as single 'フォントサイズ
bold as integer 'ボールド(太字)指定の有無
italic as integer 'イタリック(斜体)指定の有無
underline as integer 'アンダーライン(下線)指定の有無
strikeout as integer '消し線指定の有無
ffname as string * 32 'フォント名

end type

 なお、このFONT構造体はF-BASIC専用です。Windows APIのFONT構造体等とは違いますので、
F-BASICの組込命令を使用せずにフォント選択ダイアログを呼び出したり、
Windows APIでフォント操作をする場合には適用できません。

714名無し:2017/03/10(金) 21:50:57
ご指導有難う御座いました、不在にしてたので遅くなりました。「プログラミングガイド」に
少し記載がありました。いろいろ試してみます。今でもXPで使用してる古いソフトをリニュウアル
してみようと思っています。また解らないことがあったら投稿します。有難う御座いました。

715keinin55:2017/11/21(火) 08:48:57
F-BASICのBinにあるエラー解析ツールFBANZ63.EXEについてご教授ください。
プログラムでエラーが発生した時、解析ツールのレジストリー読込みで表示されるエラー状況の中に
APIエラーという項目がありますが、この値はどこを参照しているのでしょうか
レジストリーの場所?が解れば教えてください。

716名無しさん:2017/11/22(水) 08:13:29
>715 keinin55 様
FBANZ63.EXEのメニュー[レジリストリ(R) - 読み込み(R)]で表示される内容の参照元は
レジストリ“HKCU\Software\FUJITSU\F-BASIC V6.3\RUNTIME\ERROR”キーらしい。

APIERR [DWORD値] - たぶん「APIエラー」の参照元
CODE [DWORD値] - たぶん「エラーコード」のコード値(F-BASICのERR関数の値)
FUNC [DWORD値] - たぶん「内部関数名」を示すコード値、おそらく3Bytes長範囲値
INFO [DWORD値] - たぶん「補足情報値」おそらく1Byte長範囲値

おそらくはFUNC+INFOとランタイムバージョンとで、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(省略可)

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

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

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

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