mfc cstdiofile 예제

다음 예제에서는 Seek를 사용하여 cfile 파일의 시작 부분에서 포인터 1000바이트를 이동하는 방법을 보여 주며 있습니다. Seek는 데이터를 읽지 않으므로 나중에 CStdioFile:ReadString을 호출하여 데이터를 읽도록 해야 합니다. v1.5 – 2005년 11월 18일. 코드 페이지는 읽기 및 쓰기(UTF-8)를 위해 지정할 수 있습니다. 다중 바이트 버퍼가 제대로 계산됩니다. 앤디 굿윈에서 수정 파일을 열거나 만들 수 없는 경우 생성자는 CFileException*을 throw합니다. 2매개 변수 생성자는 CStdioFile 개체를 만들고 지정된 경로로 해당 파일을 엽니다. nOpenFlags 파일 생성, 파일 공유 및 파일 액세스 모드에 대한 옵션을 지정합니다. 비트별 OR (| ) 연산자를 사용하여 여러 옵션을 지정할 수 있습니다. 기본적으로 클래스는 다중 바이트 파일을 작성하지만 선택적으로 유니코드를 작성할 수 있습니다.

단일 매개 변수 생성자는 열린 파일 스트림을 CStdioFile 개체에 연결합니다. 허용된 포인터 값에는 미리 정의된 입력/출력 파일 포인터가 stdin, stdout 또는 stderr를 포함합니다. 내가 쓴 번역 도구에 대 한 필요, 그리고 내 요구에 대 한 충분 한 충분 한 구현을 함께 노크. 이것은 정리 된 버전보다 조금 더, 그래서 버그와 결함의 모든 방법을 기대합니다. 기본 조합으로 데모 앱을 테스트했습니다 – 멀티 바이트 컴파일의 유니 코드 파일, 유니 코드 유니코드, 멀티 바이트 유니 코드 및 Multibyte-Multibyte, 그리고 다바이트 – 멀티 바이트 – 멀티 바이트, 그리고 그들은 모두 작동하는 것처럼 보입니다. nFrom 포인터 이동 모드입니다. 다음 값 중 하나여야 합니다: pOpenStream 또는 lpszFileName에 대해 NULL을 전달하는 경우 생성자는 CInvalidArgException*을 throw합니다. 파일의 문자 수를 얻으려면 GetCharCount()를 호출할 수 있습니다. 그러나 이는 멀티바이트/UTF-8에서는 신뢰할 수 없습니다. 데모 앱은 파일을 열고 유니코드인지 여부와 포함된 문자 수를 알려주며 처음 15줄을 표시하는 대화 상자입니다. 지난 몇 번의 반복에서는 유니코드 파일을 멀티바이트로 변환하는 옵션과 다중 바이트 파일을 유니코드로 변환하는 옵션과 읽을 때 코드 페이지를 지정하는 콤보를 추가했습니다.

v1.2 – 06 2005년 1월. 파일 버그(하워드 J Oh) v1.3 – 2005년 2월 19일 종료시 쓰레기를 수정했습니다. 하워드 J 오의 수정은 신비마지막 릴리스에 그것을 만들기 위해 실패했다. 테스트 프로그램을 개선했습니다. 기타 버그 매우 중요 함 수정: 이 릴리스에서는 ANSI로 작성된 ANSI 파일이 WriteString을 사용하여 더 이상 작성되지 않습니다. 즉, n은 더 이상 rn으로 “해석”되지 않습니다. 당신이 쓰는 것은 버그, 문제, 개선 등에 대한 보고뿐만 아니라 사람들의 경험에 대해 듣고 싶습니다. CFile 함수 복제, 잠금 범위 및 잠금 해제 범위는 CStdioFile에서 지원되지 않습니다.

v1.6을 기준으로 모든 모드(멀티바이트/유니코드, 유니코드/멀티바이트 등)에서 읽을 수 있는 줄의 길이에는 제한이 없습니다. 이것은 유니코드 텍스트 파일뿐만 아니라 일반 멀티 바이트 텍스트 파일의 읽기 및 쓰기를 투명하게 처리하는 CStdioFile에서 파생된 클래스입니다. null 문자()를 종료하는 것은 파일에 기록되지 않습니다. 이 메서드는 파일캐리지 반환 줄 피드 쌍으로 파일에 lpsz의 줄 바선을 씁니다. CStdioFile:WriteString 파일에 한 줄의 문자열을 쓰고 끝에 줄 바호 문자를 추가합니다. 이제 다중 바이트 파일 읽기 또는 쓰기를 위한 코드 페이지를 지정할 수도 있습니다. 읽기 전에 SetCodePage()를 호출하여 파일이 코딩된 코드 페이지를 CStdioFileEx또는 쓰기 전에 알려서 작성하려는 코드 페이지를 알려줍니다. CP_UTF8을 코드 페이지로 지정하면 UTF-8 파일을 읽거나 쓸 수 있습니다. 코드는 다바이트 및 유니코드로 컴파일됩니다. 유니코드에서는 멀티바이트 파일을 읽고 해당 콘텐츠를 현재 코드 페이지를 사용하여 유니코드로 변환합니다. 다중 바이트 컴파일에서 유니코드 파일을 읽고 다중 바이트 텍스트로 변환합니다.

유니코드 텍스트 파일의 식별은 전적으로 유니코드 바이트 순서 표시(0xFEFF)의 존재에 따라 달라집니다. 파일이 유니코드가 아니라는 절대적인 보장은 아니지만 여기서 사용하는 유일한 방법입니다.