假脱机不显示有关Alter While错误的信息

时间:2019-07-09 09:17:32

标签: installshield

我在已加载到列表的文件中只有几行。在文件中是以EKO-1223开头的行...我想得到这一行,所以我使用了while循环并遍历列表中的行。我正在使用nPos = StrFind(svLine, "EKO"),但是nPos <0,所以找不到结果,为什么?

1 个答案:

答案 0 :(得分:0)

如果您想要一个好的答案,则需要提供更多有关如何将文本从文件中获取到svLine的信息,以及有关文件编码的任何信息,等等。对编码一无所知,文件的前几个字节的十六进制转储以及包括EKO在内的那些都足以识别它。)

我的猜测是您根本没有正确加载svLine,或者编码被错误识别,因此svLine包含类似"E\0K\0O\0...""䭅ⵏ"的内容(即C表示中的"\x4b45\x2d4f"。您可以在消息框或调试器中确认吗?

您可以考虑的另一种选择是致电FileGrep。如果您的代码根本没有加载文件,但是不太可能更好地处理编码,这可能会有所帮助。如果未正确检测到编码,并且您可以更改文件,请确保文件具有正确的BOM表编码。但是,如果您不控制文件,则不确定要推荐什么。最好的选择是二进制读取和手动解码(可能利用Kernel32.MultiByteToWideChar)。