2013-09-07 5 views
-1

이제 사용자가 사용한 .txt 파일의 문자열을 제거하고 싶습니다. 이것은 그것을 사용할 수 없도록 만드는 것입니다. corrected code에 대한 팀 Schmelter에사용 된 문자열을 제거하는 방법


감사합니다.

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

는이 문제를 해결하기 위해 시도했다 제시해주십시오. – RBarryYoung

답변

2

당신은 전체 파일을 다시 작성해야 :

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.WriteAllLinesIEnumerable(Of String)을 허용하지 않고 String() 만 허용합니다. 쿼리에서 하나를 생성해야합니다.

File.WriteAllLInes(path, newLines.ToArray()) 
+0

어디에 넣어야합니까? –

+0

변경된 질문이 더 이상 명확하지 않습니다. 먼저 주어진 문자열과 같은 파일에서 행을 제거하려고합니다. 이제'num'은 하나의 문자열이고, 줄이나 다른 것이 있으면 명확하지 않습니다. –

+0

내가 다시 편집했습니다 –

0

파일은 줄 기반 (또는 문자 기반)이 아니므로 파일에서 줄을 제거 할 수 없습니다. 가능한 가장 작은 변경은 파일의 일부가 파일 시작 부분에서 시작하여 파일의 끝까지 재 작성하는 것입니다. 이는 사소하지 않습니다. 가장 쉬운 해결책은 일반적으로 전체 파일을 다시 쓰는 것입니다.

파일을 읽고, 일치하는 라인없이 다시 쓰기 :

string[] lines = File.ReadAllLines(fileName); 
lines = lines.Where(s => s != theString).ToArray(); 
File.WriteAllLines(fileName, lines); 
관련 문제