我正在使用C#中的TextFieldParser讀取CSV文件。我可以設法讀一個簡單的CSV文件,但這個CSV文件依賴於第一列名,這樣多的格式類型:使用TextFieldParser根據其值讀取列
>>Name, Age, Location,
"Joe","29","NY"
"Maggie", "25", "NJ"
>>City, State, Population
"New York", "NY","8.49"
的CSV有資料的更多類型。
我想根據它們的格式來讀取列,但它只讀取列名。我怎樣才能讓它只讀取目標格式類型?這確實是代碼的一部分是在這裏:
while (!parser.EndOfData)
{
if (parser.ReadFields().Contains(">>Name"))
{
header = true;
string[] fields = parser.ReadFields();
if (header)
{
foreach (var val in fields)
{
dt.Columns.Add(val);
}
header = false;
continue;
}
dt.Rows.Add(fields);
}
else {};
}
編輯:
的「>>」符號是說,當我有列名標誌。
什麼是真正的樣本文件?目前還不清楚「>>標題,可以忽略 >>名稱,年齡,位置, 」喬「,」29「,」紐約州「」的意思。這是真實的文字還是與您的評論混雜在一起? –
什麼是分析器變量?您也可以使用[FileHelpers](http://www.filehelpers.net/example/Advanced/MultiRecordEngine/)庫來完成此任務。 –
此外,只有在'parser.ReadFields()。Contains(「>> Name」)''時纔會輸入'if'。所以下面的'if(header)'是無形的,因爲它總是頭部。下一個問題:'parser.ReadFields()'會使讀者進入下一行,所以當你執行兩次時,你會得到第二行的字段而不是頭字段。 –