![]() |
eXeL@B —› Вопросы новичков —› Цикл по структуре |
Посл.ответ | Сообщение |
|
Создано: 15 августа 2012 19:32 · Поправил: opcodes · Личное сообщение · #1 Доброе время дня и ночи.. Вопрос следующий назрел.. вот к примеру есть у меня структура, которая содержит N-е кол-во полей. т.е ------------------------------- name struct полеРаз тип ? полеДва тип ? и т.д name ends -------------------------------- Как мне в цикле пройтись по всем значениям в этой структуре(чтобы не обращаться к каждому элементу напрямую по названию поля т.к чтобы мне не пришлось много букав писать)? Существуют ли какие индексы? макросы? я незнаю даже что еще можно придумать.. Компилятор Masm. ![]() |
|
Создано: 15 августа 2012 19:52 · Поправил: OnLyOnE · Личное сообщение · #2 размерность поля важно к примеру если размер поля dword == 4 байта Code:
Это на скорую руку .. цикл переписывания по из структуры в буфер dword-ами. А вообще, что ты подразумеваешь под "в цикле пройтись"? Конкретнее, что надо сделать? И получишь конкретный ответ.. ![]() ----- aLL rIGHTS rEVERSED! ![]() |
|
Создано: 15 августа 2012 21:02 · Поправил: opcodes · Личное сообщение · #3 |
|
Создано: 15 августа 2012 21:32 · Личное сообщение · #4 Правильно заданный вопрос содержит в себе половину ответа. Проспись, и почитай справку к масму, такое спокойно реализуемо не через struct, а через скрипт. ![]() |
|
Создано: 16 августа 2012 00:21 · Поправил: Rockphorr · Личное сообщение · #5 |
|
Создано: 16 августа 2012 01:05 · Поправил: plutos · Личное сообщение · #6 opcodes знаете? пока я расписывал сюда целую петицию. я в какойто момент усомнился, в том чего именно я хочу. и удалил все нахрин. думаю это из за плохого сна, в последнее время. Ну да ладно, милые друзья, не печальтесь. завтра я с новыми силами попробую объяснить все заного(maybe). но пока можете попробовать себя в роли телепатов. я только за. благодарю за внимание. а ниже остался малый отрывок того, что я хотел сказать, если сможете, то попробуйте меня понять по нему. баста! Ты, друг, все же пойми, что тут ТЕХНИЧЕСКИЙ ФОРУМ, а не форум клоунов. Читать все твои "забавные" изложения и описания твоего внутреннего мира и личной жизни ни у кого нет ни времени, ни желания. Имеешь вопрос - попробуй хоть что-то найти сам. А не можешь найти - обдумай, сформулируй грамотно и задай. (Кстати, порой в процессе обдумывания вдруг приходит решение и вопрос отпадает...) А все свои кривляния можешь просто "удалил все нахрин"! PS Странно, ты хоть в школу ходил? Или закончил экстерном? Типа "home schooling"? Во втором классе учат, что частица "не" пишется ОТДЕЛЬНО от глагола, а слово "чесТно" пишется с буквой "Т", поскольку это наречие, образованое от существительного "честь". Про знаки препинания (запятые там всякие) я уже просто молчу... Это уже будет как высшая математика. ----- Give me a HANDLE and I will move the Earth. ![]() |
|
Создано: 16 августа 2012 04:24 · Поправил: opcodes · Личное сообщение · #7 Vovan666, непонял чесно говоря какой скрипт. там этих пунктов сотни в хелпе. Rockphor, нет, не то ![]() plutos, ok. Вроде бы вопрос такой банально легкий.. легче этого вопроса я тут не задавал наверно. Где тут не понятные строки? Name struct поле1 тип ? поле2 тип ? поле3 тип ? Name ends 1. узнать число полей в структуре(програмно т.е не считать самому чтобы) 2. создать цикл, с кол-вом итераций равным кол-ву полей. 3. lea eax, [name_s].поле1 - т.е поместить начало адреса, где начинается значение. 4. mov ebx, type [name_s].поле1 - узнать размер поля из структуры. 5. вызвать WriteConsoleA, hwnd, eax, ebx, NULL, NULL 6. profit. И чтобы он мне вывел ЗНАЧЕНИЕ каждого поля структуры в цикле. Вот конкретное Т3. В данном случае меня интерисует первый пункт, как программно узнать сколько существует полей в структуре?(т.е не считая самому их) ![]() |
|
Создано: 16 августа 2012 10:35 · Поправил: Rockphorr · Личное сообщение · #8 opcodes нет в масме таких высокоуровневых рюшечек - городи что хошь сам структура это просто условное разбиение последовательности байт на группы - в коде никаких структур нету - есть только байты слова двойные слова и тд ближайший путь реализовать такую кухню - через указатели с терминатором в конце ![]() |
|
Создано: 16 августа 2012 10:55 · Поправил: opcodes · Личное сообщение · #9 короче я понял посоны.. это полная ![]() Спасибо Rockphorr, и Всем остальным. Будем копать дальше ![]() P.S Plutos, ходил. и щас хожу ![]() ты то уже ![]() ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Цикл по структуре |
Эта тема закрыта. Ответы больше не принимаются. |