"Аналог lstrcpy, только без учета #0 (Delphi)"
Аллоха, All!
В этот знаменательный день 24 июля 2004 г.
пиво ударило мне в голову, и я наскреб:
Собственно имеется две структуры
type DriveStruct = packed record
DriveLet: array [0..3] of char; //A + : + \
DriveType: UINT;
end;
var DriveList: array [0..ord('Z') - ord('A')] of DriveStruct;
и
const MAX = 4096;
type
Buffer = record
ClientCommand: array [0..10] of char;
Size: DWORD;
CRC: DWORD;
DataBuffer: array [0..MAX - 1] of byte;
end;
var BufferOut: Buffer;
Требуется в BufferOut.DataBuffer запихать DriveList
Сейчас попробовал вот так:
lstrcp***@B*****.DataBuffer[0],@DriveList[0]); - естественно ничего
не получилось - lstrcpy до первого #0 копирует, а далее обрезает.
Что посоветуете по этому поводу? Может самому процедурку наляпять, но
я же не знаю как Delphi record хранит, т.е. засунуть в
BufferOut.DataBuffer я еще смогу, а вот вытащить обратно - увы.
PS: Пишется данная фигня для обмена по Socket-ам
send(client, BufferOut, sizeof(BufferOut), 0);
Sleep(10);
PPS: Предполагается по этому принципу передавать вообще любые данные,
не только DriveList, но и всевозможную другую чушь (от строк до
файлов), так что если я в корне неправильно передачу данных
понимаю - направьте в нужную сторону.