![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 13.09.2010
Сообщений: 65
|
![]()
Конструкция для сбора списка файлов в данной директории и последующей записи этих данных из переменной string в текстовый файл
Но переменная имеет обьявленные параметры string dd 260 dup (0) и поэтому информацию больше 260 байт туда не запишешь То есть если список файлов большой то функция выдаст ошибку Можно конечно увеличить не 260 а например 26000 но это хоть и увеличивает память переменной но по большому счёту не спасает (не говоря уже о том что пропорционально увеличивается размер экзешника) Я не давно пересел на ассемблер раньше работал на языке Autoit там таких проблем нет при обьявлении переменной туда можно загнать любое количество данных в ассемблере видимо по другому я конечно пытаюсь разобратся но надеюсь может быть кто нибудь подскажет как резервируется память для переменной Чтобы туда без проблем влезла вся информация Код:
Последний раз редактировалось assch; 22.12.2010 в 00:41. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
может тогда стоит выделять динамически память?
кстати, в вашем случае нужно ли все хранить в памяти? может стоит скидывать в файл постепенно? (и вообще для не инициализированных переменных есть .bss секция) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 13.09.2010
Сообщений: 65
|
![]()
Честно говоря без понятия
На языке Autoit это делается без проблем Скажем сбор информации всех файлов на диске С занимает около 10 секунд программа загоняет список файлов в переменую и потом записывает эти данные в текстовый файл получается около 30000 строк и размер файла около 3 мегабайт Я специально пробую написать это на ассемблере с надеждой что вместо 10 секунд получится быстрее (хотя может быть я и ошибаюсь) но как говорится надежда умирает последней А дописывать информацию постепенно я думаю на оборот увеличит время Последний раз редактировалось assch; 22.12.2010 в 00:55. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 13.09.2010
Сообщений: 65
|
![]()
Вроде бы как то надо работать с функцией GlobalAlloc
Но вот как её приделать именно к своему примеру пока к сожелению не получается |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Память для Thin client Hp t5545 | vr83 | Компьютерное железо | 0 | 11.10.2010 18:01 |
Память для динамической строки | Tirendus | Общие вопросы C/C++ | 11 | 29.04.2010 15:40 |
Память для трёхмерного массива и другие задачи | Bloodykeeper | Общие вопросы C/C++ | 10 | 11.01.2010 18:12 |
Имя переменной как переменная. Как получить доступ к такой переменной? | Denni | Microsoft Office Access | 8 | 02.04.2009 10:06 |
как выделить память для указателя (pointer), и сюда же, записать : integer, потом через 4 байта, boolean? | bigxman | Общие вопросы Delphi | 1 | 02.02.2009 21:17 |