0

我希望有一个人可以帮助我。我是 c# 和一般编程的初学者,我正在尝试完成这个程序。基本上,它在 XML 文件中查找,获取特定标记的所有出现,并且应该写入文件名以及这两个标记的任何实例之间的任何内容。到目前为止,我已经尝试过 TextWriter、StreamWriter、FileStream 和其他一些,但没有做我想做的事。我意识到这可能是一个愚蠢的问题,但我是一个超级菜鸟,我的特殊情况需要帮助。我的代码如下。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
using System.IO;

namespace ConsoleApplication1
{
class Program
{
    static void Main(string[] args)
    {
        var files = from file in Directory.GetFiles("W:\\SRC\\hDefMl\\1.0\\Instrument_Files")
                    orderby file
                        ascending
                    select file;

        StringBuilder sb_report = new StringBuilder();

        string delimiter = ",";

        sb_report.AppendLine(string.Join(delimiter, "Module", "Generator(s)"));

        foreach (var file in files)
        {
            string filename = Path.GetFileNameWithoutExtension(file);

            Console.WriteLine("The HDefML file for {0} contains these EEPROM Generators:", filename);

            XDocument hdefml = XDocument.Load(file);

            var GeneratorNames = from b in hdefml.Descendants("Generators")
                                 select new
                                     {
                                         name = (string)b.Element("GeneratorName")
                                     };

            string description;

            foreach (var generator in GeneratorNames)
            {
                Console.WriteLine("   GeneratorName is: {0}", generator.name);
                sb_report.AppendLine(string.Join(delimiter, filename,
                generator.name));
            }


        }
    }
4

2 回答 2

1

如果您使用字符串生成器构建的字符串格式正确,您应该能够执行类似的操作。

    static void WriteToCSV(string str, string path)
    {
        using (Stream stream = File.Create(path))
        using (StreamWriter writer = new StreamWriter(stream))
        {
            writer.WriteLine(str);
        }
    }
于 2013-07-02T14:00:05.933 回答
0
try{
    FileStream FS;
    StreamWriter SW;

    using (FS = new FileStream("HardCodedFileName.csv", FileMode.Append))
    {
        using (SW = new StreamWriter(FS))
        {
            foreach (var generator in GeneratorNames)
            {
                SW.WriteLine(string.Join(delimiter, filename,
                generator.name));
            }
        }
    }
}
catch (Exception e){
    Console.Writeline(e.ToString());
}
于 2013-07-02T13:48:27.337 回答