Q&A

  • 파일을 읽을때 100byte 씩 잘라서 읽는방법???
파일형태는 100byte가 한줄로 되어있는데

간혹 100byte가 조금 안되는 데이타가 한줄로 되어있는 경우가 있습니다.

-----------------------------------------------

buffer : Array[0..100] of Char;

iFileHandle := FileOpen(Filedir, fmOpenRead);

FileRead(iFileHandle, Buffer, 100);

------------------------------------------------

이런식으로 처리를 하려고 하니

buffer의 끝값 또는 첫값에 [#13,#10] 값이 들어가있어 데이터가 꼬입니다.



글구



여기서 buffer 에 들어가는 type을 String으로 하닌깐 값이 들어오질 않고

배열이나 포인터 선언을 하면 값이 들어오는데...

그 이유는 뭔가요???









2  COMMENTS
  • Profile
    구창민 2001.09.22 04:18
    NOJ wrote:

    > 파일형태는 100byte가 한줄로 되어있는데

    > 간혹 100byte가 조금 안되는 데이타가 한줄로 되어있는 경우가 있습니다.

    > -----------------------------------------------

    > buffer : Array[0..100] of Char;

    > iFileHandle := FileOpen(Filedir, fmOpenRead);

    > FileRead(iFileHandle, Buffer, 100);

    > ------------------------------------------------

    > 이런식으로 처리를 하려고 하니

    > buffer의 끝값 또는 첫값에 [#13,#10] 값이 들어가있어 데이터가 꼬입니다.

    >

    > 글구

    >

    > 여기서 buffer 에 들어가는 type을 String으로 하닌깐 값이 들어오질 않고

    > 배열이나 포인터 선언을 하면 값이 들어오는데...

    > 그 이유는 뭔가요???

    >

    >

    >

    >







    파일에서 한라인씩 읽어오기만 하려는 목적이라면



    아주 간단한 방법이 있습니다.



    var

    F: TStringList;

    i: Integer;

    S: String;

    begin

    F := TStringList.Create;

    F.LoadFromFile('파일이름');

    for i:= 0 to F.Count - 1 do

    begin

    S := F.Strings[i];

    //DoSomeThing..

    end;

    F.Free;

    end;



    이렇게 처리하면 한 라인씩 읽어집니다.



    바로 쓴 글이라 오타로 인한 버그가 있을지 모르겠네요



    방법은 아시겠죠?



    그럼~~ 항상 즐거운 프로그래밍 하시길~~~

  • Profile
    Ziker 2001.09.22 02:39
    안녕하세요



    TMemoryStream으로 읽어들인다음 잘라서 사용 해 보시기 바랍니다.



    TMemoryStream에대한 내용은 이곳 게시판에 많이 있는걸로 알고 잇는데

    검색해보세요 ^^



    그럼



    NOJ wrote:

    > 파일형태는 100byte가 한줄로 되어있는데

    > 간혹 100byte가 조금 안되는 데이타가 한줄로 되어있는 경우가 있습니다.

    > -----------------------------------------------

    > buffer : Array[0..100] of Char;

    > iFileHandle := FileOpen(Filedir, fmOpenRead);

    > FileRead(iFileHandle, Buffer, 100);

    > ------------------------------------------------

    > 이런식으로 처리를 하려고 하니

    > buffer의 끝값 또는 첫값에 [#13,#10] 값이 들어가있어 데이터가 꼬입니다.

    >

    > 글구

    >

    > 여기서 buffer 에 들어가는 type을 String으로 하닌깐 값이 들어오질 않고

    > 배열이나 포인터 선언을 하면 값이 들어오는데...

    > 그 이유는 뭔가요???

    >

    >

    >

    >