我有一个文本文件,其中只包含我需要提取的应用程序的完整版本号,然后将其解析为单独的变量。
例如,假设version.cs包含19.1.354.6
使用的代码I似乎不起作用:
char[] delimiter = { '.' };
string currentVersion = System.IO.File.ReadAllText(@"C:\Applicaion\version.cs");
string[] partsVersion;
partsVersion = currentVersion.Split(delimiter);
string majorVersion = partsVersion[0];
string minorVersion = partsVersion[1];
string buildVersion = partsVersion[2];
string revisVersion = partsVersion[3];
答案 0 :(得分:1)
你的问题与文件有关,很可能它包含的是其他文本而不是版本,为什么不使用绝对适用于此类任务的Version类。
var version = new Version("19.1.354.6");
var major = version.Major; // etc..
答案 1 :(得分:0)
如果输入正确,您所做的工作正常,因此我建议您确保您正在阅读的文件中没有其他内容。
将来,请提供错误信息,因为我们通常无法确切地告诉您预期会发生什么,只有我们知道应该发生的事情。
鉴于此,我还建议在将来使用Regex进行解析。在我看来,它为您的需求提供了更灵活的解决方案。以下是使用正则表达式的示例:
var regex = new Regex(@"([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9])");
var match = regex.Match("19.1.354.6");
if (match.Success)
{
Console.WriteLine("Match[1]: "+match.Groups[1].Value);
Console.WriteLine("Match[2]: "+match.Groups[2].Value);
Console.WriteLine("Match[3]: "+match.Groups[3].Value);
Console.WriteLine("Match[4]: "+match.Groups[4].Value);
}
else
{
Console.WriteLine("No match found");
}
输出以下内容:
// Match[1]: 19
// Match[2]: 1
// Match[3]: 354
// Match[4]: 6