将两个文本文件合并为1

时间:2014-03-27 19:35:23

标签: c#

我很熟悉c#以及任何类型的编程,所以任何帮助都将受到赞赏。

我有两个txt文件,我希望合并为一个 格式如下:

text1.txt  
apple=1  
grape=2  
strawberry=3  
etc....

text2.txt  
1=156  
2=26  
3=180  
etc...

我希望实现的格式是

Final.txt  
apple=156  
grape=26
strawberry=180  

我不太确定如何解决这个问题,我正在考虑用'='分割每一行并使用if语句,但这似乎不起作用,我无法让它工作。

理想情况下,如果可以使用相同的按钮无效,那将是非常好的。 有人可以指出我正确的方向

欢呼声

3 个答案:

答案 0 :(得分:1)

  • 使用IO.File.ReadAllLines将文件1读入字典,按=拆分,左边的所有内容都是键,右边的所有内容都是值。

  • 使用相同的方法将文件2读入字典。

遍历第一个字典中的所有条目,并为其他字典中的每个值TryGetValue循环。如果找到,请在输出文件中输出一行,取key1value2(第一个字典的键和第二个字典的值) - 通过等号。

答案 1 :(得分:1)

将两个文件解析为词典:

对于每个文件,使用File.ReadAllLines获取字符串数组。

然后使用foreach循环遍历数组中的每个字符串。如您所建议的那样,在每个字符串上使用String.Split来获取键和值(" apple"以及" 1",例如)。将键和值添加到字典中(每个文件一个字典)。

然后foreach通过text1&#39的字典,并使用该值作为text2的字典的键。这可以让你映射" apple" - > 1 - > 156。

在循环浏览字典时,将每一行写入final.txt。


例如试试这个:

    static void Main(string[] args)
    {
        String path1 = @"C:\file1.txt";
        String path2 = @"C:\file2.txt";
        String newFilePath = @"C:\final.txt";

        // Open the file1 to read from. 
        string[] readText = File.ReadAllLines(path1);

        // Add file1 contents to dictionary (key is second value)
        Dictionary<string, string> dictionaryA = new Dictionary<string, string>();
        foreach (string s in readText)
        {
            string[] parts = s.Split('=');
            dictionaryA.Add(parts[1], parts[0]);
        }

        // Open the file2 to read from. 
        readText = File.ReadAllLines(path2);

        // Add file2 contents to dictionaryB (key is first value)
        Dictionary<string, string> dictionaryB = new Dictionary<string, string>();
        foreach (string s in readText)
        {
            string[] parts = s.Split('=');
            dictionaryB.Add(parts[0], parts[1]);
        }


        // Create output file
        System.IO.StreamWriter file = new System.IO.StreamWriter(newFilePath);

        // write each value to final.txt file
        foreach (var key in dictionaryA.Keys)
        {
            if (dictionaryB.ContainsKey(key))
            {
                file.WriteLine(dictionaryA[key] + "=" + dictionaryB[key]);
            }
        }

        file.Close();
    }

答案 2 :(得分:0)

如果要将text1.txt用作键列表,并将text2.txt用作值列表,则只需将第一个文件逐行读入字典,例如{{1并将第二个文件读入另一个字典dictKeys。然后,您可以遍历dictValues并将dictKey中的值拉入新词典。

此时,只需遍历新词典并将其写入文件即可。

dictValues