Q&A

  • 다시 궁금
조언을 해주셔서 감사합니다.

아직 잘 몰라서 소스를 올리니 고쳐주십시요.

type

Data = Record

buf : Array[0..48] of shortstring;

End;





procedure

var

In :File of Data;

Data : Data;

UseFileName : String;

begin



UseFileName := '9912.dat';

if (FileExists(useFileName)) then

begin

AssignFile(In,UseFileName);

ReSet(In);





dat파일의 data : 1ABCDEFGH123456789012.......



결과값 : BUF[0] := '1'

BUF[1] := 'ABCDEFGH'

BUF[3]~BUF[48] := 12자리씩



그럼 결과기대하겠습니다.

1  COMMENTS
  • Profile
    여영식 2000.01.12 19:13
    이런 유형이 될것 같습니다.

    변수형 주에서 File of Data 형식은 Read 시 Count 를 지정할 수 없기 때문에 사용할 수

    없습니다. 꼭 이 형을 사용해야한다면 Data 파일의 내용을 한 번에 읽을 수 는 있기 때문에

    일단 버퍼에 올려놓고 버퍼에서 복사해서 쓰는 방법은 있습니다. 그러나 아래와 같은 방법이

    좀더 효율적이라 생각되는군요. 도움이 되시기를...



    var

    DataFile: TFileStream;

    begin

    DataFile := TFileStream.Create('9912.dat', fmOpenRead);

    DataFile.Read(Data.Buf[0], 1);

    DataFile.Read(Data.Buf[1], 6);

    DataFile.Read(Data.Buf[7], 12);

    .

    .

    .

    DataFile.Free;

    end;



    초보왕 wrote:

    > 조언을 해주셔서 감사합니다.

    > 아직 잘 몰라서 소스를 올리니 고쳐주십시요.

    > type

    > Data = Record

    > buf : Array[0..48] of shortstring;

    > End;

    >

    >

    > procedure

    > var

    > In :File of Data;

    > Data : Data;

    > UseFileName : String;

    > begin

    >

    > UseFileName := '9912.dat';

    > if (FileExists(useFileName)) then

    > begin

    > AssignFile(In,UseFileName);

    > ReSet(In);

    >

    >

    > dat파일의 data : 1ABCDEFGH123456789012.......

    >

    > 결과값 : BUF[0] := '1'

    > BUF[1] := 'ABCDEFGH'

    > BUF[3]~BUF[48] := 12자리씩

    >

    > 그럼 결과기대하겠습니다.