2016-07-11 1 views
-5

입니다. 아래 코드는 CSV 파일을 만드는 코드입니다. csv의 생성은 괜찮지 만 csv가 텍스트 파일로 변환 할 때 값의 시작과 끝 사이에 따옴표가 있어야합니다. EX : CSV 파일에서 값은 : Jham이고 텍스트 파일에 있어야합니다. "Jham"- 어떻게 관리 할 수 ​​있습니까? 누군가 도울 수 있습니까?CSV 파일의 견적 표는 없지만 TXT 파일의 파일은

listofValue = ZipFileStr & "," & Img1Val & "," & Img2Val & "," & RExVal & "," & BundleNo & "," & BundleNo & "," & URNVal & "," & PromocodeVal & "," & ZipFileStore & "," & SNumVal & "," & DpackVal & "," & ArrivalDate & "," & CompleteDateTwo & "," & KidPCVal & "," & MDBName 

Dim PathX As String = TempPath & "\" 

If Not IO.Directory.Exists(PathX) Then 
    MkDir(PathX) 
End If 

Dim sampleX As String = PathX & ZipFileStr & "P.csv" 
Dim outFile As IO.StreamWriter = My.Computer.FileSystem.OpenTextFileWriter(sampleX, True) 

outFile.WriteLine(listofValue) 
outFile.Close() 

답변

0

먼저 코드 스 니펫을 게시 할 때 가독성을 위해 형식을 지정하십시오. 나는 너를 위해 그것을 고쳤다.

두 번째로, CSV 파일과 텍스트 파일간에 "변환"같은 것은 없습니다. CSV는 일반 텍스트 일뿐입니다. 텍스트에 레코드 및 필드 구분 기호가 있으면 CSV 파일이며, 그렇지 않으면 그렇지 않습니다. 그것은 평범한 텍스트 중 하나입니다. VB 2015 년, 문자열 보간 코드를 만드는 훨씬 더 읽을 수

Dim line = String.Format("""{0}"",""{1}"",""{2}""", 
         firstValue, 
         secondValue, 
         thirdValue) 

및 String.format의 사용 또는 :

질문에 관해서는, 나는이 같은 인용 값의 무언가와 CSV를 작성 건의 할 것입니다. 리터럴 문자열에 큰 따옴표를 넣으면 다른 큰 따옴표로 이스케이프 처리하면됩니다. 이 인용 얻을 일반적으로 단지 텍스트 값이 아닌 숫자와 날짜 등을 것을

Dim line = String.Format("{0}{1}{0},{0}{2}{0},{0}{3}{0}", 
         ControlChars.Quote, 
         firstValue, 
         secondValue, 
         thirdValue) 

참고 : 또한 ControlChars.Quote 필드를 사용할 수 있습니다. 이는 인용문의 주된 이유는 값에 구분 기호 (예 : 쉼표 또는 줄 바꿈)가 포함되도록 허용하기 때문입니다. 분리자를 포함하는 값이 없으면 안전하게 따옴표를 생략 할 수 있습니다.

편집이 : 예를 들어, 여기에 내가 첫 번째와 네 번째 열은 String 값을 포함하는 CSV 파일에 DataTable을 작성할 수 있습니다 방법, 두 번째 열은 숫자를 포함하고 세 번째 열은 Date 값이 포함되어 있습니다.

Private Sub WriteToCsv(table As DataTable, path As String) 
    Dim lines As New List(Of String) 

    For Each row As DataRow In table.Rows 
     lines.Add(String.Format("""{0}"",{1},{2:yyyy-MM-dd},""{3}""", 
           row(0), 
           row(1), 
           row(2), 
           row(3))) 
    Next 

    IO.File.WriteAllLines(path, lines) 
End Sub 
+0

나는 그것에 대한 연구를했지만 결코 시도하지 못했습니다. 그것은 당신의 제안과 똑같이 보입니다. 나중에 할께. 고마워. 일단 내가 한 번 알려 드리겠습니다. 고마워요 – Jham

+0

안녕하세요! 그것은 실제로 작동하지 않았다 – Jham

+0

내가 게시 한 코드는 각 값을 큰 따옴표로 묶은 쉼표로 구분 된 문자열을 제공합니다. 그게 당신이 원하는 경우 내 코드를 올바르게 사용하면됩니다. 그것이 당신이 원하는 것이고 그것이 당신을 위해 작동하지 않는다면 당신은 그것을 잘못하였습니다. 당신이 한 일을 알지 못하면 무엇이 잘못되었는지를 알 길이 없습니다. – jmcilhinney