0

これは簡単なはずですが、少し行き詰まっています。テキストファイルを1行ずつ読み込んでいます。各行は、ICD に基づいて同じようにフォーマットされます。特定の場所でデータを取得し、それを x に置き換える必要があります。

例えば:

Line = "First Name Last Name Street Address State ZIP Other Data"

これは固定長の ICD であるため、アドレスは常に位置 100 から始まり、150 を通過します。位置 100 から 150 をすべて x に置き換える必要があります。

そこから、行を新しいファイルに書き込んでいますが、その部分は正常に機能しています。

手伝ってくれてどうもありがとう。

4

3 に答える 3

2

これを使って:

Dim newLine As String = Line.Substring(0, 100) & New String("x"c, 50) & line.Substring(150)
于 2013-07-31T20:34:23.060 に答える
0

これを行うための組み込みメソッドはないため、自分で実装する必要があります。最も簡単な方法は、String.Substringメソッドを使用して必要な部分 (文字列の先頭と末尾) を抽出し、それらを置換値と連結して戻すことです。例えば:

Dim newValue As String = line.Substring(0, 99) & New String("X"c, 50) & line.Substring(150)

StringBuilderただし、文字列の複数のセクションを置き換える必要がある場合は、各文字をその場で操作できるを使用する方が簡単で効率的です。

Dim builder As New StringBuilder(line)
For i As Integer = 100 to 149
    builder.Chars(i) = "X"c
Next
line = builder.ToString()
于 2013-07-31T20:35:43.900 に答える
0

文字列、開始インデックス、および長さを受け取り、置換された文字を含む文字列を返す関数を作成できます。これは、長さが文字列の長さを超えるエラーの場合も処理します (この場合、残りの文字列は選択した文字に置き換えられます)。

Private Shared Function ReplaceCharsWithChar(input As String, firstIndex As Integer, length As Integer, replaceChar As Char) As String
    Dim sb As New StringBuilder(input)
    For i As Integer = firstIndex To Math.Min(firstIndex + length, input.Length) - 1
        sb(i) = replaceChar
    Next
    Return sb.ToString()
End Function

そして、このように呼び出します

Dim input As String = "First Name Last Name Street Address State ZIP Other Data" 
Dim result As String = ReplaceCharsWithChar(input, 10, 5, "x"C)

'output would be First Namexxxxx Name Street Address State ZIP Other Data
于 2013-07-31T20:36:57.647 に答える