第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在.NET中解析定界CSV

在.NET中解析定界CSV

炎炎設(shè)計(jì) 2019-09-24 16:03:08
我有一個(gè)以逗號(hào)分隔的格式的文本文件,"在大多數(shù)字段上都用分隔。我試圖將其納入我可以枚舉的內(nèi)容(例如,通用集合)。我無(wú)法控制文件的輸出方式,也無(wú)法控制定界符使用的字符。在這種情況下,這些字段用逗號(hào)分隔,而文本字段則用"標(biāo)記括起來(lái)。我"遇到的問(wèn)題是某些字段中有引號(hào)(即8 托盤(pán)),并且不小心將其作為下一個(gè)字段。對(duì)于數(shù)字字段,它們周?chē)鷽](méi)有引號(hào),但它們確實(shí)以+或-號(hào)開(kāi)頭(表示正數(shù)/負(fù)數(shù))。我當(dāng)時(shí)在想RegEx,但是我的技能不是很好,所以希望有人能提出一些我可以嘗試的想法。該文件中大約有19,000條記錄,因此我正在嘗試盡可能高效地進(jìn)行記錄。以下是幾個(gè)示例數(shù)據(jù)行:"00","000000112260   ","Pie Pumpkin                             ","RET","6.99 ","     ","ea ",+0000000006.99000"00","000000304078   ","Pie Apple caramel                       ","RET","9.99 ","     ","ea ",+0000000009.99000"00","StringValue here","8" Tray of Food                             ","RET","6.99 ","     ","ea ",-00000000005.3200還有更多字段,但是您可以獲取圖片。我正在使用VB.NET,并且具有通用的列表設(shè)置來(lái)接受數(shù)據(jù)。我嘗試使用CSVReader,在您擊中第3條記錄(在文本字段中帶有引號(hào))之前,它似乎工作良好。如果我能以某種方式使其處理附加報(bào)價(jià),那么CSVReader選項(xiàng)將非常有用。謝謝!
查看完整描述

3 回答

?
開(kāi)滿天機(jī)

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊

從這里:


Encoding fileEncoding = GetFileEncoding(csvFile);

// get rid of all doublequotes except those used as field delimiters

string fileContents = File.ReadAllText(csvFile, fileEncoding);

string fixedContents = Regex.Replace(fileContents, @"([^\^,\r\n])""([^$,\r\n])", @"$1$2");

using (CsvReader csv =

       new CsvReader(new StringReader(fixedContents), true))

{

       // ... parse the CSV


查看完整回答
反對(duì) 回復(fù) 2019-09-24
?
小唯快跑啊

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊

我建議查看.Net 中的TextFieldParserClass。您需要包括


Imports Microsoft.VisualBasic.FileIO.TextFieldParser

這是一個(gè)簡(jiǎn)單的示例:


        Dim afile As FileIO.TextFieldParser = New FileIO.TextFieldParser(FileName)

        Dim CurrentRecord As String() ' this array will hold each line of data

        afile.TextFieldType = FileIO.FieldType.Delimited

        afile.Delimiters = New String() {","}

        afile.HasFieldsEnclosedInQuotes = True


        ' parse the actual file

        Do While Not afile.EndOfData

            Try

                CurrentRecord = afile.ReadFields

            Catch ex As FileIO.MalformedLineException

                Stop

            End Try

        Loop


查看完整回答
反對(duì) 回復(fù) 2019-09-24
  • 3 回答
  • 0 關(guān)注
  • 417 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)