-1

ここで、ユーザーが使用した .txt ファイル内の文字列を削除したいと思います。これは使用を無効にするためです。


修正されたコードを提供してくれた Tim Schmelter に感謝します。

If .txt file.Contains(stN) Then
    'Do anything here
    'Then I want to remove the string used.
End If
4

2 に答える 2

2

ファイル全体を書き直す必要があります。

Dim newLines = File.ReadAllLines(path).
    .Where(Function(l) Not l.Trim.Equals(stN, StringComparison.OrdinalIgnoreCase) )
File.WriteAllLines(path, newLines)

Trim と大文字と小文字を区別しない比較を使用したくない場合:

.Where(Function(l) l <> stN)

編集:.NET 3.5を使用していますか?その後、 のみFile.WriteAllLinesを受け入れません。クエリから作成する必要があります。IEnumerable(Of String)String()

File.WriteAllLInes(path, newLines.ToArray())
于 2013-09-07T21:33:59.367 に答える
0

ファイルは行ベース (または文字ベース) ではないため、ファイルから行を削除することはできません。可能な最小の変更は、その行の開始位置からファイルの末尾までのファイルの一部を書き直すことですが、これは簡単ではありません。通常、最も簡単な解決策は、ファイル全体を書き直すことです。

ファイルを読み取り、一致する行なしで書き戻します。

string[] lines = File.ReadAllLines(fileName);
lines = lines.Where(s => s != theString).ToArray();
File.WriteAllLines(fileName, lines);
于 2013-09-07T21:37:15.103 に答える