在 vb.net 中提供文本字段解析器的字符串

Posted

技术标签:

【中文标题】在 vb.net 中提供文本字段解析器的字符串【英文标题】:A string feeding a textfieldparser in vb.net 【发布时间】:2012-11-05 17:39:57 【问题描述】:

在我问之前,我只想说我已经查过了,我就是想不通。 因此,我收到了一个网络电话,它返回了一个非常长的文本字符串,我需要将其拆分。我想使用 textfieldparser 但我不想将此字符串保存为文件,并且 textfieldparser 似乎都是关于文件或...流的,我不理解流。那么我如何将字符串输入其中呢?我可以将其转换为流吗?我意识到这可能非常简单,所以我为我的无知道歉。

非常感谢您的帮助!

【问题讨论】:

【参考方案1】:

Textfieldparser 有一个使用 TextReader 的构造函数。 你有没有尝试过这样的事情:

Dim t As New FileIO.TextFieldParser(New System.IO.StringReader("thestringinside"))

您也可以查看www.filehelpers.net(我自己从未尝试过,但看起来很有希望 - 我绝不隶属于!)因为引擎还支持 ReadString 方法

【讨论】:

@Tim Schmelter:你可能是对的,但我看不出这里使用了哪个非托管资源,应该立即释放?我是 Jeffrey Richter 的“处理?不要!(通常)”态度的粉丝。并且调用 dispose(通过 using)无论如何都不会释放内存(为字符串分配)。 TextReaderTextFieldParser 都实现了 IDisposable。我想不只是为了好玩;) @Tim Schmelter:你有没有检查过这两个类的 dispose 方法是做什么的?哎呀,我喜欢 Reflector ;) TFP 上的 Dispose 只在“流”(这是一个 Stringreader)上调用 close/dispose。 TextReader 上的 Dispose(boolean) 是一个空方法。那么调用它有什么用呢?? 抱歉:在 STRINGreader 中的 Dispose 将基础字符串设置为 NULL。您是否总是将您使用的任何字符串设置为 NULL?在 GC 运行之前它不会释放任何内存,那么有什么好处呢? 它只是将StringReader 的底层字符串设置为null,而不是引用的字符串。如果原始字符串超出范围或为空,这对于允许 GC 释放字符串很有用。看看这里:Is it ok not to dispose a StringReader?

以上是关于在 vb.net 中提供文本字段解析器的字符串的主要内容,如果未能解决你的问题,请参考以下文章

VB.net 在字符串中查找字符,然后显示找到的文本,包括字符

在 vb.net 中用 jrock 解析 json

如何在 vb.net 中解析一串 xml

vb.net如何运算一个字符串

VB .Net - 将字符串发送到另一个应用程序

将字符串从 vb.net 传递到 cmd