2013-06-26 2 views
0

다음 코드를 작성하여 CSV 파일의 내용을 데이터 테이블에 복사했지만 내용에 따옴표가 포함되어 있습니다. 나는 그들을 제거하는 몇 가지 방법을 시도했지만 지금 어떻게 해야할지에 관해서 붙어있다. 누구든지 나를 보여줄 수 있다면 나는 매우 감사 할 것입니다.가져온 CSV 파일에서 인용 부호를 제거하려면 어떻게합니까?

 Dim line As String 
     Dim strArray() As String 
     Dim dt As DataTable = New DataTable() 
     Dim row As DataRow 

     Using strm As IO.StreamReader = New IO.StreamReader("" & Spreadsheet & "") 

      line = strm.ReadLine 
      strArray = Split(line, ",") 
      For Each s As String In strArray 
       dt.Columns.Add(New DataColumn(s)) 
      Next 

      While Not strm.Peek = -1 
       line = strm.ReadLine 
       row = dt.NewRow() 
       Dim mySplit() As String = line.Split(",") 

       For i As Integer = 0 To mySplit.Length - 1 
        row(i) = mySplit(i) 
       Next 
       dt.Rows.Add(row) 
      End While 
     End Using 
+2

[Microsoft.VisualBasic.FileIO.TextFieldParser] (http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser.aspx)을 살펴보십시오 - 그것이있다 옵션을 사용하여 따옴표 붙은 필드를 처리 할 수 ​​있습니다. 또한 CSV (및 다른 구분 된 파일)를 일반적으로 구문 분석하는 데 매우 유용합니다. – Tim

+6

이것은 CSV 파일을 구문 분석하는 방법이 아닙니다. 따옴표 붙은 필드를 고려하지 않고 쉼표로 구분하지 않아도됩니다. – Joey

+0

Linq2CSV http://www.codeproject.com/과 같은 CSV 파일 처리에 사용할 수있는 프로젝트가 여러 개 있습니다. 기사/25133/LINQ-CSV-library. 이 중 하나를 사용하는 것이 좋습니다. 인용문은 CSV 파일에서 용도가 있습니다. 단지 그것들을 벗겨내는 것만으로는 충분하지 않습니다. – hatchet

답변

1

당신이 이 방법 스틱 당신이이 기능을 대체 사용하여 빈 문자열을 가진 모든 견적을 대체 할 수해야하는 경우 좋은 의견은,이 다른 접근 방식에 대해 남아있는 동안 :

row(i) = Replace(mySplit(i), Chr(34), String.Empty) 

하는 경우가 당신이 지키고 자하는 인용문 들로서 첫 글자와 마지막 글자에 대해서만 걱정하고 있습니다. 나는 Mid이나 SubString 함수를 체크 아웃하는 것이 좋습니다.

+0

더 적은 호출을 위해 회선 변수를 제거하면됩니다. – Paparazzi

+0

@Blam 동의합니다. 잘 했어. – N0Alias

0

문자열을 조작하기위한 확장 기능이 있습니다.

row(i) = mySplit(i).Replace("""", "") 
관련 문제