Q&A

  • Null문자 이후 읽기, 통신등 할 수가 없습니다.
안녕하세요



Null문자 들어가면 그 이후로 읽을 수 가 없습니다.

가령



AssignFile('c:Test.txt'); RewriteFile(F);

writeln(F, 'abcdefg' + #0 + 'hihg');

CloseFile(F);

에서 임의로 화일을 생성하고 ListBox1로 화일을 읽어오면

'abcdefg'까지만 보입니다.



문제는 위와같은 내용을 생성(물리적화일, 메모리상)하고 나서

TCP IP소켓을 이용하여 보내면 'abcdefg' 만 송신됩니다.

..

ListBox1.Items.LoadFromFile('c:Test.txt');





어떻게 해결 할 수가 없나요..



부탁드립니다.







1  COMMENTS
  • Profile
    바다를향해 2001.12.18 01:51
    답변이 될라나 몰겠네여...

    암튼 그와 같은 현상은...문자열을 처리하는 변수에서 발생하는 현상입니다.

    다시 말해...중간에 널문자가 들어가면 널종료를 한다는 그런 얘기져...

    따라서 버퍼역할을 할 변수를 선언할때 케릭터배열을 선언해서....

    메모리 카피를 하시는게 젤 좋은 방법일거 같습니다..

    type

    PBuffer = ^TBuffer;

    TBuffer = array [0..DATALENGTH] of Char;

    var

    Mybuffer: PBuffer;



    요런식으로 버퍼를 만들어서리

    Move나 StrCopy 혹은 CopyMemory 등의 함수를 써서

    전송할 패킷에 집어 넣은다음...보내시는것이...좋겠쪄...

    물론 전송할 패킷도 케릭터배열로 되어 있어야 겠쪄...



    암튼 성공 하시길....





    이윤석 wrote:

    > 안녕하세요

    >

    > Null문자 들어가면 그 이후로 읽을 수 가 없습니다.

    > 가령

    >

    > AssignFile('c:Test.txt'); RewriteFile(F);

    > writeln(F, 'abcdefg' + #0 + 'hihg');

    > CloseFile(F);

    > 에서 임의로 화일을 생성하고 ListBox1로 화일을 읽어오면

    > 'abcdefg'까지만 보입니다.

    >

    > 문제는 위와같은 내용을 생성(물리적화일, 메모리상)하고 나서

    > TCP IP소켓을 이용하여 보내면 'abcdefg' 만 송신됩니다.

    > ..

    > ListBox1.Items.LoadFromFile('c:Test.txt');

    >

    >

    > 어떻게 해결 할 수가 없나요..

    >

    > 부탁드립니다.

    >

    >

    >