急求一个在DOS下的文本编辑器!

apple0897 2004-08-26 09:20:57
各位好:
我是一位新手,现急需做一个文本编辑器,要求能在DOS下实现基本的操作,各位高手能不能指点指点啊?或者沟通一下?很急!谢谢了!
...全文
867 34 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
xyly30 2005-03-24
  • 打赏
  • 举报
回复
我也就是在使用Edit,很方便的,可以任意编辑文本
fgl999 2005-03-24
  • 打赏
  • 举报
回复
文本编辑软件,DOS里不是有一个现成的吗?就是edit啦
liu_jun_ 2005-03-24
  • 打赏
  • 举报
回复
DOS环境运行。用TC开发。
liu_jun_ 2005-03-24
  • 打赏
  • 举报
回复
哈哈,我的一个C语言编译器。其中的IDE模块包括你要求的所有功能。
galanz 2005-03-24
  • 打赏
  • 举报
回复
mark
zzxenjoy 2005-03-24
  • 打赏
  • 举报
回复
mark!
我要把它看懂!
szwpc 2005-03-24
  • 打赏
  • 举报
回复
一朵汗……人家要个编辑器,现在连源代码都有了……
牛人……
hreoghost 2005-03-24
  • 打赏
  • 举报
回复
做个标记!
zhhxx 2004-10-05
  • 打赏
  • 举报
回复
to : dreign(轮回) ( ) 信誉:100 2004-9-13 15:06:20 得分: 0



数年前偶到做过,tc2.0写的,你要传一个给你!



能不能帮我也传一个呀!
学习学习。
zhhtx@163.com

apple0897 2004-10-05
  • 打赏
  • 举报
回复
谢谢大家的帮助!谢谢了!
Ecoresoft 2004-10-05
  • 打赏
  • 举报
回复
edit
o1n 2004-10-05
  • 打赏
  • 举报
回复
mov ax,1 ;
mov bh,07
mov ch,rowpt
mov dh,ch
mov cl,colpt
mov dl,79h
mov ah,6
int 10h
jmp kp
;k:
;cmp rowpt,0
;jz delret
;dec rowpt
;mov bl,rowpt
;xor bh,bh
;mov cl,cntl[bx]
;xor ch,ch
;mov colpt,cl
;add cl,cntl[bx+1]
;mov cntl[bx],cl
;dec bufpt

;mov cx,rowmx
;sub cx,bx
;l: mov dl,cntl[cx]
;xor dh,dh
;dec dx
;mov cntl[cx],dl
;loop l

jmp kp
delret: jmp read_k
up_k:
mov bh,rowpt
cmp bh,0
jz uret
dec rowpt
mov bl,rowpt
xor bh,bh
mov cl,cntl[bx]
cmp cl,colpt
ja k0
mov al,colpt
mov ah,0
sub bufpt,ax
dec bufpt
mov bl,rowpt
xor bh,bh
mov al,cntl[bx]
mov colpt,al
jmp k1
k0: mov cl,cntl[bx]
mov ch,0
sub bufpt,cx
dec bufpt
k1: curs rowpt,colpt
uret: jmp read_k
left_k:
cmp colpt,0 ;光标是否在第0列
jnz k2
cmp rowpt,0 ;光标是否在第0行、第0列
jz lret
dec rowpt ;光标移至上一行的最后一列
mov al,rowpt
lea bx,cntl
xlat cntl ;(al)<-((bx)+(al))
mov colpt,al
jmp k3
k2: dec colpt ;光标左移
k3: dec bufpt ;缓冲区头指针减1
curs rowpt,colpt ;设置光标
lret: jmp read_k
right_k:
mov bx,bufpt
cmp bx,buftl ;缓冲区头指针和尾指针指向同一点
je rret
inc colpt ;光标右移
cmp kbd_buf[bx],0dh ;光标是否到达最后一列
jnz k4
inc rowpt ;光标移至下一行
mov colpt,0 ;光标指向下一行的第一列
k4: inc bufpt ;缓冲区头指针加1
curs rowpt,colpt ;设置光标
rret: jmp read_k
down_k:
mov bl,rowpt
xor bh,bh
cmp bx,rowmx
jz dret
mov dl,rowpt
xor dh,dh
inc rowpt
mov bl,rowpt
xor bh,bh
mov cl,cntl[bx]
xor ch,ch
cmp cl,colpt
ja k5
mov bx,dx
mov al,cntl[bx]
xor ah,ah
add bufpt,ax
mov al,colpt
mov bl,rowpt
xor bh,bh
sub al,cntl[bx]
xor ah,ah
sub bufpt,ax
inc bufpt
mov al,cntl[bx]
mov colpt,al
jmp k6
k5: mov bx,dx
mov cl,cntl[bx]
mov ch,0
add bufpt,cx
inc bufpt
k6: curs rowpt,colpt
dret: jmp read_k
;------------------------------------------------------
dispbf proc near
mov bx,0
mov cx,buftl
curs 0,0
disp: mov al,kbd_buf[bx]
push bx
mov bx,0700
mov ah,0eh ;显示字符 al=字符,bh=页号,bl=前景色
int 10h
pop bx
cmp al,0dh
jnz kk
mov al,0ah
mov ah,0eh
int 10h
kk: inc bx
loop disp
ret
dispbf endp
;------------------------------------------------------
main endp
;------------------------------------------------------
cseg ends
end start
o1n 2004-10-05
  • 打赏
  • 举报
回复
以前用汇编写的:
dseg segment
kbd_buf db 96 dup(' ') ;缓冲区
cntl db 25 dup(0) ;字符计数单元
bufpt dw 0 ;缓冲区头指针
buftl dw 0 ;缓冲区尾指针
colpt db 0 ;光标列指针
rowpt db 0 ;光标行指针
rowmx dw 0 ;最大输入行
dseg ends
;------------------------------------------------------
curs macro row,col ;定义宏指针
mov dh,row
mov dl,col
mov bh,0
mov ah,2
int 10h ;置光标位置
endm
;------------------------------------------------------
cseg segment
main proc far
assume cs:cseg,ds:dseg,es:dseg
start:
push ds
sub ax,ax
push ax
mov ax,dseg
mov ds,ax
mov es,ax

mov buftl,0
mov colpt,0
mov rowpt,0
mov bufpt,0
mov rowmx,0
mov cx,length cntl
mov al,0
lea di,cntl
cld ;方向标志置0 (地址自动加1)
rep stosb ;初始化缓冲区,全部置为0
mov ah,6
mov al,0 ;al=0初始化窗口,al=1下卷行数
mov cx,0 ;ch/cl=左上角行/列号
mov dh,24 ;右上角行号为24
mov dl,79 ;右上角列号为79
mov bh,07 ;下卷功能
int 10h
curs 0,0
read_k:
mov ah,0 ;从键盘读一字符 al=字符码 ah=扫描码
int 16h
cmp al,1bh
jnz arrow
ret
arrow:
cmp ah,48h ;对比上箭头扫描码48h
jz up
cmp ah,4bh ;对比左箭头扫描码4bh
jz left
cmp ah,4dh ;对比右箭头扫描码4dh
jz right
cmp ah,50h ;对比下箭头扫描码50h
jz down
cmp ah,53h
jz del
cmp ah,0eh
jz back
;------------------------------------------------------
inst: jmp ins_k
up: jmp up_k
left: jmp left_k
right: jmp right_k
down: jmp down_k
del: jmp del_k
back: jmp del_k
;------------------------------------------------------
ins_k:
mov bx,bufpt
mov cx,buftl
cmp bx,cx
je km
lea di,kbd_buf
add di,cx
mov si,di
dec si
sub cx,bx
std ;方向标志置1 (地址自动减1)
rep movsb ;按字节传送 (di<-si)
km:
mov kbd_buf[bx],al
inc bufpt
inc buftl
cmp al,0dh
jnz kn
lea si,cntl
add si,rowmx
inc si
mov di,si
inc di
mov cx,rowmx
sub cl,rowpt
std ;方向标志置1 (地址自动减1)
rep movsb ;按字节传送 (di<-si)

mov bl,rowpt
xor bh,bh
mov cl,colpt
mov ch,cntl[bx]
sub ch,colpt
mov cntl[bx],cl
mov cntl[bx+1],ch

mov ax,rowmx
mov bh,07 ;卷入行属性
mov ch,rowpt ;左上角行号为当前光标行
mov dh,24 ;右上角行号为24行
mov cl,0 ;左上角列号为0
mov dl,79 ;右上角列号为79
mov ah,6 ;上卷功能
int 10h

inc rowpt
inc rowmx
mov colpt,0
jmp short kp
kn:
mov bl,rowpt
xor bh,bh
inc cntl[bx]
inc colpt
kp:
call dispbf
curs rowpt,colpt
jmp read_k
del_k:
mov bx,bufpt
mov cx,buftl
cmp colpt,0
;jz k
lea di,kbd_buf ;缓冲区前移
add di,bx
mov si,di
dec di
sub cx,bx
cld ;方向标志置0 (地址自动加1)
rep movsb
dec bufpt
dec buftl
dec cntl[bx]
dec colpt

  • 打赏
  • 举报
回复
文本编辑器的源程序,能否给俺一个
xteaj@126.com
xteaj@sohu.com
谢谢!
vitamines 2004-10-05
  • 打赏
  • 举报
回复
cced
dreign 2004-09-21
  • 打赏
  • 举报
回复
今天才看到,传了!
apple0897 2004-09-19
  • 打赏
  • 举报
回复
to: dreign(轮回)

你有那个源程序吗?谢谢你传一个给我哟!学习学习!谢谢哟!
seilfer2000 2004-09-13
  • 打赏
  • 举报
回复
去找本C语言的教程,一般到最后都会有个类似的文本编辑器的编程:)
getter 2004-09-13
  • 打赏
  • 举报
回复
-.-
xiaolvlong 2004-09-13
  • 打赏
  • 举报
回复
我最近由于应付作业,做了一个。最好咱们不是一个学校的。。。
加载更多回复(14)

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧