2012-05-26 4 views
-1

일부 코딩에 어려움을 겪고 있으며 누군가 제발 나를 도울 수 있기를 바랍니다. 텍스트 파일을 읽고 소문자로 column2를 변환하고 다시 저장하려고합니다. .vb.net에서 Using.tolower 함수

하지만 'Integer'형식의 값을 가져올 때 'System.Globalization.CultureInfo'로 변환 할 수 없습니다. 후에. 아래로?

Dim Convertcolumn = From line In System.IO.File.ReadLines("Path") 
       Select line.Split(" "c)(1) & line.ToLower(1) 
    Dim writer As IO.StreamWriter = New IO.StreamWriter("Path2") 

    For Each line In Convertcolumn 
     writer.Write((line) & Environment.NewLine) 
    Next 

업데이트 코딩 :

Dim Convertcolumn = From line In System.IO.File.ReadLines("C:\Test1.txt") 
        Select line.Split(" "c)(1) & line.Split(" "c)(1).ToLower() 

Dim writer As IO.StreamWriter = New IO.StreamWriter("C:\Test2.txt") 

For Each line In Convertcolumn 
    writer.Write((line) & Environment.NewLine) 
Next 

죄송합니다 나는 그것의 데이터가이

D00001 BLACK user 
D00002 BLACK user 

과 같은 열로 표시되지 않는 주석을 추가하고 난

로 변경하고자 할 때
D00001 black user 
D00002 black user 

답변

1

파일에 열이 있으면 원본 코드가 작동하지 않습니다. 당신이 필요합니다 :

Using parser = New FileIO.TextFieldParser("Path") 
     parser.TextFieldType = FileIO.FieldType.Delimited 
     parser.Delimiters = New String() {" "} 
     Using writer = New IO.StreamWriter("Path2") 
      While True 
       Dim words = parser.ReadFields() 
       If words Is Nothing Then Exit While 
       If words.Length > 1 Then words(1) = words(1).ToUpper 
       writer.WriteLine(String.Join(" ", words)) 
      End While 
     End Using 
    End Using 
+0

많은 thanks hans – user1413746

1

line.ToLower(1)은 유효하지 않습니다.

ToLower에는 매개 변수가 없습니다.

난 당신이 split의 첫 번째 결과의 소문자 버전을 얻을 의미 가정

line.Split(" "c)(1).ToLower() 

첫 번째 줄 만들기 :

Dim Convertcolumn = From line In System.IO.File.ReadLines("Path") 
      Select line.Split(" "c)(1) & line.Split(" "c)(1).ToLower() 

업데이트 :

을 이제는 문제를 설명 했으므로 이런 종류의 구조를 다루는 라이브러리를 사용하는 것이 좋습니다. d 텍스트 파일 - TextFieldParser을 사용하여 파일을 읽고 값을 직접 조작합니다. File 클래스의 정적 Write* 메서드 중 일부를 사용하여 새 파일을 쓸 수 있습니다.

+0

감사합니다, 나는 그 전에 시도 않았다하지만 'ToLower는이' 'System.Array'의 멤버가 아닙니다 얻었다. – user1413746

+0

@ user1413746 - 그래서 ToLower를 호출하기 전에 문자열 배열의 _element_에 액세스해야합니다. – Oded

+0

@Downvoter - 댓글을 올리시겠습니까? – Oded

관련 문제