C#获取System.String []而不是实际的字符串

时间:2015-11-27 15:37:46

标签: c# string builder

简而言之,我必须为称重秤创建一个小接口。 称重秤将一些字符串发送到PC,我想获取它们并对它们进行排序,最后将它们保存在文本文件中。

为了对其进行排序,我在切换案例中使用msgIn.ContainsmsgIn是一个字符串)来查看一些关键字。取决于我制作的关键字:

data.Append(msgIn.Split(seperator, StringSplitOptions.RemoveEmptyEntries) + "\t\t");

最后我使用:

using (System.IO.StreamWriter fileImport = new System.IO.StreamWriter(pathImportFile,true))
{fileImport.WriteLine(dataImport);}

dataImport是字符串构建器)

但是在文本文件中只出现了#34; System.String[]"而不是真正的字符串。我也尝试使用string.JoinToString方法,但每次都得到相同的结果。如何将字符串内容放入文件中?

2 个答案:

答案 0 :(得分:2)

split方法返回一个字符串数组。尝试这样的事情:

Array.ForEach(msgIn.Split(seperator, StringSplitOptions.RemoveEmptyEntries), s => data.Append(s).Append("\t\t"));

所以你追加字符串数组上的每一项

答案 1 :(得分:0)

public static void Read()
{
    string pathImportFile = @"C:\Users\public\WaageLAU.txt";                
    string msgIn = "msgIn";

    // seperators
    string[] tum = new string[] {"tum"};
    string[] eit = new string[] {"eit"};
    string[] kel = new string[] {"kel"};
    string[] tto = new string[] {"tto"};
    string[] ara = new string[] {"ara"};
    string[] och = new string[] {"och"};
    string[] rig = new string[] {"rig"};

    StringBuilder dataImport = new StringBuilder();

    while (_continue)
    {   
        try
            {
                msgIn = _serialPort.ReadLine(); 
            }
            catch (TimeoutException) { }

        if (msgIn.Contains("Datum"))
            {
                dataImport.Append(msgIn.Split(tum, StringSplitOptions.None) + "\t\t");              
            }
        else if (msgIn.Contains("Zeit"))
            {
                dataImport.Append(msgIn.Split(eit, StringSplitOptions.RemoveEmptyEntries) + "\t\t");
            }
        else if (msgIn.Contains("Artikel"))
            {
                dataImport.Append(msgIn.Split(kel, StringSplitOptions.RemoveEmptyEntries) + "\t\t");
            }
        else if (msgIn.Contains("Brutto"))
            {
                dataImport.Append(msgIn.Split(tto, StringSplitOptions.RemoveEmptyEntries) + "\t\t");
            }
        else if (msgIn.Contains("Tara"))
            {
                dataImport.Append(msgIn.Split(ara, StringSplitOptions.RemoveEmptyEntries) + "\t\t");
            }
        else if (msgIn.Contains("Netto"))
            {
                dataImport.Append(msgIn.Split(tto, StringSplitOptions.RemoveEmptyEntries) + "\t\t");
            }
        else if (msgIn.Contains("Hoch"))
            {
                dataImport.Append(msgIn.Split(och, StringSplitOptions.RemoveEmptyEntries) + "\t\t");
            }
        else if (msgIn.Contains("Niedrig"))
            {               
                dataImport.Append(msgIn.Split(rig,StringSplitOptions.RemoveEmptyEntries));

                try
                    { 
                        using (System.IO.StreamWriter fileImport = new System.IO.StreamWriter(pathImportFile,true))
                        {

                            fileImport.WriteLine(string.Join("",dataImport));
                            //fileImport.WriteLine(dataImport.ToString());                          // schreibt die Zeile in die Textdatei  

                        }       
                    }catch (TimeoutException) { }
                dataImport.Clear();
            }
        else
        {
            // Fehlermeldung ausgeben/protokollieren
        }
    }
}

所以我希望现在能更好地了解你。