从文本文件中获取部分信息(C#)

时间:2017-05-03 12:51:21

标签: c#

我需要一个c#程序,它可以拆分字符串并将一些特定的信息复制到另一个文件中。

我有一个这样的文本文件:

BRIDGE.V2014R6I1.SOFT
icem.V4R12I2.SOFT
mygale.V4R1I1.SOFT,patch01_MAJ_APL.exe
photoshop.V2014R10I1.SOFT
rhino.V5R0I1.SOFT,patch01_Update_Files.exe
TSFX.V2R3I2.SOFT,patch01_corrections.exe,patch02_clock.exe,patch03_correction_tri_date.exe,patch04_gestion_chemins_unc.exe

我只需将其中一些信息放入另一个文件中,如下所示:

BRIDGE,SOFT
ICEM,SOFT
MYGALE,SOFT
PHOTOSHOP,SOFT 

任何帮助请:)

2 个答案:

答案 0 :(得分:0)

我会拆分字符串,并创建一个新文件,其中包含从拆分中获得的数组部分。

您可以使用例如分割字符串。 Split(".");

然后,例如创建一个新字符串stringname = splitstring[0] + "," + splitstring[2]

这会将第一和第三部分重新加在一起。 这适用于你的第一行。

答案 1 :(得分:0)

我不知道,你的文本文件总是这样,我只能提供一个具体的答案。首先,正如ThatsEli所指出的那样,你必须在这一点上拆分字符串:

var res = $"{splitted[0]},{splitted[2].Split(",")[0]}";

现在,似乎您的第二个(基于零的索引)项目具有与相关分割的逗号无关的信息。所以你所要做的就是将第0和第二部分组合在一起,而第二部分只有逗号之前的第一部分:

var resUpper = res.ToUpper();

但是,您似乎希望结果为大写:

var path = @"Your\Path\To\The\Input\File";
if (!File.Exists(path))
{
    Console.WriteLine("File doesn't exist! If you're using a console, otherwise use another way to print error messages");
    return;
}
var inputString = File.ReadAllText(path);

但实际上这只有你有一个完美的输入文件才有效 - 否则你必须检查,它实际上有很多项目,或者你得到一个 IndexOutOfRange 异常。 / p>

实际上,我不确定您是否知道如何读取/写入文件,因此我也会提供相关示例。

<强>读取

var outputPath = @"your\Output\Path";
if(!File.Exists(outputPath))
{
    Console.WriteLine("You know what to put here");
    return;
}
File.WriteAllText(outputPath, inputString);

<强>写

{{1}}