조언을 해주셔서 감사합니다.
아직 잘 몰라서 소스를 올리니 고쳐주십시요.
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자리씩
그럼 결과기대하겠습니다.
변수형 주에서 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자리씩
>
> 그럼 결과기대하겠습니다.