关于向文件中写入退格键的问题!
时间:2011-06-10
来源:互联网
大侠们不用太自己看代码,我的问题 说出来很简单!就是我的程序是这样的,你在屏幕上输入一个字符串,然后把它写到文件中其中CTRL+Z键结束程序,我的问题是对于输入控制字符的处理!当输入回车键的话,我们立马在屏幕上显示一个换行的效果,同样按退格键也是显示显示回车的效果。对于退格键的话,在屏幕上可以先退一格(有字符的话),然后输出空格擦除,然后再回退一格就可以达到回车的效果了,但是要在文件中达到相同的效果就很困难了。
比如先输入一个a的话,然后回车,按理说文件中应该什么都没有,但是文件中a字符的asc码它是擦不掉啊,所以退格键如何在文件中实现,大侠们给点意见哈!大侠不用写出代码,只要给个大概的思路就行或者简要的代码就ok了
;
EOF = 1AH
DATA SEGMENT
FNAME DB '\TEST.TXT',0
ERRMESS1 DB 'CAN NOT CREATE FILE',07H,'$'
ERRMESS2 DB 'WRITING ERROR',07H,'$'
BUFFER DB ?,?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET FNAME
MOV CX,0
MOV AH,3CH
INT 21H
JNC CREA_OK ;CF = 0 表示成功
MOV DX,OFFSET ERRMESS1
CALL DISPMESS
JMP OVER
CREA_OK:MOV BX,AX
CONT: CALL GETCHAR
PUSH AX
CALL WRITECH
POP AX
JC WERROR ;出错,转移
CMP AL,EOF
JNE CONT
JMP CLOSEF
WERROR: MOV DX,OFFSET ERRMESS2
CALL DISPMESS
CLOSEF: MOV AH,3EH
INT 21H
OVER: MOV AX,4C00H
INT 21H
WRITECH PROC
CMP AL,0DH
JZ WRITECH1 ;换行的处理
; CMP AL,08H
; JMP WRITECH2 ;退格的处理
MOV BUFFER,AL
MOV DX,OFFSET BUFFER
MOV CX,1
MOV AH,40H
INT 21H
JMP OK
WRITECH1:
MOV DL,0AH
MOV AH,2
INT 21H ;显示屏上显示换行
MOV BUFFER,0DH ;文件写入换行
MOV BUFFER + 1,0AH
MOV DX,OFFSET BUFFER
MOV CX,2
MOV AH,40H
INT 21H
JMP OK
;WRITECH2:
OK: RET
WRITECH ENDP
GETCHAR PROC
MOV AH,1
INT 21H
RET
GETCHAR ENDP
DISPMESS PROC
MOV AH,9
INT 21H
RET
DISPMESS ENDP
CODE ENDS
END START
比如先输入一个a的话,然后回车,按理说文件中应该什么都没有,但是文件中a字符的asc码它是擦不掉啊,所以退格键如何在文件中实现,大侠们给点意见哈!大侠不用写出代码,只要给个大概的思路就行或者简要的代码就ok了
;
EOF = 1AH
DATA SEGMENT
FNAME DB '\TEST.TXT',0
ERRMESS1 DB 'CAN NOT CREATE FILE',07H,'$'
ERRMESS2 DB 'WRITING ERROR',07H,'$'
BUFFER DB ?,?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET FNAME
MOV CX,0
MOV AH,3CH
INT 21H
JNC CREA_OK ;CF = 0 表示成功
MOV DX,OFFSET ERRMESS1
CALL DISPMESS
JMP OVER
CREA_OK:MOV BX,AX
CONT: CALL GETCHAR
PUSH AX
CALL WRITECH
POP AX
JC WERROR ;出错,转移
CMP AL,EOF
JNE CONT
JMP CLOSEF
WERROR: MOV DX,OFFSET ERRMESS2
CALL DISPMESS
CLOSEF: MOV AH,3EH
INT 21H
OVER: MOV AX,4C00H
INT 21H
WRITECH PROC
CMP AL,0DH
JZ WRITECH1 ;换行的处理
; CMP AL,08H
; JMP WRITECH2 ;退格的处理
MOV BUFFER,AL
MOV DX,OFFSET BUFFER
MOV CX,1
MOV AH,40H
INT 21H
JMP OK
WRITECH1:
MOV DL,0AH
MOV AH,2
INT 21H ;显示屏上显示换行
MOV BUFFER,0DH ;文件写入换行
MOV BUFFER + 1,0AH
MOV DX,OFFSET BUFFER
MOV CX,2
MOV AH,40H
INT 21H
JMP OK
;WRITECH2:
OK: RET
WRITECH ENDP
GETCHAR PROC
MOV AH,1
INT 21H
RET
GETCHAR ENDP
DISPMESS PROC
MOV AH,9
INT 21H
RET
DISPMESS ENDP
CODE ENDS
END START
作者: aa279686030 发布时间: 2011-06-10
seek
作者: iambic 发布时间: 2011-06-11
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28