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

 WASM Phorum —› WASM.ASSEMBLER —› Обнуление строки

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


Дата: Янв 2, 2004 21:54:07

Выделяю буфер под строку как:
.data
  buff db 100 dup(0)

Потом использую ее например так:
  invoke lstrcpy,ADDR buff,ADDR szSomeStr

При повторном обращении к буферу в нем все еще хранится старая строка. Как ее оттуда убрать?


Дата: Янв 2, 2004 21:56:20

mov BYTE PTR [buff],0


Дата: Янв 2, 2004 22:47:20

invoke lstrcpy
обнуляет начальное значение строки и записывает собой


Дата: Янв 2, 2004 22:57:54

Можно поступить ещё более радикально:

invoke RtlZeroMemory, lpszBuff, length :-)


Дата: Янв 2, 2004 23:23:56

Gloomy
А зачем убирать? Пишите новую поверх старой. Это же асм :)


Дата: Янв 3, 2004 01:31:41 · Поправил: Gloomy

Спасибо всем за ответы!
Придумал более подходящий в моем случае способ - копировать новую строку поверх старой и забивать ее нулем ;)


Дата: Янв 3, 2004 03:19:03

Gloomy
Зачем ее забывать нулями? При копировании новой строки в ее конце будет записан нуль-терминатор, поэтому остатки старой строки тебе мешать не будут.


Дата: Янв 4, 2004 14:40:53

mov edi,offset buff  ; mov esi,offset buff ; или так
mov ecx,length_buff
xor eax,eax
rep stosb


Дата: Янв 4, 2004 20:05:42

KiNDeR

Приветствую, О Дитя Дзена! Где пропадал?


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