Q&A

  • 바이너리통신 과 아스키 통신..?
제가 RS-232포트로 아스키통신을 한적이 있습니다.

제가 알기로 데이터를 보낼때 3을 3으로 보내지 않고

아스키코드에 해당하는 $33으로 보내는 것으로 알고 있습니다.

그래서, 보통 텍스터파일을 읽어 들여서 보내는 작업은 간단히

처리를 하고 있습니다. 텍스터파일의 문자 자체가 아스키 값이니까

읽은 값 그대로 보내면 되죠, 아마.

그런데, 만약 바이너리파일일 경우

var

value :Char;

begin

...

// FH는 바이너리 파일입니다.

read(FH,value);

sendChar(value);

...

end;

이와 같이 보내면 가능한지요? 그러니까 바이너리 파일의 값을 그대로

보내는 것이 맞는지 궁금했어요?

여러 고수님들중 시간이 계신분의 수고스러움을 기대해 봅니다.

그럼 좋은 하루 되십시요.



2  COMMENTS
  • Profile
    유효종 2000.01.22 01:04
    장홍민 wrote:

    > 제가 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) 이렇게 말이죠.

    질문에 답이 되었나요?

  • Profile
    장홍민 2000.01.22 04:06
    유효종 wrote:



    > SendChar(value) 에서 value 가 char 타입일때 그런거고

    > SendByte(value) 에서 value 가 byte 타입일때 쓰는거 아니겠습니까?

    >

    > 내가 char 를 보내던 byte 를 보내던 사실상 날라가는거는

    > (low level spec.) byte 형태이거든요

    > 단지 내가 보기쉬운걸로 다루기 쉬운걸로 값을 넘겨주는것 뿐입니다.

    >

    > 그러나,

    > serial 통신으로 하실건지 socket 으로 하실건진 모르겠지만

    > 긴 내용을 보내야 할땐 sendbyte 하지 않고

    > 일정길이로 짤라서 보내는게 보통이죠

    > SendBuffer(pointer, length) 이렇게 말이죠.

    > 질문에 답이 되었나요?



    저의 어리석은 질문에 답해주신 점 뭐라 감사를 드려야 할지요..

    그런데, 저는 보내는 것에 관심이 있는 것이 아니라, 바이너리파일

    을 그냥 read(FH,value)할 경우 일반 텍스터파일처럼 value에

    바이너리의 데이터가 들어가는지가 궁금합니다. 제가 알기로 바이너리

    파일이 byte단위로 되어있는 줄로 알고 있는데, 그사실이 맞는지도 궁금하고

    또, 실제 바이너리 파일과 텍스트 파일을 구분하찮아요, 그리고 더 궁금한것은

    read함수를 찾아보면 텍스터 파일만 입력변수로 되어있는것 같더라구요,

    그래서 read(FH,value)에서 value가 char형으로 선언할 경우 그 바이너리

    바이트가 제대로 value에 들어 옵니까? 아님 혹, 아스키값으로 바뀌어지지는

    않는 건지? 참고로 read의 입력변수의 지원데이터형은 char만 있고, byte는

    없는 것 같은디....

    어휴 넘 길었나? 암튼 read함수로 바이너리파일을 억세스가 가능한지가 제가

    젤 궁금한 사항입니다.

    한번더 유효종님, 저에게 관심을 가져 주어서 고맙습니다.

    다들 존 하루