私も以前やりました:
自分自身を出力するプログラム。
ただ、当時のAB5用なので、今のAB5ではできませんでした。
というわけで修正版です。
コード:
#console
Dim s = "Print Ex'#console\r\nDim s = \q' + s + Ex'\q, t = \q' + t + Ex'\q' : Print s.Replace(Asc(t), Asc(Ex'\q'))", t = "'"
Print Ex"#console\r\nDim s = \q" + s + Ex"\q, t = \q" + t + Ex"\q" : Print s.Replace(Asc(t), Asc(Ex"\q"))
AB4は文字列置換のサブルーチンがないのがつらいです。上のコードをAB4.24に移してみましたが、まだReplaceChrサブルーチン部分を出力しない不完全な出来です。
コード:
#console
Sub ReplaceChr(ByRef s As String, oldChar As Byte, newChar As Byte)
Dim i As Long
For i = 0 To Len(s) - 1
If s = oldChar Then s = newChar
Next
End Sub
Dim s As String, t As String
s = "Print Ex'#prompt\r\nDim s As String, t As String\r\ns = \q' + s + Ex'\q\r\nt = \q' + t + Ex'\q' : ReplaceChr(s, Asc(t), Asc(Ex'\q')) : Print s"
t = "'"
Print Ex"#prompt\r\nDim s As String, t As String\r\ns = \q" + s + Ex"\q\r\nt = \q" + t + Ex"\q" : ReplaceChr(s, Asc(t), Asc(Ex"\q")) : Print s