hirokiさんのサンプルを参考に getstr 命令の関数も作りました☆
getstr の場合は、strsize を返せばいいのか、
取得した文字列を返せばいいのか迷いましたが、前者にしました。
載せる価値もないかもですが、動くサンプルを含めて、
「出来ました」という意味で以下に紹介します。
//============================================================================
/*
HSP命令 関数化モジュール
*/
//============================================================================
#module
// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
// ■ exist p1
// ■
// ■ RV = existf( str p1 )
// ■ RV : strsize
// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
#defcfunc existf str p1
exist p1
return ( strsize )
// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
// ■ getstr p1, p2, p3, p4
// ■
// ■ RV = getstrf( var p1, var p2, int p3, int p4 )
// ■ RV : strsize
// ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
#defcfunc getstrf var p1, var p2, int p3, int p4
getstr p1, p2, p3, p4
return ( strsize )
#global
name1 = "cfunc.as"
name2 = "xxxxx.xxx"
if existf( name1 ) != -1 :mes name1 + "は存在します" :else :mes name1 + "は存在しません"
if existf( name2 ) != -1 :mes name2 + "は存在します" :else :mes name2 + "は存在しません"
txt = "こんにちわ。\nこれは getstr 命令を、\n関数化するテストです。"
n = 0
len = strlen( txt)
repeat
n += getstrf( text, txt, n )
mes "\n"+text
if n == len :break
loop
他に関数化した方が便利な標準命令を探したのですが、これしかありませんでした。