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

从文本文件(C#)获取部分信息,c#,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

我需要一个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 

任何帮助请:)

我将拆分字符串,并使用从拆分中获得的部分数组创建一个新文件

您可以使用例如
split(“.”)拆分字符串

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

这将把第一部分和第三部分加在一起。
这适用于您的第一行。

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

var splitted = inputString.Split(".");
现在,似乎您的第二个(从零开始的索引)项包含了不相关的信息,并用逗号从相关项中分割出来。因此,您所要做的就是将第0个和第2个构建在一起,而第二个只有逗号前的第一个部分:

var res = $"{splitted[0]},{splitted[2].Split(",")[0]}";
但是,您似乎希望结果为大写:

var resUpper = res.ToUpper();
但实际上,只有当你有一个完美的输入文件时,这才有效——否则你必须检查,它是否真的有那么多项,或者你会得到一个IndexOutfrange异常


事实上,我不确定您是否知道如何从/向文件读/写,因此我也将提供相关示例

阅读

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);
写入

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

是的,但是我怎样才能去掉第3、5和6行上的所有“补丁”呢?您可以使用foreach进行合并,并检查字符串是否包含补丁,然后再将其添加到一起:)非常感谢您的帮助。我尝试了Theele发布的方式,它似乎起到了作用:
string[]splitString=line.Split(新字符[]{'.','.})
String s=splitString[0].ToUpper()+,“+splitString[2].ToUpper()
writer.WriteLine
@harris93如果这回答了您的问题,不要忘记将答案标记为答案,因为这将帮助您和更广泛的社区确定已解决的问题。