저는 BinaryWriter를 사용하여 다음과 같이 Delphi Prism을 사용하고 이진 파일을 만들고 쓰는 중입니다.Delphi Prism : BinaryWriter "Write 메서드"가 Delphi의 Writeln 메서드와 동일하게 작동합니까?
method TUnit.Write(bw:BinaryWriter);
var
i:Integer;
begin
bw.write(ord(uType));
bw.Write(ord(State));
bw.Write(Address);
bw.Write(SubAddress);
for i:=1 to 20 do
bw.Write(fDefs[i]);
end;
내 질문에 대한 답. write 메소드는 줄 바꿈이나 줄 바꿈이나 캐리지 리턴이없는 문자 뒤의 바이트 또는 문자 뒤에 줄을 작성합니까?
내가이 질문을하는 이유는 문자 배열과 같은 특정 문자 수없이 문자열을 쓰고 읽는 것에 혼란 스럽기 때문입니다. 예를 들어
:
method WritetoFile;
var
x:integer;
thestr:string;
begin
BinaryWriter thefile := new BinaryWriter(File.Create("test.dat"));
thefile.write(thestr);
thefile.write(x);
thefile.Close;
end;
method ReadFromFile;
var
x:integer;
thestr:string;
begin
BinaryReader thefile := new BinaryReader(File.OpenRead("test.dat"));
thestr:=thefile.ReadString;
x:=thefile.ReadInt32;
thefile.Close;
end;
그건 내 프로그램을 작성하고 잘 작동하는 것 같다,하지만 난 혼란 스러워요 말했듯이 방법은 다음과 같습니다.
문자열 데이터 형식 일 때 읽고 쓸 길이를 지정하지 않고 읽고 쓸 수있는 바이트 수를 어떻게 알 수 있습니까?
사실, @digitalanalog가 텍스트 작성자보다 BinaryWriter가 원하는 것이 더 많습니다. –