"Аналог 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, но и всевозможную другую чушь (от строк до
файлов), так что если я в корне неправильно передачу данных
понимаю - направьте в нужную сторону.
Здравствуйте !
...
Должно быть что то типа memcpy (это в C такое есть, в паскале как то
также должно обзываться).
Вообще можно ведь, наверно, просто вместо BufferOut
сунуть указатель на DriveList, и sizeof указать DriveList - а.
Только надо привести указатель на DriveList к нужному типу.
Имхо, тут операция копирования лишняя - можно написать процедуру
отсылки данных, в которую будет передаваться просто указатель на
данные (на байт, например), и их размер.
--
С уважением, Вахтуров Виктор.
Информационный сайт для программистов http://SoftMaker.com.ru
Номер выпуска : 3438
Возраст листа : 308 (дней)
Количество подписчиков : 445
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/198234
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru
-*Информационный канал Subscribe.Ru
Адрес подписки:
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписать: mailto:comp.soft.prog.prog--unsub@subscribe.ru
http://subscribe.ru/ mailto:ask@subscribe.ru