|
임펠리테리입니다.
보여주신 소스는 Win32 SDK 방법을 이용한 것이군요.
fopen() 이라고 하셨는데 보여주신 소스는 FileOpen()을 쓰고 있군요. (헷갈려라...)
게다가 한자씩 읽어들인다고 하셨는데 보여주신 소스는 한방에 전체 파일을 다 읽어오는 방법을 쓰셨구요.
파일을 읽어들이는 문제는, 작성하시려는 프로그램이 읽어들일 파일의 몇가지 특성과 읽어들인 데이터를
어디다 쓰려구 하는가에 따라 최적의 방법이 달라집니다. 구체적으로 무엇을 하려고 하시는지 알려주셨으면
더 좋았을 겁니다.
만약 읽어들일 파일이 반드시 텍스트파일이고, 크기가 그리 크지 않다면(몇메가 단위가 아니라면) 가장
쉬운 방법은 스트링리스트를 이용하는 것입니다. TStringList의 LoadFromFile()을 쓰면 간단히 텍스트파일을
스트링리스트로 읽어들일 수 있을 뿐 아니라, Strings[] 배열형 프로퍼티를 이용해서 간단히 사용할 수 있습니다.
TStringList *MyStringList = new TStringList;
MyStringList->LoadFromFile(읽어들일 파일);
ShowMessage("읽어들인 파일의 세번째 라인은 : " + MyStringList->Strings[2]);
...
delete MyStringList;
그럼 참고하시길...
초보 님이 쓰신 글 :
:
: fopen문으로 파일을 읽어드리고...
:
: 순수하게 파일을 읽어드릴려고 하고있습니다.
: 한자한자씩 읽어드리는건 했는데.
:
: 줄단위로 읽어들이는건 아직까지 헤메고있습니다.
:
: 문자열로 읽어드라고 하고있는데.. 안돼네요..
:
: Txt파일의 한줄의 칸수는 91칸이구요..
: 줄수는 2줄이상입니다.
:
: 일주일을 이것때문에...
:
:
: int iFileHandle;
: int iFileLength;
: int iBytesRead;
: char *psz;
:
: iFileHandle = FileOpen(".\\Test1.log", fmOpenRead);
: iFileLength = FileSeek(iFileHandle,0,2);
: FileSeek(iFileHandle,0,0);
: pszBuffer = new char[iFileLength+1];
: iBytesRead = FileRead(iFileHandle, psz, iFileLength);
: FileClose(iFileHandle);
:
: 씨빌더에 있는 소스코드 가지구 했는데...
: 어떻게 해야할지 모르겠습니다.
:
: 줄단위로 읽어드리는 방법 아시는 분은 좀 알려주세요...
:
: 감사합니다.
:
:
|