简单回答是不”。变量不是这样工作的。变量只是代码中方便引用存储数据的内存位置的一种方式。当您的源代码内置到程序集中时,您的原始源代码甚至不再存在,作为生成的程序集的一部分。
您不应将文本文件视为源代码的扩展。文本文件只是将原始数据存储到磁盘的一种方式。数据不会“运行”。数据本身并没有做任何事情。数据无法“访问”您的源代码。如果您希望程序对数据做某事或对数据做某事,您的程序必须完成所有工作。
所以,如果你想做这样的事情,你需要通过你编写的代码来解析和操作数据。执行此类任务的难易程度完全取决于您的文件格式解析和使用的难度。您选择的格式相当困难,这就是其他人建议 RegEx 的原因。RegEx 为您提供了解析复杂数据的强大功能。但是,如果您可以控制数据的格式,那么将文件格式简单地更改为更易于使用的格式将是一种更好的方法。您可以使用像 XML 这样的标准格式。使用 XML,您可以根据需要选择以多种不同方式格式化数据。例如,您可以像这样格式化它:
<?xml version="1.0" encoding="utf-8"?>
<document>
I am gonna display <first/> and <second/> text.
</document>
或这个:
<?xml version="1.0" encoding="utf-8"?>
<document>
I am gonna display <var name="first"/> and <var name="second"/> text.
</document>
或这个:
<?xml version="1.0" encoding="utf-8"?>
<document>
I am gonna display <var>first</var> and <var>second</var> text.
</document>
然后,您可以使用 .NET 框架中的任何 XML 工具来加载 XML 文档并将变量元素替换为适当的值。事实上,您甚至可以使用 XSLT,这很酷,但我离题了。
但是,我怀疑根据您的需要,将格式更改为使用简单的占位符,如下所示,可能更有意义:
我将显示 %FIRST% 和 %SECOND% 文本。
然后,您可以简单地将字符串中的占位符替换为其变量值,如下所示:
Dim first As String = "first word"
Dim second As String = "second word"
Dim data As String = System.IO.File.ReadAllText("post.txt")
data = data.Replace("%FIRST%", first)
data = data.Replace("%SECOND%", second)
SampleTextbox.Text = data