원본을 읽고 결과를 쓰지 않고 CSV 파일을 편집하는 방법을 알고 싶습니다 (물론 가장 좋은 방법을 알고 싶습니다). 새로운 것.VB.Net CSV (또는 구분 된 파일) 편집
예 1 : 나는 123ABC (123)에 두 개의 컬럼에 컬럼의 내용을 분할 할 ABC
예 2 : 나는 123
해명에 열 AB123의 시작에서 문자를 제거하려면 : 예를 해결하는 데 도움이 필요하지 않습니다. 나는 단지 같은 파일을 읽고 편집하는 올바른 방향을 지적 할 필요가있다.
다음 날 것으로 보인다 임시 파일을 사용하는 코드 예제에서는 새 파일을 작성 오프
Dim currentLine as string()
tempFile.AutoFlush = True
Do Until origFile.EndOfData
currentLine = origFile.ReadFields
currentLine(1) = currentLine(1).Replace("ABC","") 'would convert ABC123 to 123
For index as Integer = 0 to currentLine.Count - 2
tempFile.Write(currentLine(index) & ",")
Next
tempFile.Write(currentLine(currentLine.Count - 1))
tempFile.WriteLine()
Loop
tempFile.Flush()
tempFile.Dispose()
origFile.Dispose()
IO.File.Copy(tempFile,OrigFile,True)
IO.File.Delete(tempFile)
교대 그는 메모리로 이전 파일을 읽을 수 있습니다 밖으로 다시 쓰기 : 파일을 저장
그리고이 같은 무언가 : 그것은 단지 훨씬 적은 코드 오버 헤드입니다 같은 파일 – briddums
중간 임시 파일을 사용하면 문제가 발생해도 데이터가 손실되지 않는다는 장점이 있습니다. 또한 파일이 너무 커서 메모리에 저장할 수없는 경우 처리를 위해 파일을 한 줄씩 읽을 수 있습니다. –
감사합니다. 임시 파일을 사용하는 것이 너무 느립니다. 코드 예제 : tempFile.AutoFlush = 진정한 문자열로 희미한 currentLine() 수행 origFile.EndOfData까지 \t currentLine = origFile.ReadFields \t currentLine (1) = currentLine (1) .Replace ("ABC", "") 'currentLine.Count 정수 = 0으로 인덱스 123 \t ABC123로 변환 것 - 2 \t \t tempFile.Write (currentLine (인덱스) ",") \t \t \t 다음 tempFile.Write (currentLine (currentLine. 백작 - 1)) \t \t tempFile.WriteLine() 루프 tempFile.Flush() tempFile.Dispose() origFile.Dispose() IO.File.Copy (임시 파일, OrigFile, 참) IO.File.Delete (임시 파일)'이 사이트에 – donbyte