이제 사용자가 사용한 .txt 파일의 문자열을 제거하고 싶습니다. 이것은 그것을 사용할 수 없도록 만드는 것입니다. corrected code에 대한 팀 Schmelter에사용 된 문자열을 제거하는 방법
감사합니다.
If .txt file.Contains(stN) Then
'Do anything here
'Then I want to remove the string used.
End If
이제 사용자가 사용한 .txt 파일의 문자열을 제거하고 싶습니다. 이것은 그것을 사용할 수 없도록 만드는 것입니다. corrected code에 대한 팀 Schmelter에사용 된 문자열을 제거하는 방법
감사합니다.
If .txt file.Contains(stN) Then
'Do anything here
'Then I want to remove the string used.
End If
당신은 전체 파일을 다시 작성해야 :
Dim newLines = File.ReadAllLines(path).
.Where(Function(l) Not l.Trim.Equals(stN, StringComparison.OrdinalIgnoreCase))
File.WriteAllLines(path, newLines)
당신이 트림과 대소 문자를 구분 비교를 사용하지 않을 경우 :
.Where(Function(l) l <> stN)
편집을 :인가 .NET 3.5를 사용하고 계십니까? 그런 다음 File.WriteAllLines
은 IEnumerable(Of String)
을 허용하지 않고 String()
만 허용합니다. 쿼리에서 하나를 생성해야합니다.
File.WriteAllLInes(path, newLines.ToArray())
어디에 넣어야합니까? –
변경된 질문이 더 이상 명확하지 않습니다. 먼저 주어진 문자열과 같은 파일에서 행을 제거하려고합니다. 이제'num'은 하나의 문자열이고, 줄이나 다른 것이 있으면 명확하지 않습니다. –
내가 다시 편집했습니다 –
파일은 줄 기반 (또는 문자 기반)이 아니므로 파일에서 줄을 제거 할 수 없습니다. 가능한 가장 작은 변경은 파일의 일부가 파일 시작 부분에서 시작하여 파일의 끝까지 재 작성하는 것입니다. 이는 사소하지 않습니다. 가장 쉬운 해결책은 일반적으로 전체 파일을 다시 쓰는 것입니다.
파일을 읽고, 일치하는 라인없이 다시 쓰기 :string[] lines = File.ReadAllLines(fileName);
lines = lines.Where(s => s != theString).ToArray();
File.WriteAllLines(fileName, lines);
는이 문제를 해결하기 위해 시도했다 제시해주십시오. – RBarryYoung