[질문]파일의 특정위치 문자 읽어오기
글쓴이: gostop / 작성시간: 화, 2004/05/11 - 5:18오전
서버에서 버젼정보 파일을 받아와서 새버젼이면 업데이트를 수행하는 프로그램을 만들고 있습니다.
버젼정보 파일은 다음처럼 아주 간단하게 되어있습니다.(버젼 <tab구분> 버전)
1<Tab>1
업데이트 프로그램에서 버젼을 읽어와서 검사하는 루틴은 다음과 같습니다.
hFile=CreateFile("version.ini", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if(hFile!=INVALID_HANDLE_VALUE) { ReadFile(hFile, ncver, 1, &dwRead, NULL); SetFilePointer(hFile, 2, 0, FILE_BEGIN); ReadFile(hFile, nupver, 1, &dwRead, NULL); CloseHandle(hFile); } if(atoi(ncver)<atoi(ocver)) { 업데이트 수행....
근데 ncver와 nupver배열에 1과 1이 들어있을줄 알았는데 전혀 이상한게 들어있습니다(H와 @가 들어가있네요.. :?: )
제가 뭘 잘못 알고 있는 걸까요?
혹은 이런 비슷한 프로그램 작성시 제가 만든 코드말구 더 좋은 방법 없을까요?
원래는 version.ini에 문자열을 더 넣을려고 했는데 파일에서 특정위치 문자를 읽어오는걸 잘 몰라서 위처럼 간단하게 했습니다. :oops:
Forums:
Re: [질문]파일의 특정위치 문자 읽어오기
ReadFile은 Binary 형태의 파일을 읽을때 주로 사용합니다.
즉 위와 같이 Text 형태로 되어있다면 이렇게 하는게 편합니다.
-----------
청하가 제안하는 소프트웨어 엔지니어로써 재미있게 사는 법
http://sozu.tistory.com
흐음, 뭔가 실수하신건 아닌지.SetFilePointer 로 옮기
흐음, 뭔가 실수하신건 아닌지.
SetFilePointer 로 옮기고, ReadFile 로 읽으면 됩니다.
고운 하루되시길..
=========================
CharSyam ^^ --- 고운 하루
=========================
다시 질문드립니다.
여기저기 알아보고 다음과 같이 바꿨습니다.
그래도 여전히 안되네요.. :twisted:
NewUpdate.ini의 내용은 다음과 같고 . 프로그램이 실행되는 컴퓨터의 OldUpdate.ini도 같은 구조로 되있습니다.
[Client]
Version=1
[Update]
Version=1
이 파일을 가져와서 새버전인지 비교하는 루틴은 다음과 같습니다.
근데 서버에서 받아온 update.ini 파일을 열어보면 버전이 1로 되있는데 GetPrivateProfileInt()로 얻어온 버전값을 보면 0으로 되있습니다.
그래서 혹시 서버에서 받아오는데 느려서(실제론 1초정도 밖에 안걸립니다.) GetPrivateProfileInt()에서 버전값을 알아올때 update.ini파일을 아직 다운받기 전이여서 디폴트값이 들어가지 않았나 싶어서 위처럼 do..while()을 넣줬습니다.
이거때문에 3일동안 삽질만 하고있네요..
도데체 뭐가 문제일까요?
댓글 달기