【QBASIC互換!?】FreeBasic【GPL】 2 [無断転載禁止]©2ch.net (435レス)
【QBASIC互換!?】FreeBasic【GPL】 2 [無断転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1482549747/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
11: デフォルトの名無しさん [] 2017/01/18(水) 20:22:28.09 ID:jwPQ/iiW 参照関係を調べる時に使うルーチン Public Function RoutineImmediateStringCat(InLineString As String, OutLineString As String) As Long '*-* 即値 の文字列をヌルに書き換える Dim As String BString 'Dim As String CH22String Dim As Long IAA, IBB, iModeLong RoutineImmediateStringCat = 0 iModeLong = 0&: 'CH22String = Chr$(&H22) OutLineString = "" For IAA = 1& To Len(InLineString) BString = Mid$(InLineString, IAA, 1): IBB = Asc(BString) Select Case iModeLong Case 0& If (IBB = &H22) Then iModeLong = 10& OutLineString = OutLineString + BString Else OutLineString = OutLineString + BString End If Case 10& If (IBB = &H22) Then iModeLong = 0& OutLineString = OutLineString + BString End If End Select Next IAA End Function http://mevius.5ch.net/test/read.cgi/tech/1482549747/11
12: デフォルトの名無しさん [] 2017/01/18(水) 20:24:45.43 ID:jwPQ/iiW >>11 のつづき。 自己書き換えルーチンの場合に、目印とする行が即値で定義されている場合が多い。 即値を目印と勘違いするルーチンとなる場合があるので、即値を消す作業を行う。 http://mevius.5ch.net/test/read.cgi/tech/1482549747/12
13: デフォルトの名無しさん [] 2017/01/18(水) 20:25:56.21 ID:jwPQ/iiW ロボッチチェックに引っかかってちょっと分割する。 Public Function RoutineCommentLineCat(InLineString As String, OutLineString As String) As Long Const TakaSubRoutineNo as long = 21& '*-* コメント行をヌルに置き換える Dim As String BString 'Dim CH22String 大域 Dim As Long IAA, IBB, iModeLong RoutineCommentLineCat = 0 'CH22String = Chr$(&H22) OutLineString = Trim$(InLineString) If (Left$(OutLineString, 1&) = "'") Then OutLineString = "" ElseIf (InStr(OutLineString, CH22String) <= 0&) Then IAA = InStr(OutLineString, ": '") If (IAA > 0&) Then OutLineString = Left$(OutLineString, IAA - 1&) IAA = InStr(OutLineString, " '") If (IAA > 0&) Then OutLineString = Left$(OutLineString, IAA - 1&) OutLineString = Trim$(OutLineString) If (Right$(OutLineString, 1) = ":") Then OutLineString = Trim$(Left$(OutLineString, Len(OutLineString) - 1&)) http://mevius.5ch.net/test/read.cgi/tech/1482549747/13
14: デフォルトの名無しさん [] 2017/01/18(水) 20:26:27.41 ID:jwPQ/iiW ElseIf (InStr(OutLineString, "'") <= 0&) Then Else iModeLong = 0& For IAA = 1& To Len(OutLineString) BString = Mid$(OutLineString, IAA, 1) IBB = Asc(BString) Select Case iModeLong Case 0& If (IBB = &H22) Then iModeLong = 10& ElseIf (BString = "'") Then OutLineString = Left$(OutLineString, IAA - 1&) Exit For End If Case 10& If (IBB = &H22) Then iModeLong = 0& End If Case Else '障害 End Select Next IAA OutLineString = Trim$(OutLineString) If (Right$(OutLineString, 1) = ":") Then OutLineString = Trim$(Left$(OutLineString, Len(OutLineString) - 1&)) End If End Function http://mevius.5ch.net/test/read.cgi/tech/1482549747/14
15: デフォルトの名無しさん [] 2017/01/18(水) 20:36:07.21 ID:jwPQ/iiW >>13-14はコメント行を消す作業。コメント行か実行文か判断は面倒なので、 一括して消してしまう。 この2つのルーチンが主要なもので、他には、連続した空白の削除、TAB文字を空白に書き換える等の処理が必要。 こっちは比較的簡単なので、すぐ作れると思う。 Function 文で定義したルーチンの場合、 先頭が1文字目にある場合、戻り値を使わない場合の参照方法。 戻り値を使う場合には、先頭文字の直前(左側)が、演算子の場合が多い。 ということで、演算子であるかのチェックが必要。その他、()や空白、TAB文字等も演算子とみなして処理する。 なんとか、どのファイルの内容を参照しているか、を一覧表で表す見込みが立った。 http://mevius.5ch.net/test/read.cgi/tech/1482549747/15
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.346s*