首页 文字编辑器c 代码

文字编辑器c 代码

举报
开通vip

文字编辑器c 代码文字编辑器c 代码 文字编辑器C++代码 仅供参考 部分代码可能调试错误,原因自己看看吧,应该知道的,缺少部分头文件编码 #define Esc 27 #define Enter 13 #define LeftArrow 75 #define RightArrow 77 #define DnArrow 80 #define UpArrow 72 #define ON 1 #define OFF 0 #define FALSE 0 #define TRUE 1 #include #in...

文字编辑器c  代码
文字编辑器c 代码 文字编辑器C++代码 仅供参考 部分代码可能调试错误,原因自己看看吧,应该知道的,缺少部分头文件编码 #define Esc 27 #define Enter 13 #define LeftArrow 75 #define RightArrow 77 #define DnArrow 80 #define UpArrow 72 #define ON 1 #define OFF 0 #define FALSE 0 #define TRUE 1 #include #include #include #include #include #include #include #include #include int p,qjs=15,bjs=3,gdq=14,gdb=4,y; char menu[11][11],sub_menu[31][11]; char data[601][80],unit[80],filename[41]; int key1,i,y,kh1,kl1,end; int insert,x,y,xstart,ystart,flag,flage,flagf; int MaxLines,page_line,xcount,st,mst,mx,my,mfrow,med; int ed,qjys,bjys,pmqj,pmbj,ckqj,ckbj,zcd_num,zp,cdqj,cdbj,tmp1,tmp2; int zfgbqj,zfgbbj,lines,frow,Max_length,end; char fas[41],tf[41]; char *ks,*kw,memy1,memy,memy2,kqj,kbj; union inkey { unsigned char ch[2]; int ii; }cc; int cur_x,cur_y, str_ith,ins,input_char; char MainDir[40]; #include "function.c" #include "myhzk16.c" #include "myline.c" #include "myucdos.c" void file_save(void); void main(int pn,char *ps[]) { void display_one(int x,int y,char *s,int on2off); void menu_event(void); void read_parameter(void); void print_hh(void); void fuzhi(void); void get_new_filename(void); void get_exist_filename(void); void edit_file(void); void RESET_CURSOR(void); void DEL_CURSOR(void); void display_kj(void); void edit_key_event(void); if (!CheckUCDOS()) { clrscr(); printf("\n ucdos not run! please run ucdos 7.0 first!"); exit(0); } Max_length=11; cdqj=15; qjys=15; bjys=1; cdbj=YELLOW; p=1; zp=1; zcd_num=zp; tmp1=p; tmp2=zp; ckbj=3; pmbj=1; pmqj=15; qjys=15; bjys=1; cdqj=RED; cdbj=YELLOW; CLSXY(0,1,1,80,25); read_parameter(); if (pn>1) strcpy(filename,ps[1]); fuzhi(); /*菜单付值*/ display_kj(); if (filename[0]==0) { strcpy(filename,"noname"); file_save(); } display_one(4+13*(p-1),3,menu[p],OFF); edit_file(); while(1) { menu_event(); /*显示菜单*/ } } /*编辑*/ void edit_file(void) { void display_unit(int cursor); int load_file(char d[][80]); void page_up(void); void display_cursor(int cursor); void page_down(void); void cursor_left(void); void display_page(void); void cursor_up(void); void receive_data(int code); void cursor_right(void); void cursor_down(void); void cursor_home(void); void cursor_end(void); void cursor_del(void); void cursor_backspace(void); void cursor_enter(void); void del_flag(void); void file_save(void); void file_save_as(void); void define_ks(void); void define_kw(void); void del_ks_kw(void); void del_line(void); void del_block(void); void copy_block(void); void edit_help(void); void write_ks_kw(void); void display_ctrl(char *s); lines=load_file(data); if(!flage) { st=1; ed=page_line; insert=ON; med=ed; display_cursor(OFF); frow=1; x=1; y=1; flage++; } else { st=mst; insert=ON; display_cursor(OFF); frow=mfrow; x=mx; y=my; } if(ed>lines) ed=lines; strcpy(unit,data[1]); display_page(); pmqj=15; pmbj=1; display_cursor(ON); edit_key_event(); } /*读取参数*/ void read_parameter(void) { flag=0; flage=0; flagf=0; kqj=15; kbj=4; zfgbqj=6; zfgbbj=3; pmqj=15; x=1; pmbj=1; qjys=15; bjys=1; page_line=16; ckqj=1; ckbj=7; xcount=74; xstart=3; ystart=6; MaxLines=600; lines=0; data[0][0]=0; } /*获得文件名*/ void get_new_filename(void) { char buffer[4096]; char jx; gettext(10,8,10+50,8+3,buffer); RESET:filename[0]=0; CLSXY(7,10,8,50,3); COLOR(15,4); gotoxy(12,9); DISPLAY("请输入文件名:"); COLOR(15,1); line_edit(9,25,filename); CUT_ALL_SPC(filename); if (filename[0]==0) { puttext(10,8,10+50,8+3,buffer); return; } if (!access(filename,0)) { gotoxy(12,9); DISPLAY("该文件已经存在,覆盖吗?(y/n)"); gotoxy(44,9); jx=getch(); if (jx=='N' ||jx=='n') goto RESET; } puttext(10,8,10+50,8+3,buffer); } /* 打开已经存在的文件 */ void get_exist_filename(void) { char buffer[4096]; gettext(10,8,10+50,8+3,buffer); RESET:filename[0]=0; CLSXY(7,10,8,50,3); COLOR(15,4); gotoxy(12,9); DISPLAY("请输入文件名:"); COLOR(15,1); line_edit(9,25,filename); CUT_ALL_SPC(filename); if (filename[0]==0) { puttext(10,8,10+50,8+3,buffer); return; } if (access(filename,0)) { gotoxy(12,9); DISPLAY("该文件不存在,请重新输入!"); getch(); goto RESET; } puttext(10,8,10+50,8+3,buffer); } /*装入文件*/ int load_file(char d[][80]) { FILE *fp; char s[200]; char s1[300]; char s2[10]; int n,j,l; n=1; d[1][0]=0; fp=fopen(filename,"r"); if (!fp) { warn_message("打开文件错误!",""); return n; } n=0; SPACE(s2,2); while(READ_STR(s,fp)) { n++; s1[0]=0; l=strlen(s); for(j=0;jl) strcpy(s," "); else MID(unit,s,x,1); gotoxy(xstart+x-1,ystart+y-1); if(cursor) COLOR(zfgbqj,zfgbbj); else COLOR(pmqj,pmbj); DISPLAY(s); } /*接收字符 */ void receive_data(int code) { char s[100]; int l; l=strlen(unit); if(x>l||insert) /*光标在行尾或插入*/ { if(l==xcount) return; MID(unit,s,x,l-x+1); unit[x-1]=code; unit[x]=0; strcat(unit,s); } else { unit[x-1]=code; } strcpy(data[frow],unit); display_cursor(OFF); x++; display_unit(ON); } /*向下翻页*/ void page_down(void) { if(st+page_line>lines) return; st+=page_line; frow+=page_line; ed=st+page_line-1; if(ed>lines) ed=lines; CLSXY(1,3,6,74,16); display_page(); } /*向上翻页*/ void page_up(void) { frow-=page_line; st-=page_line; if(st<1) st=1; ed=page_line+st-1; if(ed<1) ed=1; if (frow<1) frow=y; CLSXY(1,3,6,74,16); display_page(); } /*光标右移*/ void cursor_right(void) { int l; l=strlen(unit); if(x>l) return; strcpy(unit,data[st+y-1]); display_cursor(OFF); x++; display_cursor(ON); } 回答人的补充 2009-06-08 09:30 /* 光标左移 */ void cursor_left(void) { if(x<2) return; strcpy(unit,data[st+y-1]); display_cursor(OFF); x--; display_cursor(ON); } /*光标下移*/ void cursor_down(void) { int l; if(y==page_line&&edstrlen(unit)+1) x=strlen(unit)+1; display_unit(ON); st++; ed++; strcpy(data[frow],unit); return; } if(y==page_line) return; if(frow==ed&&lines>=MaxLines) return; strcpy(unit,data[st+y-1]); display_cursor(OFF); strcpy(data[frow],unit); y++; frow++; if(frow>lines) { ed++; lines++; if(lines>MaxLines) return; strcpy(data[frow],""); } strcpy(unit,data[frow]); l=strlen(unit)+1; if(x>l) x=l; display_cursor(ON); } /*光标上移*/ void cursor_up(void) { int l; if(y==1&&st==1) return; if(frow-1<1) { frow=st; return; } if(y==1&&st>1) { display_cursor(OFF); WINDOW_ROLL(ystart,xstart,page_line,xcount,2); frow--; strcpy(unit,data[frow]); if(x>strlen(unit)+1) x=strlen(unit)+1; display_unit(ON); st--; ed--; strcpy(data[frow],unit); return; } if(y==1) return; if(frow==st&&lines==1) return; strcpy(unit,data[st+y-1]); display_cursor(OFF); strcpy(data[frow],unit); y--; frow--; strcpy(unit,data[frow]); l=strlen(unit)+1; if(x>l) x=l; display_cursor(ON); } /*按del键*/ void cursor_del(void) { char s[100]; int l,y0,i,x0; y0=y; x0=x; l=strlen(unit); if(y==page_line&&x==l) return; if(x>=l) { strcpy(s,""); l=strlen(data[frow]); LEFT(s,data[frow+1],xcount-l); strcat(data[frow],s); strcpy(unit,data[frow]); display_cursor(OFF); if (strlen(data[frow+1])<=xcount-l) { for(i=frow+1;il) { display_cursor(OFF); x=1; cursor_down(); return; } y0=y; strcpy(s," "); MID(unit,s,x,l-x+1); unit[x-1]=0; display_cursor(OFF); if(lines+1>MaxLines) return; strcpy(data[lines+1],data[lines]); strcpy(data[st+y-1],unit); for(i=lines;i>frow;i--) strcpy(data[i],data[i-1]); strcpy(data[i+1],s); lines++; CLSXY(1,3,6,74,16); display_page(); x=1; y=y0; display_cursor(ON); cursor_down(); } 回答人的补充 2009-06-08 09:35 /*保存文件*/ void file_save(void) { FILE *fp1; int i; i=1; if((fp1=fopen(filename,"w"))==NULL) { warn_message("存文件出错!!!",""); return; } while(i40) display_ctrl("文件名错!") ; strcpy(fas,filename); if((fp1=fopen(fas,"w"))==NULL) { gotoxy(30,10); DISPLAY("不能块写入!!!"); } for(i=memy;imemy2) return; strcpy(unit,data[memy2+1]); display_cursor(OFF); lines-=memy2-memy+1; for(i=memy;ifrow-1;i--) strcpy(data[i],data[i-(memy2-memy+1)]); for(i=0;i=memy&&frow<=memy2) { pmbj=kbj; zfgbqj=7; zfgbbj=3; } else { zfgbqj=1; zfgbbj=3; pmqj=15; pmbj=1; } mx=x; my=y; med=ed; mst=st; mfrow=frow; if(i>31) { receive_data(code); continue; } switch(code) { case 59: edit_help(); edit_file(); break; case 3: display_ctrl("考贝块^C"); copy_block(); break; case 4: display_ctrl("删除块^D"); del_block(); break; case 23: display_ctrl("写块 ^W"); write_ks_kw(); break; case 25: display_ctrl("删除行^Y"); del_line(); break; case 11: display_ctrl("块首 ^K"); /* Ctrl+K 定义块首 */ define_ks(); break; case 14: display_ctrl("块尾 ^N"); define_kw(); break; /* Ctrl+N定义块尾 */ case 60: /* F2 存盘 */ file_save(); break; case 61: file_save_as(); break; case 13: cursor_enter(); break; case '\b': cursor_backspace(); break; case 71: cursor_home(); break; case 79: cursor_end(); break; case 83: cursor_del(); break; case 73: page_up(); break; case 81: page_down(); break; case 27: if(memy) { del_ks_kw(); del_flag(); break; } break; case 77: cursor_right(); break; case 75: cursor_left(); break; case 80: cursor_down(); break; case 72: cursor_up(); break; case 82: /*切换插入*/ insert=1-insert; break; case -4: display_one(4+13*(p-1),3,menu[p],ON); menu_event(); break; } } } ----------------------- #include #pragma hdrstop #include “Unit1.h” #pragma resource “,.dfm” Tform1 ,Form1; _fastcall Tform1::Tform1(Tcomponent , Owner) :Tform(Owner) { } //,,,,,,,以上由电脑自动生成,,, void _fastcall Tform1::FormCreate(Tobject ,Sender) { bsave,>Enabled=false; //将“SAVE”键设置为无效 edit,>Lines,>Clear(); //清除ED99v中的 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 edit,>Enabled=false; //将ED99v设为无效 } //,,,,,,以上是窗体建立时初始内容,,,, void _fastcall Tform1::bopenClick(Tobject ,Sender) { if(edit,>Modified)//若ED99v中的文本已被改变,但未保存,则弹出对话框,询问是否保存 {yn=Application,>MessageBox(“文件已经修改,是否保存?”,“打开”,MB_YESNO|MB_ICONQUESTION); if(yn==IDYES)edit,>Lines,>SaveToFile(savedialog ,>FileName); } edit,>Enabled=true; if(opendialog,>Execute())edit,>Lines,>LoadFromFile(opendialog,>FileName); edit,>Modified=false; bsave,>Enabled=false; } //,,,,,,以上是打开文件按钮的过程,,,,,, void _fastcall TForm1::bsaveClick(Tobject ,Sender) { if(savedialog,>Execute())edit,>Lines,>SaveToFile(savedialog ,>FileName); edit,>Modified=false; bsave,>Enabled=false; } //,,,,以上是保存文件按钮的过程,,,, void _fastcall TForm1::editChange(TObject ,Sender) { bsave,>Enabled=true; } //,,,,,,,,,,,,,,,,,,,,, void _fastcall TForm1::bexitClick(Tobject ,Sender) { Close(); }
本文档为【文字编辑器c 代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_337177
暂无简介~
格式:doc
大小:93KB
软件:Word
页数:55
分类:高中语文
上传时间:2018-03-29
浏览量:27