简而言之,我必须为称重秤创建一个小接口。 称重秤将一些字符串发送到PC,我想获取它们并对它们进行排序,最后将它们保存在文本文件中。
为了对其进行排序,我在切换案例中使用msgIn.Contains
(msgIn
是一个字符串)来查看一些关键字。取决于我制作的关键字:
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.Join
和ToString
方法,但每次都得到相同的结果。如何将字符串内容放入文件中?
答案 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
}
}
}
所以我希望现在能更好地了解你。