-1

私はいくつかのコーディングに苦労しており、誰かが私を助けてくれることを望んでいました.私がやろうとしているのは、テキストファイルを読み、column2を小文字に変換して再度保存することです.

しかし、「Integer」型の値を「System.Globalization.CultureInfo」に変換できません。後.ToLower?

  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
4

2 に答える 2

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
于 2012-05-26T10:00:38.490 に答える
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()

アップデート:

問題を説明したので、この種の構造化テキスト ファイルを処理するライブラリを使用することをお勧めします。 を使用しTextFieldParserてファイルを読み取り、値を直接操作します。クラスでいくつかの静的Write*メソッドを使用Fileして、新しいファイルを書き出すことができます。

于 2012-05-26T08:18:05.590 に答える