i社区用户: 密码:
搜索:
首页| 资讯| 信息化| 产品| 专题| 创业| 技术天地| 企业中心| 企业论坛| 职场| 周报全文| 商城| 市场
会展| Blog| i社区| 社区联盟| RSS| 电子杂志| 发行| 直播| IT两会| i| 下载| 上网导航| CIO俱乐部

对文本文件中软回车、控制符的灵活处理

杜蕴杰

辽宁省铁岭市烟草专卖局(11200)杜蕴杰 目前流行的汉字排版系统
很多,每种汉字系统在处理文本文件时都有自己的特点,如金山汉字系统生成
的文本文件与标准的文本文件有很大差别,在自动换行处用软回车(8DH)
和软换行符(8AH)作为标志;并在文本部分的前面增加了一个1024字
节长的文件头,在文件头中含有文件结束符1AH;将ASCII码在7FH
和A0H之间的字符作为字体控制符等等。与该汉字系统处理文本文件方法类
似的其它汉字系统,如王码、四通等系统也被广泛使用。这就存在着在DOS
命令行状态下用DIR本领不能查看用这些系统编辑的文本文件,或查看过程
中出现杂乱无章的字符,既影响了DOS命令的使用,又给查找文件带来了不
便。
为此,笔者编制了一个小程序,该程序经编译连接成COM文件后即能使
用。该程序在显示利用上述系统编辑的文本文件时将其中的软回车和控制符等
进行了过滤,使文本文件内容能够正常显示出来。该程序的使用格式为:DT
FILE 1[FILE2],其中FILE 1为要查看的文本文件名,如
果提供了文件名FILE 2,则将转换结果存放到文件FILE 2中,该
程序既可作为一个上述汉字系统的文本文件阅读器,也可作为一个特殊文本文
件的转换器,在实际工作中使用起来很方便。
程序清单:
*****
;DT.ASM
code segment'code'
org 100h
assume cs:code,ds:code,es:code
begin: jmp start
name1: db 13 dup(0)
name2: db 13 dup(0)
flag db 01h
buff db 00h
handle1 dw 0005h
handle2 dw 0006h
start: push cs
pop ds
push cs
pop ds
mov si,005dh
mov di,offset name1
lodsb
cmp al,20h
je exit1
loop0: mov cx,0008h
loop1: stosb
loop10:lodsb
cmp al,20h
jne loop11
loop loop10
jcxz next1
loop11:loop loop1
next1: cmp al,20h
je next2
mov al,2eh
stosb
mov cx,0003h
dec si
loop2: lodsb
cmp al,20h
je next2
stosb
loop loop2
next2: cmp flag,00h
je next3
dec flag
mov si,006dh
mov di,offset name2
lodsb
cmp al,20h
jne loop0
next3: mov ax,3dooh
mov dx,offset name1
int 21h
jnb next4
exit1: jmp exit
next4: mov handle1,ax
cmp name2,00h
je next41
mov ax,3c01h
mov dx,offset name2
int 21h
jc next41
mov handle2,ax
jmp next5
next41:mov handle2,0001h
next5: mov bx,handle1
mov ah,3fh
mov cx,0001h
mov dx,offset buff
int 21h
or ax,ax
jz exit
mov al,buff
cmp al,0dh
je screen
cmp al,0ah
je screen
cmp al,7fh
jb next5
cmp al,0a0h
ja next7
cmp al,8dh
jne next6
mov al,0dh
next6: cmp al,8ah
jne next5
mov al,0ah
next7: cmp al,0ffh
je next5
screen:mov buff,al
mov bx,handle2
mov cx,0001h
mov dx,offset buff
mov ah,40h
int 21h
jmp next5
exit: mov ah,3eh
mov bx,handle1
int 21h
mov bx,handle2
int 21h
mov ax,4c00h
int 21h
code ends
end begin
*****

(计算机世界报 1994年 第22期)



周报全文频道联系方式:010-68130909
【关于我们】  【广告服务】  【周报发行】  【投稿指南】  【投稿声明】  【联系方式】  【法律声明】
  【媒体手册】  【编读往来】  
Copyright© ccw.com.cn,All rights reserved
中国计算机世界出版服务公司版权所有