Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

За 2004-07-24

"Аналог 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, но и всевозможную другую чушь (от строк до
файлов), так что если я в корне неправильно передачу данных
понимаю - направьте в нужную сторону.

   Томилов Александр 2004-07-24 14:04:16 (#197493)

Re: Поиск пути [Delphi 6] [Win98]

Hi!

> Вообще все зависит от свойств стен :)
>
>
> Вообще если задачу нужно выполнить точно, то можно воспользоваться
> волновым алгоритмом:
>
> Строим двумерный массив в каждом элементе - направление, и расстояние
> по этому направлению до конечного пункта.
>
> Затем пробегаем массив. Можно оптимизировать добавив еще один член
> в элемент массива - булевую переменную (нужно мерить или нет). Для
> каждого элемента смотрим вокруг элемент с минимальным расстоянием, и
> на него указываем направление. После прохода когда не изменился ни
> один элемент - карта готова. Берем стартовую точку и по направлениям
> рисуем путь. Значение расстояния если нужно, оно есть :)
>
> Способ требует много времени, поэтому если конечная точка неподвижна,
> карту можно не перестраивать.

Ок. Спасибо, проблему решил!
Пока!
С уважением Lakmus
http://www.nvkz.kuzbass.net/lakmus

Номер выпуска : 3435
Возраст листа : 306 (дней)
Количество подписчиков : 444
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/197391
Получить правила : 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

   2004-07-24 09:24:59 (#197391)