"|" 구분 된 파일은 그 안에있는 모든 행을 읽어야하며 "< \ HRM>"이 존재하면 ""(아무것도 표시하지 않습니다. 그리고 "HRM \"이있는 곳에 그것을 대체하십시오; 읽은 것과 같은 순서로 모든 것을 써야합니다.C#에서 텍스트 파일의 항목 바꾸기
저는 원래의 쓰기를 편집하고 새로운 것을 쓰지 않고이 작업을하고 싶습니다. 내가 새로운 파일을 써야한다면 나는해야한다고 생각한다.
"|" 구분 된 파일은 그 안에있는 모든 행을 읽어야하며 "< \ HRM>"이 존재하면 ""(아무것도 표시하지 않습니다. 그리고 "HRM \"이있는 곳에 그것을 대체하십시오; 읽은 것과 같은 순서로 모든 것을 써야합니다.C#에서 텍스트 파일의 항목 바꾸기
저는 원래의 쓰기를 편집하고 새로운 것을 쓰지 않고이 작업을하고 싶습니다. 내가 새로운 파일을 써야한다면 나는해야한다고 생각한다.
("이것", "이 변경").
using (StreamReader stream = new StreamReader(File.Open(@"YourFilePath", FileMode.Open)))
{
string fileText = stream.ReadToEnd();
// Do your replacements
fileText = fileText.Replace(@"<\HRM>", string.Empty);
fileText = fileText.Replace(@"HRM\", ";");
using (StreamWriter writer = new StreamWriter(File.Open("@YourFilePath", FileMode.Create)))
{
// You do a create because the new file will have less characters than the old one
writer.Write(fileText);
}
}
새로운 것을 작성하고 싶습니다. 이 작업을 수행하는 데는 좋은 이유가 있습니다. 그 중 가장 적은 것이 훨씬 더 빠를 것입니다. 그것은 또한 당신의 데이터가 안전의 정도 (전력 손실이 잠재적 인 데이터 손실/손상을 초래하지 않습니다를 제공합니다.
일반적으로 인정 절차의 라인을 따라입니다
이전 파일의 정상에
하려면 string.replace 문제는 파일이 솔루션 또는 적어도 그것을 천천히 변경 될 수 있습니다 얼마나 큰
어떨까요? 라인 단위로 교체하는 것이 메모리 사용을 훨씬 쉽게합니다. –
당신은 두 가지 가정을하고 있습니다. A) 파일에/n/r이 있습니다. 없을 수도 있습니다. B) ""또는 "HRM \"은 줄을 감싸지 않습니다. 나는 그 파일이 어떻게 보였는지 알지 못했기 때문에, 비록 그것이 느리다하더라도 모든 것을 읽는 것이 가장 좋은 방법 일 것이다. 바이트로만 버퍼를 읽으려고했는데, 내가 "<\HRM>"의 중간에 있었는지 어떻게 알 수 있습니까? –
이것은 잘 작동했기 때문에 여분의 공간에 놓이게되므로 결국 끝납니다. ; . 나는 무엇이든지 될 수있다. | | 이미 파일에 있습니다. –