문제
가 TXT 파일이 가져올 필요가를 통해 응용 프로그램,하지만 몇 가지 이유로 내가 그것을 열 필요가 워드패드에서 먼저 저장기 전에 그것을 가져오.나는 그것을 함께 할 수 있습니다.면 그것을 열 메모장에 먼저,줄 바꿈이 없어지면 그것을 열과 함께 워드패드 라인이 있습니다.
사람이 왜 이 발생하고 어떻게 피할 수 있는 수동으로 파일을 열고 저장과 함께 워드패드?습니다 vb6(Yikes!).
어떤 도움을 주셔서 감사합니다
해결책
이 라인이 끝나는 문제입니다.귀하의 코드(메모장)보고 싶은 캐리지 리턴(CR)/라인 피(LF)쌍,그리고 이것은 아마 CR 만(Macintosh)or LF 만(Unix)파일이 들어 있습니다.워드패드 더 많은 용서하는 것,그리고 저장은 분명히(을 테스트하지 않았다)절약 CR/LF pairs 습니다.
을 변경할 수 있습 응용 프로그램에서 코드를 찾아의 엔딩 및 치료를 그들을 쉽게:그냥 보는 중지에 대한 vbCrLf 쌍으로 찾 중 하나로 라인의 끝.내 자신의 전략을 검색 CR LF 또는과 소비하는 모든 CR/LF 문자는 다음:이렇게 빈 줄 뿐입니다.
다른 팁
파일에는 아마도 각 줄 끝에 캐리지 리턴 (CR) 또는 라인 피드 (LF) 문자 만있을 수 있습니다.
Windows에는 각 라인의 끝에 CR과 LF 문자가 모두 필요합니다. 이것은 일정한 VBCRLF를 사용하여 VB6에서 쉽게 수행 할 수 있습니다.
플립 측면에서 파일을 읽는 사람이라면 파일이 누락 된 파일을 결정하고 파일을 읽을 때 수동으로 추가 할 수 있습니다 (즉, 교체 기능을 사용하여 CR을 CRLF 또는 LF로 CRLF로 변환합니다).
이러한 파일이 매우 크고 성능이 중요하지 않으면 adodb.stream 객체를 통해 라인으로 읽을 수 있습니다.
이것은 여러 라인 구분 기호 (stream.lineseparator = adcr, adcrlf 또는 adlf)를 처리 할뿐만 아니라 유니 코드 (UTF-16), UTF-8, System CodePage ANSI 및 대안 "ANSI"인코딩을 포함하는 파일을 처리하는 데 사용될 수도 있습니다. 다른 지역.
예를 들어 러시아어 로케일의 "ANSI"가 포함 된 텍스트 파일이있는 경우 Stream.CHARSET = "KOI8-R"을 설정하고 VB6 Unicode (UTF-16)로 적절한 변환 데이터를 읽을 수 있습니다.
Dim Stm As ADODB.Stream
Dim Line As String
Dim Counter As Long
Set Stm = New ADODB.Stream
With Stm
.Open
.LoadFromFile "russian.txt"
.Type = adTypeText
.Charset = "koi8-r"
.LineSeparator = adLF
Do Until .EOS
Line = .ReadText(adReadLine) 'Text is in Unicode now.
Counter = Counter + 1
Loop
.Close
End With
charset은 "유니 코드"(UTF-16) 값으로 기본값을 기본적으로하지만 기본 코드 페지로 ANSI에서 스트림을 읽거나 쓸 수 있습니다.
hkcr mime database charset에는 사용 가능한 값이 포함되어 있습니다.