我想在c sharp中用逗号分隔的行的文本文件中读取单词.
例如,我想读这一行:
9/10/2011 10:05,995.4,998.8,995.4,997.5,118000
Run Code Online (Sandbox Code Playgroud)
而得到的值:9/10/2011 10:05,995.4,998.8,995.4,997.5和118000.
接下来,我还需要将日期的格式更改MMddYYYY为HHmmss(例如100500).
我正在使用此代码进行读取是否有任何错误
private void button1_Click(object sender, EventArgs e)
{
StreamReader reader1 = File.OpenText(Path1);
string str = reader1.ReadToEnd();
reader1.Close();
reader1.Dispose();
// File.Delete(Path1);
string[] Strarray = str.Split(new char[] { Strings.ChrW(7) });
int abc = Strarray.Length - 1;
int xyz = 0;
bool status = true;
while (xyz <= abc)
{
try
{
status = true;
string[] strarray1 = Strarray[xyz].Split(",".ToCharArray());
string SecName = strarray1[0];
int a2 = 0;
while (status) //If the selected list is empty or the text file has selected name this will execute
{
status = false;
string SecSym = strarray1[1];
int DT = int.Parse(strarray1[2]);
int TM = int.Parse(strarray1[3]);
float O = float.Parse(strarray1[2]);
float H = float.Parse(strarray1[3]);
float L = float.Parse(strarray1[4]);
float C = float.Parse(strarray1[5]);
double OI = double.Parse(Convert.ToString(0));
float V = float.Parse(strarray1[6]);
// string a = string.Concat(SecName, ",",SecSym,",", DT, ",", TM, ",", O, ",", H, ",", L);
//writer.WriteLine(a);
}
}
catch
{ }
}
}
}
Run Code Online (Sandbox Code Playgroud)
Kob*_*obi 14
.Net附带了一个可用于获取数据的现成CSV解析器.它是VB.net的一部分,但您可以通过添加对程序集的引用Microsoft.VisualBasic(它很好,非常简单)和using语句来轻松地在C#中使用它:using Microsoft.VisualBasic.FileIO;.
代码应该易于理解:
List<String[]> fileContent = new List<string[]>();
using(FileStream reader = File.OpenRead(@"data.csv")) // mind the encoding - UTF8
using(TextFieldParser parser = new TextFieldParser(reader))
{
parser.TrimWhiteSpace = true; // if you want
parser.Delimiters = new[] { "," };
parser.HasFieldsEnclosedInQuotes = true;
while (!parser.EndOfData)
{
string[] line = parser.ReadFields();
fileContent.Add(line);
}
}
Run Code Online (Sandbox Code Playgroud)
CSV非常简单,但它可能包含逗号和换行符的引用值,因此使用Split不是最佳选项.
小智 5
使用 String.Split 方法获取字符串数组:
string[] ar = line.Split(',')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42823 次 |
| 最近记录: |