c# - 写入csv文件

标签 c# text csv

我收到了以下文本形式的警报

NE=JKHGDUWJ3  Alarm=Data Center STALZ AC Failure  Occurrence=2012/4/3 22:18:19 GMT+02:00  Clearance=Details=Cabinet No.=0, Subrack No.=40, Slot No.=0, Port No.=5, Board Type=EDS, Site No.=49, Site Type=HSJYG500 GSM, Site Name=Google1  .

我需要将其填充到 csv 文件中,以便稍后我可以执行一些分析

我想出了这个

if (!File.Exists(filesName)) {
    string header = "NE,Alarm,Occurrence,Clearance,Details";
    File.AppendAllText(filesName,header+Environment.NewLine);
}
StringBuilder sb = new StringBuilder();
string line = textBoxAlarm.Text;

int index = line.IndexOf("  ");
while (index > 0) {
    string token = line.Substring(0, index).Trim();
    line = line.Remove(0, index + 2);

    string[] values = token.Split('=');
    if (values.Length ==2) {
        sb.Append(values[1] + ",");
    } else {
        if (values.Length % 2 == 0) {
            string v = token
                .Remove(0, values[0].Length + 1)
                .Replace(',', ';');
            sb.Append(v + ",");
        } else {
            sb.Append("********" + ",");
            string v = token
                .Remove(0, values[0].Length + 1 + values[1].Length + 1)
                .Replace(',', ';');
            sb.Append(v + ",");
        }
    }
    index = line.IndexOf("  ");
}
File.AppendAllText(filesName, sb.ToString() + Environment.NewLine);

结果正如我想要的,除了当我到达

的部分时
Details=Cabinet No.=0, Subrack No.=40, Slot No.=0,
Port No.=5, Board Type=KDL, Site No.=49, Site Type=JDKJH99 GSM, Site Name=Google1 .

我无法将它们分成单独的字段。

结果显示如下

Example results

我想拆分详细信息,我希望详细信息中的每个元素都位于一列中

变得像

enter image description here

这真的很烦人:-)

请帮忙,先谢谢了

最佳答案

此行之后:

string v = token.Remove(0, values[0].Length + 1 + values[1].Length + 1).Replace(',', ';')

做:

var detailParts = v.Split(";".ToCharArray());

现在填写详细部分。并将它们附加到sb,为了填充详细部分,您需要执行类似的操作。

detailPart[i].Split("=".ToCharArrray())[1]

关于c# - 写入csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10037414/

相关文章:

c# - 如何解密用 x509 加密的原始 soap 响应

c# - 从 C# 处理 dbf 的最快方法

c# - 将 DataTable 作为参数传递给存储过程

objective-c - BaseSDK从10.5改为10.6后出现字体粗细问题

javascript - 如何在组合框更改时减去复选框值

ios - 如何生成 CSV 文件?

csv - 从我的服务器下载 *.csv

c# - 在 .Net 中是否可以在编译时有条件地隐藏属性?

python - 如何使用 Networkx 和 CSV 文件中的数据计算最近邻?

python - 获取一些按出现次数排序的单词,一些单词应该从字符串中忽略