![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перекинуть данные из переменной в структуру (record)
Ingwar © (2006-10-26 12:47:00)Задали такую задачку: Есть переменная типа string и есть структура(record).
Нужно перекинуть данные из переменной в структуру. Можно перекинуть по байтам или чем-то подобным, но возможно есть какая-то функции для таких операций. Подскажите Мастера! Спасибо.
Ketmar (2006-10-26 16:21:00) [21]мда... "гляжу в книгу, вижу фигу" (ц)
[4], [9].
плюс: ReadBuffer(buf...)??? "здравствуй, мир на четвереньках" (ц)...
Ingwar (2006-10-26 16:20:00) [22]Забыл одну строчку в коде
len := AData.Size;
Anatoly Podgoretsky (2006-10-26 16:20:00) [23]А я знаю, но тебе нескажу, поскольку это секретно.
Ingwar (2006-10-26 16:19:00) [24]ТО Ketmar: Понял
Ошибка:
Project D:\Test.exe faulted with message: 'access violation at 0x4f4b5320: read of address 0xf4fb5320'. Process Stopped. Use Step of Run to continue.
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
buf: string;
len : int64;
begin
AData.ReadBuffer(buf, len);
CopyMemory(@Struct, PChar(buf), 401); //тут выскакивает ошибка
CopyMemory(@Stroka, @buf[402], (len-401));
end;
Struct - структура описаная через record
Stroka : string;
Сергей М. (2006-10-26 16:14:00) [25]
> Похоже препод хочет деньги на мне заработать
Ну это, согласись, есть твоя личная половая драма)
> Ему нужна прога для каких-то соревнований
Остерегайся - он может оказаться извращенцем)
> Суть такова, что по UDP получаются пакетики в переменную
> типа стринг
Эт чего, ТЗ такое что ли ?!
> Это делается из-за того, что начало пакета фиксированое,
> а вот дальнейшая часть может меняться =( Поэтому не могу
> сразу считать в структуру.
>
> ЧТо-то в этом роде я понял из разговора с преподом
Пока ты не "разберешься" с "преподом", ни ты его ни он тебя не удовлетворит)
На сей момент из твоих объяснений все изложенное выглядит как галиматьища неесусветная
Ketmar (2006-10-26 16:10:00) [26]>[21] Ingwar(c) 26-Oct-2006, 16:07
>что по UDP получаются пакетики в переменную типа стринг, а
>потом надо перекинуть в структуру и переменную стринг...
>Это делается из-за того, что начало пакета фиксированое, а
>вот дальнейшая часть может меняться =( Поэтому не могу
>сразу считать в структуру.
не того "препод" выбрал, ой, не того. его ж потом претензиями замучают.
зыж не так это пишется. НЕ ТАК! что за манера у людей -- спрашивать не "помогите с направлением для задачи XXX", а "надо YYY". причём это YYY -- чистые лсд-шные измышлизмы автора, не имеющие отношения к самой задаче...
Reindeer Moss Eater (2006-10-26 16:10:00) [27]Да препод реально подымется получив эту процедуру копирования.
не иначе хочет новую тачку купить.
Ingwar (2006-10-26 16:07:00) [28]Похоже препод хочет деньги на мне заработать =( Ему нужна прога для каких-то соревнований по гандболу... Суть такова, что по UDP получаются пакетики в переменную типа стринг, а потом надо перекинуть в структуру и переменную стринг...
Это делается из-за того, что начало пакета фиксированое, а вот дальнейшая часть может меняться =( Поэтому не могу сразу считать в структуру.
ЧТо-то в этом роде я понял из разговора с преподом
Ketmar (2006-10-26 16:05:00) [29]>[19] Ingwar(c) 26-Oct-2006, 16:02
>При попытке скопировать структуру вылетает по ошибке =(
ошибка в 17-й строке. или в DNA.
Ingwar (2006-10-26 16:02:00) [30]При попытке скопировать структуру вылетает по ошибке =(
Сергей М. (2006-10-26 13:32:00) [31]
> Это у препода надо спросить
У вас там что, спецбригада по запутыванию вражеской разведки ?)
Anatoly Podgoretsky (2006-10-26 13:32:00) [32]Ну так чтобы и дальне не тормозить, просто не заходи в ветку или давай конкретные данные.
Кстати Сусанин завел поляков не потому что он этого хотел, а потому что и сам не знал дороги :-)
Anatoly Podgoretsky (2006-10-26 13:26:00) [33]Сусанин?
Веду, но не скажу куда.
Сообственно у нас нет проблем, у нас все копируется.
Ingwar (2006-10-26 13:25:00) [34]Да у меня D7. Это у препода надо спросить... Как раз счаз уезжаю в институт...
Ingwar (2006-10-26 13:21:00) [35]Ответ на [11]: Я уже сам понял, что стормозил с таким вопросом... Просто вначале спросил и отослал, а потом понял, что тормознул =)
Сергей М. (2006-10-26 13:20:00) [36]
> у меня нет никакой инфы про CopyMemory
Есть.
Введи модель поиска вручную.
Если у тебя D7, то подобный "глюк" имеет место быть.
> Слишком длинная структура
Ты лучше объясни, каким образом структурированные данные у тебя оказались в буфере строковой переменной ...
Ingwar (2006-10-26 13:16:00) [37]Кстати, по F1 у меня нет никакой инфы про CopyMemory... Странно.
ТО Anatoly Podgoretsky: Слишком длинная структура, а скопировать мне счаз её неоткуда... Но по памяти, там что связанное с соревнованиями по гандболу... Составы команд, названия команд, имена судей, время матча, кто забил и т.д.
Сергей М. (2006-10-26 13:13:00) [38]
> Думаешь наоборот есть разница?
Думаю что автору следует самому об этом подумать)
Anatoly Podgoretsky (2006-10-26 13:11:00) [39]
> Нет, структура на 600 байт. В основном разнообразные массивы
> char, есть так же типы byte.
Слова, слова,
Сестра имя, имя скажи
Anatoly Podgoretsky (2006-10-26 13:10:00) [40]
> Если, скажем,
>
> Length(MyString) = 4
> SizeOf(MyRecord) = 3
>
> куда, спрашивается, девать разницу ?)
Думаешь наоборот есть разница?