· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.A&O —› Работа с текстом.

Посл.отвђт Сообщенiе


Дата: Мар 15, 2004 21:11:30

Здравствуйте!
Вопрос вот такой: каким образом можно добавить к проекту на MASM (если кто-то подскажет как это в NASM - буду также очень! благодарен) текст большого объёма, чтобы работать с ним, как с обычной большой строкой. (т.е. не обрабатывать каждую строчку и не писать 13,10, а загружать как бы неформатированным из ресурсов или из DATA). Более точно:

исходник:
-----------------------------------------------------
Эта строка ничего не подразумевает и на
этой строчке тоже никакой инфы нет ;)
-----------------------------------------------------
выходной вариант:
-----------------------------------------------------
string db "Эта строка ничего не подразумевает и на", 13,10
db "этой строчке тоже никакой инфы нет ;)",0

Знаю, что в FASM есть такая могучая директива file, может быть и в MASM (NASM, о боги) тоже что-то такое есть? Или может быть можно как-то работать с ресурсами?

Заранее спасибо!
Исходники таких (или подобных) парсеров только привествуются! ;-)
1990

PS. А где взять bin2db - весь масм перерыл, но ничего не нашёл (не по теме)?


Дата: Мар 15, 2004 21:25:29

Ты опять не хочешь ничего искать по форуму, а я точно знаю что пример работы с текстовым файлом из ресурсов под masm by Four-F в форуме имеется..


Дата: Мар 15, 2004 21:41:32

Я про это неделю назад спрашивал. у мена в MASM8 нашелся.

1872521514__BINTODB.EXE


Дата: Мар 15, 2004 21:43:12


Дата: Мар 15, 2004 23:11:06

PavPS
Большое спасибо за программку! А когда получаешь такой массив (как это правильно?), то нужно писать
string db 104,104,30,50
db 105,103,20,10
или
string1 db 104,104,30,50
string1 db 105,103,20,10
Прошу прощения за простейший вопрос.

Asterix
Большое спасибо! Я я видел эту тему давно, но у меня было ощущение, что там про "музыкальные" какие-то разработки ;-) Буду в следующий раз искать...


Дата: Мар 16, 2004 00:03:27

Вообще эти описания равноценны, но смотря для чего Ты это будешь использовать (компилятору то все равно - это по-просту для Тебя, чтоб с адресами и смещениями в структуре не мучился). Ведь Ты не сможешь обратиться напрямую к байтам db 105,103,20,10 - Тебе придется писать
LenOfString equ 4
Lea Eax,string
Add Eax,LenOfString
Push eax
..
..
call

А вот если передаешь буффер какой-то PROC, где тебе известно примерно следующее о структуре:
MyStr STRUC
type db ?
;куча разной inf-ы длинной 20
db 20 dup(?)
ImportantInfo DD ?
;конец структуры длинной 44
db 44 dup(?)
MyStr ENDS
Var1 MyStr <?>
, то удобно и выгодно
Push offset Var1
Call ???Proc
ну и спокойно обращаешся к ImportantInfo

итог. Выгодно тем, что о ненужной inf-e писать лишния названия незачем.
ЗЫ. Чувствую объяснил на детсадовском уровне, Sorry.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.073