文字列を扱うユーザ定義関数としてよくある感じのものを作成してみました。
以下のソースが5個の関数を宣言しています。
エラー処理を各関数に入れましたが、必要ないかもしれません。 また、引数の文字列の長さチェックは行っていませんので、必要ならば追加して下さい。
これらの関数の実行ソースは以下の様になります。
これを実行すると以下の様な表示になります。
■関連記事
⇒BHT-BASIC:DENSOのハンディターミナルの開発言語のBHT-BASIC4.0を使ってみた
⇒BHT-BASIC4.0:変数宣言の書き方(BHT-1300)
⇒BHT-BASIC4.0:変数宣言の書き方その2(BHT-1300)
⇒BHT-BASIC4.0:ユーザ定義関数について(BHT-1300)
⇒BHT-BASIC4.0:演算子について(BHT-1300)
⇒BHT-BASIC4.0:画面への表示について(BHT-1300)
⇒BHT-BASIC4.0:キー入力について(BHT-1300)
⇒BHT-BASIC4.0:数値用キー入力関数(ユーザ定義関数)について(BHT-1300)
⇒BHT-BASIC4.0:ユーザ定義関数の値渡し・参照渡しについて(BHT-1300)
⇒BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその2
⇒BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその3
⇒BHT-BASIC4.0:TeraTermを使ってDENSOのハンディターミナルにファイル(プログラム)転送を行う方法
⇒BHT-BASIC4.0:I/OポートとWAIT、さらにTIMERについて(BHT-1300)
⇒BHT-BASIC4.0:データファイルの取り扱いについて(BHT-1300)
⇒BHT-BASIC4.0:データファイルの取り扱いについてその2(書込み・読込みの実用的な関数)
⇒BHT-BASIC4.0:データファイルの検索について(SEARCH関数)
⇒BHT-BASIC4.0:ユーザ関数の引数の仮変数に対する代入の注意点
⇒BHT-BASIC4.0:データファイルの削除等について(KILL、CLFILEのラッパ関数)
⇒BHT-BASIC4.0:ファイルの存在確認関数を作ってみました
⇒BHT-BASIC4.0:拡張関数のバイナリサーチ処理関数(BSEARCH.FN3)の使い方
⇒BHT-BASIC4.0:拡張関数のサーチ処理関数(SEARCH.FN3)の使い方
⇒BHT-BASIC4.0:簡単なメニュー表示・選択を行うユーザ関数について
⇒BHT-BASIC4.0:ファイル伝送におけるXFILE命令の使い方
⇒BHT-BASIC4.0:バーコードの読込み(バーコードスキャン)について
⇒BHT-BASIC4.0:Bluetoothデバイスアドレス取得等について
⇒VB.NET:ハンディターミナル(BHT-1300等)とのデータファイルの送受信について
関数定義 | 引数 | 戻り値 |
---|---|---|
半角空白文字列生成Function GfSpc$(byval pintCnt%)[128]
|
pintCnt%:文字数を指定 | GfSpc$:空白文字列 |
右側半角空白削除Function GfRTrim$(pstrValue$)[255]
|
pstrValue$:対象文字列 | GfRTrim$:結果文字列 |
左側半角空白削除Function GfLTrim$(pstrValue$)[255]
|
pstrValue$:対象文字列 | GfRTrim$:結果文字列 |
前後の半角空白削除Function GfTrim$(pstrValue$)[255]
|
pstrValue$:対象文字列 | GfTrim$:結果文字列 |
文字列繰り返しFunction GfString$(pintSize%, pstrChr$)[255]
|
pstrChr$:対象文字 pintSize%:文字数(最大1~255) |
GfString$:結果文字列 |
以下のソースが5個の関数を宣言しています。
エラー処理を各関数に入れましたが、必要ないかもしれません。 また、引数の文字列の長さチェックは行っていませんので、必要ならば追加して下さい。
- '---------------------------------------
- '定数宣言:共通⇒(これは別ファイルにすべき)
- '---------------------------------------
- Global GcTrue% : GcTrue% = -1
- Global GcFalse% : GcFalse% = 0
- '---------------------------------------
- '半角空白文字列生成
- '---------------------------------------
- 'Function GfSpc$(byval pintCnt%)[128]
- '引 数:
- ' pintCnt% :文字数を指定
- '戻り値:
- ' GfSpc$ :空白文字列
- '---------------------------------------
- Function GfSpc$(byval pintCnt%)[128]
- Private strSpc$[128]: strSpc$ = ""
- Private i%
- If pintCnt% > 128 Then
- pintCnt% = 128
- Endif
- For i%=1 To pintCnt%
- strSpc$ = strSpc$ + " "
- Next
- GfSpc$ = strSpc$
- End Function
- '---------------------------------------
- '右側半角空白削除(Rtrim)
- '---------------------------------------
- 'Function GfRTrim$(pstrValue$)[255]
- '引 数:
- ' pstrValue$ :対象文字列
- '戻り値:
- ' GfRTrim$ :結果文字列
- '---------------------------------------
- Function GfRTrim$(pstrValue$)[255]
- 'エラー処理宣言
- On Error Goto GfRTrim.ErrProc
- Private intCnt%, intIdx%
- '最後尾から空白以外の文字を探す
- intCnt% = 0
- For intIdx% = Len(pstrValue$) To 1 Step -1
- If Mid$(pstrValue$, intIdx%, 1) <> " " Then
- intCnt% = intIdx%
- intIdx% = 1 'ループを止める
- Endif
- Next
- '右側全ての空白を排除
- GfRTrim$ = Left$(pstrValue$, intCnt%)
- GfRTrim.Return '関数戻り
- On Error Goto 0
- Exit Function
- '-----
- 'エラー処理
- '-----
- GfRTrim.ErrProc
- GfRTrim$ = ""
- Resume GfRTrim.Return
- End Function
- '---------------------------------------
- '左側半角空白削除(Rtrim)
- '---------------------------------------
- 'Function GfLTrim$(pstrValue$)[255]
- '引 数:
- ' pstrValue$ :対象文字列
- '戻り値:
- ' GfLTrim$ :結果文字列
- '---------------------------------------
- Function GfLTrim$(pstrValue$)[255]
- 'エラー処理宣言
- On Error Goto GfLTrim.ErrProc
- Private intCnt%
- strTemp$ = ""
- '--- 左端からスペースではない文字を探していく
- For intCnt% = 1 To Len(pstrValue$)
- If Mid$(pstrValue$, intCnt%, 1) <> " " Then
- '空白では無い文字以降の文字列を戻す
- GfLTrim$ = Mid$(pstrValue$, intCnt%)
- intCnt% = Len(pstrValue$)
- End If
- Next intCnt%
- GfLTrim.Return '関数戻り
- On Error Goto 0
- Exit Function
- '-----
- 'エラー処理
- '-----
- GfLTrim.ErrProc
- GfLTrim$ = ""
- Resume GfLTrim.Return
- End Function
- '---------------------------------------
- '前後の半角空白削除(Trim)
- '---------------------------------------
- 'Function GfTrim$(pstrValue$)[255]
- '引 数:
- ' pstrValue$ :対象文字列
- '戻り値:
- ' GfTrim$ :結果文字列
- '---------------------------------------
- Function GfTrim$(pstrValue$)[255]
- Private strWK$[255]
- strWK$ = GfLTrim$(pstrValue$) '左側空白削除
- GfTrim$ = GfRTrim$(strWK$) '右側空白削除
- End Function
- '---------------------------------------
- '文字列繰り返し
- '---------------------------------------
- 'Function GfString$(pintSize%, pstrChr$)[255]
- '引 数:
- ' pstrChr$ :対象文字
- ' pintSize% :文字数(最大1~255)
- '戻り値:
- ' GfString$ :結果文字列
- '---------------------------------------
- Function GfString$(pstrChr$, pintSize%)[255]
- 'エラー処理宣言
- On Error Goto GfString.ErrProc
- Private intCnt%, strTemp$[255]
- strTemp$ = ""
- '文字数分の文字列連結
- For intCnt% = 1 To pintSize%
- strTemp$ = strTemp$ + pstrChr$
- Next intCnt%
- GfString$ = strTemp$
- GfString.Return '関数戻り
- On Error Goto 0
- Exit Function
- '-----
- 'エラー処理
- '-----
- GfString.ErrProc
- GfString$ = ""
- Resume GfString.Return
- End Function
これらの関数の実行ソースは以下の様になります。
- Sub DispData(Byval strP1$, Byval strP2$)
- PRINT "[" + strP1$ + "]=>[" + strP2$ + "]"
- End Sub
- '-----
- '実行はここから処理
- '-----
- Main
- ' PRIVATE Num$, nRet%, intLoop%
- SCREEN 1 '漢字モード
- LOCATE , , 2 'カーソルをブロック表示
- PRINT "***GfRTrim$"
- PRIVATE W$, W2$
- W$ = "1234 "
- W2$ = GfRTrim$(W$)
- CALL DispData(W$, W2$)
- W$ = "12 34 "
- W2$ = GfRTrim$(W$)
- CALL DispData(W$, W2$)
- W$ = "12 34 A"
- W2$ = GfRTrim$(W$)
- CALL DispData(W$, W2$)
- PRINT "***GfLTrim$"
- W$ = " 1234"
- W2$ = GfLTrim$(W$)
- CALL DispData(W$, W2$)
- W$ = " 12 34 "
- W2$ = GfLTrim$(W$)
- CALL DispData(W$, W2$)
- W$ = " 1234 A"
- W2$ = GfLTrim$(W$)
- CALL DispData(W$, W2$)
- PRINT "***GfTrim$"
- W$ = " 1234 "
- W2$ = GfTrim$(W$)
- CALL DispData(W$, W2$)
- W$ = " 12 34 "
- W2$ = GfTrim$(W$)
- CALL DispData(W$, W2$)
- PRINT "***GfString$"
- W$ = GfString$("@", 10)
- PRINT W$;
- WAIT 0, &h01 'キー入力待ち
- END
【DENSO】ハンディターミナルBHT-1306BWB+USB通信ユニットCU-1321+ACアダプタAD2+標準バッテリBT-130L-C【送料無料・代引手数料無料】【02P05Nov16】 価格: 208,980円 |
■関連記事
⇒BHT-BASIC:DENSOのハンディターミナルの開発言語のBHT-BASIC4.0を使ってみた
⇒BHT-BASIC4.0:変数宣言の書き方(BHT-1300)
⇒BHT-BASIC4.0:変数宣言の書き方その2(BHT-1300)
⇒BHT-BASIC4.0:ユーザ定義関数について(BHT-1300)
⇒BHT-BASIC4.0:演算子について(BHT-1300)
⇒BHT-BASIC4.0:画面への表示について(BHT-1300)
⇒BHT-BASIC4.0:キー入力について(BHT-1300)
⇒BHT-BASIC4.0:数値用キー入力関数(ユーザ定義関数)について(BHT-1300)
⇒BHT-BASIC4.0:ユーザ定義関数の値渡し・参照渡しについて(BHT-1300)
⇒BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその2
⇒BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその3
⇒BHT-BASIC4.0:TeraTermを使ってDENSOのハンディターミナルにファイル(プログラム)転送を行う方法
⇒BHT-BASIC4.0:I/OポートとWAIT、さらにTIMERについて(BHT-1300)
⇒BHT-BASIC4.0:データファイルの取り扱いについて(BHT-1300)
⇒BHT-BASIC4.0:データファイルの取り扱いについてその2(書込み・読込みの実用的な関数)
⇒BHT-BASIC4.0:データファイルの検索について(SEARCH関数)
⇒BHT-BASIC4.0:ユーザ関数の引数の仮変数に対する代入の注意点
⇒BHT-BASIC4.0:データファイルの削除等について(KILL、CLFILEのラッパ関数)
⇒BHT-BASIC4.0:ファイルの存在確認関数を作ってみました
⇒BHT-BASIC4.0:拡張関数のバイナリサーチ処理関数(BSEARCH.FN3)の使い方
⇒BHT-BASIC4.0:拡張関数のサーチ処理関数(SEARCH.FN3)の使い方
⇒BHT-BASIC4.0:簡単なメニュー表示・選択を行うユーザ関数について
⇒BHT-BASIC4.0:ファイル伝送におけるXFILE命令の使い方
⇒BHT-BASIC4.0:バーコードの読込み(バーコードスキャン)について
⇒BHT-BASIC4.0:Bluetoothデバイスアドレス取得等について
⇒VB.NET:ハンディターミナル(BHT-1300等)とのデータファイルの送受信について