2014-11-07 2 views
0

Я использую этот код в vb.net для чтения в CSV-файлов:чтения CSV-файл в vb.net

filename = TextBox1.Text 
     FileOpen(1, filename, OpenMode.Input) 

     'first row contains header information, therefore read it in, but ignore it 
     dummy = LineInput(1) 

     While Not EOF(1) 

      Input(1, dialcode) 
      Input(1, chargecode) 
      Input(1, description) 
      Input(1, mincharge) 
      Input(1, onpeak) 
      Input(1, offpeak) 
      Input(1, weekendonpeak) 
      Input(1, weekendoffpeak) 
      Input(1, onpeakconnect) 
      Input(1, offpeakconnect) 
      Input(1, weekendonpeakconnect) 
      Input(1, weekendoffpeakconnect) 
End While 

эта работа отлично

, но я теперь другой CSV для чтения в и он имеет в конце каждой строки, когда я открываю CSV-файл в блокноте, поэтому он не читает каждую строку, потому что vb.net не уверен, когда заканчивается строка

+0

Вы "используете этот код" или вы "напишите этот код"? –

+0

написал (а): ( – user2710234

+0

Почему бы вам просто не читать и не отбрасывать остальную часть строки? –

ответ

1

.Net имеет встроенный CSV-ридер в TextFieldParser. Он будет обрабатывать такие вещи, как дополнительные запятые или процитированные разделители для вас. Например, вы могли бы сделать это:

Dim dialcode As String 
Dim chargecode As String 
Dim mincharge As String 

Dim tfp As New TextFieldParser("Z:\temp\test.csv") 
tfp.Delimiters = New String() {","} 
tfp.TextFieldType = FieldType.Delimited 


tfp.ReadLine() ' skip header 
While tfp.EndOfData = False 
    Dim fields = tfp.ReadFields() 
    dialcode = fields(0) 
    chargecode = fields(1) 
    mincharge = fields(2) 
    Console.WriteLine(String.Format("{0} - {1} - {2}", dialcode, chargecode, mincharge)) 
End While 
Смежные вопросы