能力值:
( LV2,RANK:10 )
|
-
-
2 楼
invoke MapViewOfFile,eax,FILE_MAP_READ,0,0,0
.if eax
mov @lpMemory,eax
mov PointBegin,eax ;开始位置
mov esi,eax
cld
mov ebx,eax
add ebx,@dwFileSize ;ebx 是终止的地址
.while esi<ebx
lodsb
.if al==0dh ;如果是回车符
mov al,byte ptr [esi] ;再取下一个是否是换行符
.if al==0ah
mov eax,esi
dec eax
sub eax,PointBegin ;减去 开始位置后就是要 copy 的长度
invoke RtlMoveMemory,addr szBuf,PointBegin,eax ;拷到 szBuf
inc esi ;加1从 换行符的下一个开始
mov PointBegin,esi ;新的开始位置
.endif
.endif
.endw
.endif
注意,这样循环找,结束后szBuf 里只保留了最后一次找到的内容
|
|
|