自己表示プログラム

オープンソース形式でコードを共有するフォーラムです。お役立ちコード、あなたも投稿してみませんか?
返信する
メッセージ
作成者
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

自己表示プログラム

#1 投稿記事 by konisi »

自己表示プログラムを書いてみました4.23で動作を確認しました。

どうやら定数文字列の文字数に何らかの制限がある模様で、それの回避に苦労しました。

誰かもっと短い奴か、又は異なる方法を用いた奴書いてください(メモリリークを無視するような短縮方法は遠慮してください)
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#2 投稿記事 by イグトランス »

私も以前やりました:自分自身を出力するプログラム
ただ、当時の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
返信する