2012-05-25 3 views
3

현재 텍스트 파일에 문자열을 삽입하는 과정은 파일을 읽고 수정하여 파일을 다시 작성하는 방법입니다. 그것을하고있다..net을 사용하여 txt의 특정 위치에 라인 삽입하기

.net에는 txt 파일의 특정 줄에 문자열을 삽입하는 특정 명령이 있는지 궁금합니다.

나는 다음과 같이 보일 것입니다 상상 :

dim file as file 
file.open("filePath") 

file.insert(string, location) 'this isn't actually an option, I tried 

답변

8

아니, .NET에서 그렇게하기 위해 특별히 아무것도 없다. 에 선을 복사하는 코드를 작성

var lines = File.ReadAllLines("file.txt").ToList(); 
lines.Insert(location, text); 
File.WriteAllLines("file.txt", lines); 

그것은 메모리의 측면에서 더 효율적이 될 것입니다 : 당신은 텍스트의 모든 라인을 읽어 드리겠습니다 경우

당신은 그것을 매우 단순히을 수행 할 수 있습니다 시간, 복사하는 동안 오른쪽 지점에 새 줄을 삽입하지만 더 많은 작업이 될 것입니다. 을 알면 파일이 작을 것입니다.

+0

그래, 내가 겪은 것처럼 보입니다. 광산은 위치가 다양하기 때문에 조금 더 길어질 것입니다, 나는 그 과정에서 독서 중 위치를 찾아야 할 것입니다. – Aeropher

1

문자열로 모든 텍스트를 읽은 다음 문자열 insert을 사용할 수 있습니다 (예 :

File.WriteAllText("file.txt", File.ReadAllText("file.txt").Insert(startIndex, "value")); 
+0

다른 대답과 비슷한 개념이지만 목록을 사용하면 훨씬 깔끔하게 보이고 list.contains ("text")를 사용하여 필요한 위치를 찾을 수 있습니다. – Aeropher

+0

모든 행을 읽었으므로 list.Contains ("text")는 "text"와 정확히 일치하는 행에 대해 true가됩니다. Line.Contains ("text")) Any() –

+0

하아, 나는 이것을 발견했다. 나는 이걸 발견했다. instr (item, "text") "하지만"목록의 각 항목에 대해 "할 예정 이었지만 길은 훨씬 짧아 보입니다. – Aeropher

관련 문제