今天我在维基百科上浏览了一些随机的极客文章,以获取我日常无用的知识.我偶然发现了quines,这是打印自己的源代码的程序.我发现这是让我的大脑受伤的好方法,所以我开始在VBA中使用quine.我有两个很好的理由:
这是我的杰作:
Sub q()
c = "Sub q();c = #;Debug.Print Replace(Replace(c, Chr(59), vbNewLine), Chr(35), Chr(34) & c & Chr(34));End Sub"
Debug.Print Replace(Replace(c, Chr(59), vbNewLine), Chr(35), Chr(34) & c & Chr(34))
End Sub
Run Code Online (Sandbox Code Playgroud)
我的挑战:你能让它变得更短(最好是更尴尬)吗?
怎么样
Sub q() '//in mdl1
Debug.Print Workbooks(1).VBProject.VBComponents(5).CodeModule.Lines(1, 3)
End Sub
Run Code Online (Sandbox Code Playgroud)
小智 3
我不知道是否有人再读这个帖子,但这里有一个更短的帖子,基于 das_weezul 的 quine。它独立于“Option Explicit”(与 das_weezul 不同),并且独立于您正在使用的 Office 应用程序(即 Excel、Access、Word 等)——与 Alex K 不同。在立即窗口中使用它(Ctrl+G):
c="c=#:?replace(c,chr(35),chr(34) &c &chr(34))":?replace(c,chr(35),chr(34) &c &chr(34))
Run Code Online (Sandbox Code Playgroud)