Win32 汇编,如何向指定文件写入内容

Win32 汇编,如何向指定文件写入内容,第1张

要写入的文件内容放到1txt中,向2txt中写入1txt的内容,代码:

DATA SEGMENT

FILE1 DB '1TXT',0

FILE2 DB '2TXT',0

INBUF DB 256 DUP()

HANDLE1 DW

HANDLE2 DW

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV AH,3DH

MOV AL,0

LEA DX,FILE1

INT 21H

MOV HANDLE1,AX

mov ah,3ch

mov cx,00

lea dx,FILE2

int 21h

mov HANDLE2,ax

black: MOV AH,3FH

MOV BX,HANDLE1

MOV CX,1

LEA DX,INBUF

INT 21H

cmp ax,0

je out1

mov ah,40h

mov bx,HANDLE2

mov cx,1

lea dx,INBUF

int 21h

jmp black

out1: MOV AH,4CH

INT 21H

CODE ENDS

END START

大量不需要的字符,这段不是数字开头吧?

用emeditor,ctrl+f

搜索&IA01&IA20=\d+

搜索的时候勾选使用正则表达式,右边的全部选择改成全部提取,并且提取选项里改成仅显示匹配的字符。

点全部提取会自动生成一个文件,文件里显示的就是提取的内容。

首先,打开一个tmptxt的文件保存结果文件

FILE out=fopen("tmptxt","w");

FILE in=fopen("原文件txt","r");

循环采用fgets从in中读入字符串,fgets可以指定读入的最大字符串长度,因此可以一部分一部分地读,处理到文件结束为止

然后,因为你是要对完整的单词进行处理,所以fgets完之后再继续fgetc一个一个的字母,直到读到一个','再结束,这样就可以在内存中读到一部分的完整单词

char str[1000]; //开个1000长度的字符串数组

int len;

while (fgets(str,900,in)!=NULL) //读900个,留点空间后面可以读入直完整单词

{

len=strlen(str);

if (str[len-1]=='\n')

{

str[len-1]='\0'; //fgets还有个特点,碰到回车会结束,所以如果碰到回车,就会把结尾的回车也读进去,要去掉

len--;

}

while (str[len-1]!=',') //把最后的单词读完整

{

str[len]=fgetc(in);

if (str[len]==EOF) break;

len++;

}

str[len]='\0';

//接下来对str中的单词进行处理啦,这里自己写,逐个地读,判断是不是要删除的那个,不是的话,就写入out文件中

}

//最后,删除原文件,把tmptxt代替原文件

fclose(in);

fclose(out);

remove("原文件txt");

rename("tmptxt","原文件txt");

以上就是关于Win32 汇编,如何向指定文件写入内容全部的内容,包括:Win32 汇编,如何向指定文件写入内容、命令行 提取文本中指定字符后的所有内容写入另一文件、怎么用c语言在a.txt文件中获取一指定字符串,如(china),然后将其写入到已有的的b.txt文件中去等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10100300.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存