제가 RS-232포트로 아스키통신을 한적이 있습니다.
제가 알기로 데이터를 보낼때 3을 3으로 보내지 않고
아스키코드에 해당하는 $33으로 보내는 것으로 알고 있습니다.
그래서, 보통 텍스터파일을 읽어 들여서 보내는 작업은 간단히
처리를 하고 있습니다. 텍스터파일의 문자 자체가 아스키 값이니까
읽은 값 그대로 보내면 되죠, 아마.
그런데, 만약 바이너리파일일 경우
var
value :Char;
begin
...
// FH는 바이너리 파일입니다.
read(FH,value);
sendChar(value);
...
end;
이와 같이 보내면 가능한지요? 그러니까 바이너리 파일의 값을 그대로
보내는 것이 맞는지 궁금했어요?
여러 고수님들중 시간이 계신분의 수고스러움을 기대해 봅니다.
그럼 좋은 하루 되십시요.
> 제가 RS-232포트로 아스키통신을 한적이 있습니다.
> 제가 알기로 데이터를 보낼때 3을 3으로 보내지 않고
> 아스키코드에 해당하는 $33으로 보내는 것으로 알고 있습니다.
> 그래서, 보통 텍스터파일을 읽어 들여서 보내는 작업은 간단히
> 처리를 하고 있습니다. 텍스터파일의 문자 자체가 아스키 값이니까
> 읽은 값 그대로 보내면 되죠, 아마.
> 그런데, 만약 바이너리파일일 경우
> var
> value :Char;
> begin
> ...
> // FH는 바이너리 파일입니다.
> read(FH,value);
> sendChar(value);
> ...
> end;
> 이와 같이 보내면 가능한지요? 그러니까 바이너리 파일의 값을 그대로
> 보내는 것이 맞는지 궁금했어요?
> 여러 고수님들중 시간이 계신분의 수고스러움을 기대해 봅니다.
> 그럼 좋은 하루 되십시요.
>
SendChar(value) 에서 value 가 char 타입일때 그런거고
SendByte(value) 에서 value 가 byte 타입일때 쓰는거 아니겠습니까?
내가 char 를 보내던 byte 를 보내던 사실상 날라가는거는
(low level spec.) byte 형태이거든요
단지 내가 보기쉬운걸로 다루기 쉬운걸로 값을 넘겨주는것 뿐입니다.
그러나,
serial 통신으로 하실건지 socket 으로 하실건진 모르겠지만
긴 내용을 보내야 할땐 sendbyte 하지 않고
일정길이로 짤라서 보내는게 보통이죠
SendBuffer(pointer, length) 이렇게 말이죠.
질문에 답이 되었나요?