StreamReader를 사용할 때 파일에서 읽기 시작 위치를 어떻게 지정합니까?

StackOverflow https://stackoverflow.com/questions/589067

  •  09-09-2019
  •  | 
  •  

문제

StreamReader를 사용할 때 파일에서 읽기 시작 위치를 어떻게 지정합니까?

파일 스트림 객체와 함께 StreamReader 객체를 만들었습니다. 두 객체가 모두 만들어지면 스트리트 리더가 파일에서 읽기 시작하는 위치를 어떻게 제어 할 수 있습니까?

파일의 내용이 다음과 같다고 가정 해 봅시다.

// song list.
// junk info.
1. Song Name
2. Song Name
3. Song Name
4. Song Name
5. Song Name
6. Song Name

하자 2에서 읽을 streamreader를 어떻게 제어합니까? 또한 #5와 같은 비슷한 구분 기호로 읽는 곳을 어떻게 제어 할 수 있습니까?

편집 : Delimiter에 의해 Streamreader가 읽기 시작하는 방법 ( '2.')

도움이 되었습니까?

해결책

파일을 메모리 내 객체로 사로화하려고합니까? 그렇다면 사용시 전체 파일을 구문 분석하는 것이 좋습니다. ReadLine 또는 비슷한 것, 각 라인을 저장 한 다음 A와 같은 데이터 구조를 통해 액세스하십시오. KeyValuePair<int, string>.

업데이트 : OK ... 새로운 정보를 사용하면 두 가지 옵션이 있다고 생각합니다. 성냥을 찾을 때까지 독서를보고 있다면 Peek(), 캐릭터가 당신이 찾고있는 캐릭터인지 확인한 다음 Read(). 또는 정해진 위치를 찾고 있다면 간단히 Read() 그 많은 캐릭터와 반환 가치를 버리십시오.

복잡한 구분 기호를 찾고 있다면 전체 줄이나 전체 파일을 메모리 및 사용으로 읽을 수 있습니다. 정규 표현.

도움이되기를 바랍니다 ...

다른 팁

파일에 새 라인 구분 장치가 포함 된 경우 사용할 수 있습니다. 읽기 한 번에 줄을 읽습니다.

따라서 2 행에서 읽기 시작하려면 첫 번째 줄을 읽고 버리고 5 번 줄까지 줄을 읽습니다.

콘텐츠가 그와 같은 일반 텍스트 인 경우 StreamReader의 readline 메소드를 사용해야합니다.

http://msdn.microsoft.com/en-us/library/system.io.streamreader.readline.aspx

-이신

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top