안녕하세요
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');
어떻게 해결 할 수가 없나요..
부탁드립니다.
암튼 그와 같은 현상은...문자열을 처리하는 변수에서 발생하는 현상입니다.
다시 말해...중간에 널문자가 들어가면 널종료를 한다는 그런 얘기져...
따라서 버퍼역할을 할 변수를 선언할때 케릭터배열을 선언해서....
메모리 카피를 하시는게 젤 좋은 방법일거 같습니다..
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');
>
>
> 어떻게 해결 할 수가 없나요..
>
> 부탁드립니다.
>
>
>