文本编辑器源代码

文本编辑器源代码
文本编辑器源代码

/* A Screen Editer Subsystem */

#define TURBOC

#include

#include

#include

#include

#include

#define BUF_SIZE 32000

#define LINE_LEN 79-2

#define MAX_LINES 24-1

#define KILL_BUF_SIZE 4*LINE_LEN

/***********************************************************/

char buf[BUF_SIZE];

char *curloc,*endloc;

int scrnx,scrny;

char killbuf[KILL_BUF_SIZE];

char *helpline="F1:save F2:load F3:find F4:replace ^K:kill line ^Y:Yank ^Z:qiut"; /*************************************************************/ void edit(char *fname),help(void);

void gotoxy(int x,int y),clrline(int y);

void edit_clr_col(int x,int y),clrscr(void);

void printline(char *p),delete_char(void);

void search(void),kill_line(void);

void scrolldn(int x,int y);

void scrollup(int topx,int topy,int endx,int endy);

void upline(void);

void downline(void),left(void),right(void);

void display_scrn(int x,int y,char *p);

void pagedown(void),pageup(void),replace(void);

void home(void),gotoend(void),yank(void);

int load(char *fname),save(char *fname);

void edit_gets(char *str);

void draw_border(int,int,int,int,int);

/***************************************************/

main(int argc,char *argv[])

{

union REGS r;

char fname[80];

if(argc<2)

{

draw_border(0,0,78,24,0x1f);

draw_border(20,12,60,14,0x2f);

gotoxy(20,11);

printf("\7FILE NAME:");

gotoxy(21,13);

gets(fname);

edit(fname);

}

if(argc==2)

{

strupr(argv[1]);

if(strstr(argv[1],".EXE")||strstr(argv[1],".COM")||\

strstr(argv[1],".OBJ")||strstr(argv[1],".LIB"))

{

printf("\7Can't edit file :%s",argv[1]);

exit(1);

}

else edit(argv[1]);

}

r.h.ah=6;

r.h.al=0;

r.h.ch=0;

r.h.cl=0;

r.h.dh=24;

r.h.dl=79;

r.h.bh=7;

int86(0x10,&r,&r);

gotoxy(1,1);

}

/******************************************************************/ void edit(char *fname)

{

union k

{

char ch[2];

unsigned i;

}key;

char name[80];

/* try to load the file */

if(!load(fname))curloc=endloc=buf;

strcpy(name,fname);

/* set initial values to X,Y coordinate vars */

scrnx=scrny=0;

display_scrn(0,0,curloc);

help();

gotoxy(1,1);

/* editer main loop . */

do{

#ifdef TURBOC

key.i=bioskey(0);

#endif

if(!key.ch[0])

{

switch(key.ch[1])

{

case 59: /*F1 :save file */

save(name);

break;

case 60: /*F2: load file */

clrline(MAX_LINES);

gotoxy(1,MAX_LINES);

printf("Enter filename :");

edit_gets(name);

strupr(name);

if(strstr(name,".EXE")||strstr(name,".COM")||\

strstr(name,".OBJ")||strstr(name,".LIB"))

{

gotoxy(1,MAX_LINES);

printf("\7Can't edit file: %s",name);

getch();

help();

break;

}

if( * name) load(name);

help();

display_scrn(0,0,curloc);

scrnx=scrny=0;

break;

case 61:

search();

break;

case 62:

replace();

break;

case 71:

home();

break;

case 79:

gotoend();

break;

case 75: /*left*/

left();

break;

case 77:

right();

break;

case 72:

upline();

break;

case 80:

downline();

break;

case 73:

pageup();

break;

case 81:

pagedown();

break;

case 83: /*Del*/

if(curloc

break;

}

if(curloc

{

scrnx=scrny=0;

curloc=buf;

}

gotoxy(scrnx+1,scrny+1); /*postion cursor */ }

else

{

switch(key.ch[0])

{

case '\r':

/*see if buffer is full */

if(endloc==buf+BUF_SIZE-2) break;

/* move contents of file below current location down one byte to make room for the RETURN.*/ memmove(curloc+1,curloc,endloc-curloc+1);

*curloc=key.ch[0]; /*put RETURN in file */

/*clear rest of line */

edit_clr_col(scrnx,scrny);

scrnx=0;

scrny++;

/*move text on screen down */

if(scrny==MAX_LINES-1)

{

/*at bottom of page */

scrny=MAX_LINES-2;

scrollup(1,1,LINE_LEN,scrny+1);

}

else scrolldn(scrnx+1,scrny+1);

gotoxy(scrnx+1,scrny+1);

printline(curloc);

endloc++;

/* advance the end of file pointer */ break;

case '\b':

if(curloc==buf) break;

left();

delete_char();

break;

case 11:

kill_line();

break;

case 25:

yank();

break;

case 26:

clrline(MAX_LINES);

gotoxy(1,MAX_LINES);

printf("If saved file,press[Y]exit\7");

if(tolower(getch())=='y') goto end;

help();

break;

default: /* enter keystroke into file */

/*see if buf is full */

if(endloc==buf+BUF_SIZE-2) break;

/*can't type past end of line */

if(scrnx==LINE_LEN) break;

memmove(curloc+1,curloc,endloc-curloc+1); *curloc=key.ch[0];

putch(*curloc);

gotoxy(scrnx+1,scrny+1);

printline(curloc+1);

curloc++;

endloc++;

}

gotoxy(scrnx+1,scrny+1);

}

}while(1);

end:

printf("\n");

}

/**************************************************************************** Display a line pointed to by p.

****************************************************************************/ void printline(register char *p)

{

register int i;

i=scrnx+1;

while(*p!='\r'&&*p&&i

{

putch(*p);

p++;

i++;

}

}

/**************************************************************************** Insert previously killled line.

****************************************************************************/ void yank(void)

{

char *p;

p=killbuf;

while(*p)

{

memmove(curloc+1,curloc,endloc-curloc+1);

*curloc=*p;

if(scrnx

{

putch(*curloc);

scrnx++;

}

endloc++;

p++;

}

}

/*******************************************************/

/* Delete the line at the current location */

void kill_line(void)

{

register int i;

char *p,*killbufptr;

if(*curloc=='\r')

{

delete_char();

return;

}

edit_clr_col(scrnx,scrny); /*clear to CR */

/* find out hoe many characters are in the line */

p=curloc;

i=0;

killbufptr=killbuf;

while(*p!='r'&&p

{

i++;

*killbufptr=*p;

p++;

if(killbufptr

}

*killbufptr='\0';

/* remove the line */

memmove(curloc,curloc+i,endloc-curloc);

endloc-=i;

}

/*********************************************************************** Global search and replace

***********************************************************************/ void replace(void)

{

register int len1;

char str1[80],str2[80];

char *p,*p2;

clrline(MAX_LINES);

gotoxy(1,MAX_LINES);

printf("enter string to replace :");

edit_gets(str1);

clrline(MAX_LINES);

gotoxy(1,MAX_LINES);

printf("enter replacement:");

edit_gets(str2);

p=curloc;

len1=strlen(str1);

while(*str1)

{

/*search for the string */

while(*p && strncmp(str1,p,len1)) p++; if(!*p)

{

clrline(MAX_LINES);

gotoxy(1,MAX_LINES);

printf("No found string %s",str1); getch();

help();

break;

} /* not found */

/* remove old string */

memmove(p,p+len1,endloc-p);

endloc-=len1;

/*insert new string */

p2=str2;

while(*p2)

{

memmove(p+1,p,endloc-p+1);

*p=*p2;

p++;

endloc++;

p2++;

}

}

clrscr();

/* find location of top screen */

p=curloc;

for(len1=scrny;len1>=0&&p

{

p--;

if(*p=='r') len1--;

}

if(*p=='r') p++;

/* redisplay current screen */

display_scrn(0,0,p);

help();

}

void delete_char(void)

{

gotoxy(scrnx+1,scrny+1);

if(*curloc=='r')

{

scrollup(1,scrny+1+1,LINE_LEN,MAX_LINES-1);

memmove(curloc,curloc+1,endloc-curloc);

endloc--;

display_scrn(scrnx,scrny,curloc);

help();

}

else

{

memmove(curloc,curloc+1,endloc-curloc);

endloc--;

printline(curloc);

printf("");

}

}

/************************************************************************* Display help line.

*************************************************************************/ void help(void)

{

gotoxy(1,MAX_LINES);

printf(helpline);

}

/************************************************************************* Move cuuren location left

*************************************************************************/ void left(void)

{

if(curloc==buf) return;

scrnx--;

if(scrnx<0)

{

scrnx=0;

upline(); /*go up to next line */

/* find end of line */

while(*curloc!='r')

{

curloc++;

scrnx++;

}

}

else curloc--;

}

/********************************************************************** Move current position right.

**********************************************************************/ void right(void)

{

if(curloc+1>endloc) return;

scrnx++;

/* if at the end of line,go to the next one. */

if(scrnx>LINE_LEN||*curloc=='\r')

{

scrnx=0;

scrny++;

if(scrny==MAX_LINES-1) /* at end of screen */

{

scrny=MAX_LINES-2;

downline();

/* move cursor and current loc to start of new line */

curloc--;

while(*curloc!='\r') curloc--;

curloc++;

scrnx=0;

}

else curloc++;

}

else curloc++;

}

/**********************************************************************/ void search(void)

{

char str[80];

register char *p;

int len,i;

clrline(MAX_LINES);

gotoxy(1,MAX_LINES);

printf("search string :");

edit_gets(str);

if(! *str)

{

help();

return;

}

p=curloc;

len=strlen(str);

while(*p&&strncmp(str,p,len)) p++;

if(! *p)

{

gotoxy(1,MAX_LINES);

printf("\7No found string %s!",str);

getch();

help();

return;

} /* not found */

i=0;

while(p>buf&&*p!='\r')

{

p--;

i++;

}

p++;

i--;

/* reposition curren location to start of match */

curloc=p+i;

scrnx=i;

scrny=0;

clrscr();

display_scrn(0,0,p);

help();

}

/***************************************************************************** Move up a line.

*****************************************************************************/ void upline(void)

{

register int i;

char *p;

if(curloc==buf)return;

p=curloc;

if(*p=='\r') p--;

for(;*p!='\r'&&p

if(*p=='\r')return;

curloc=p;

curloc--;

i=scrnx; /* save X coordinate */

/* find start of next line */

while(*curloc!='\r'&&curloc>buf) curloc--;

scrny--;

scrnx=0;

curloc++;

/* if at top of screen ,must stop */

if(scrny<0)

{

scrolldn(1,1);

scrny=0;

gotoxy(1,1);

printline(curloc);

}

while(i&&*curloc!='\r')

{

curloc++;

scrnx++;

i--;

}

}

/*************************************************************************** Move down one line,keep previous scrnx location if possible

**************************************************************************/ void downline(void)

{

register int i;

char *p;

i=scrnx;

p=curloc;

while(*p!='\r'&&p

if(p==endloc) return;

p++;

curloc=p;

scrny++;

scrnx=0;

if(scrny==MAX_LINES-1)

{

scrny=MAX_LINES-2;

scrollup(1,1,LINE_LEN,MAX_LINES-1);

gotoxy(scrnx+1,scrny+1);

printline(curloc);

}

while(i&& *curloc!='\r' && curloc

{

curloc++;

scrnx++;

i--;

}

}

/**************************************************************************** Display a screen full of text (up to 24 lines)

***************************************************************************/ void display_scrn(int x,int y,char *p)

{

register int i,j;

gotoxy(x+1,y+1);

textcolor(WHITE);

textbackground(BLUE);

i=0;

while(y

{

switch(*p)

{

case '\r': printf("\n");

y++;

gotoxy(1,y+1);

i=0;

break;

case '\x09':

for(j=0;j<8;j++)

{

printf(" ");

i++;

}

default:

if(i

i++;

}

p++;

}

}

/**************************************************************************** Page down MAX_LINES lines

*****************************************************************************/ void pagedown(void)

{

register int i;

clrscr();

for(i=0;i

{

if(*curloc=='\r') i++;

curloc++;

}

help();

scrnx=0;

scrny=0;

display_scrn(0,0,curloc);

}

/*************************************************************************** Page up MAX_LINES line

***************************************************************************/ void pageup(void)

{

register int i;

clrscr();

for(i=0;ibuf;)

{

if(*curloc=='\r') i++;

curloc--;

}

scrnx=scrny=0;

display_scrn(0,0,curloc);

help();

}

/************************************************************************** Go to the end of the file

**************************************************************************/ void gotoend(void)

{

int i;

char *p;

p=curloc;

for(i=scrnx;*p!='\r'&&p

{

scrnx++;

p++;

i++;

}

gotoxy(scrnx+1,scrny+1);

curloc=p;

}

/**************************************************************************** Load a file

****************************************************************************/ int load(char *fname)

{

FILE *fp;

char ch,*p;

int i;

draw_border(0,0,78,24,0x2f);

clrscr();

if((fp=fopen(fname,"rb"))==NULL) return 0;

gotoxy(1,1);

p=buf;

while(!feof(fp)&&p!=buf+BUF_SIZE-2)

{

ch=getc(fp);

if(ch=='\x09')

for(i=0;i<8;i++,p++) *p='\x20';

else if(ch!='\n'&&ch!=EOF)

{

*p=ch;

p++;

}

}

*p='\0';

fclose(fp);

curloc=endloc=p;

clrscr();

curloc=buf;

help();

scrnx=scrny=0;

display_scrn(0,0,curloc);

}

/****************************************************************************** ***

Go to top the file

******************************************************************************/ void home(void)

{

curloc-=scrnx;

scrnx=0;

gotoxy(scrnx+1,scrny);

}

/****************************************************************************** Save a file

*****************************************************************************/ int save(char *fname)

{

int i;

FILE *fp;

char *p,name[80];

if(!*fname)

{

clrline(MAX_LINES);

gotoxy(1,MAX_LINES);

printf("filename:");

gets(name);

}

else strcpy(name,fname);

if((fp=fopen(name,"wb"))==NULL) return 0;

p=buf;

while(p!=endloc)

{

if(*p!='\r')

putc(*p,fp);

else

{

putc('\r',fp);

putc('\n',fp);

}

p++;

}

fclose(fp);

clrline(MAX_LINES);

printf("file %s already saved.",name);

help();

return 1;

}

/****************************************************************************** Read a string from the keyboard

*****************************************************************************/ void edit_gets(char *str)

{

char *p;

p=str;

for(;;)

{

*str=getch();

if(*str=='\r')

{

*str='\0';

return;

}

if(*str=='\b')

{

if(str>p)

{

str--;

putch('\b');

putch(' ');

putch('\b');

}

}

else

{

putch(*str);

str++;

}

}

}

/****************************************************************************** *

Read and save cursor coordinates

******************************************************************************/ void cursor_pos(void)

{

union REGS i,o;

i.h.ah=3;

int86(16,&i,&o);

}

/****************************************************************************** **

Send cursor to specified X,Y(0,0 is upper left corner).

*****************************************************************************/ void gotoxy(int x,int y)

{

union REGS i;

i.h.dh=y;

i.h.dl=x;

i.h.ah=2;

i.h.bh=0;

int86(16,&i,&i);

}

/***************************************************************************** Clear entire line given its Y coordinate

*****************************************************************************/ void clrline(int y)

{

register int i;

gotoxy(1,y);

for(i=0;i

textcolor(WHITE);

textbackground(BLUE);

}

/**************************************************************************** Clear to end of specified line.

****************************************************************************/ void edit_clr_col(int x,int y)

{

char *p;

p=curloc;

gotoxy(x+1,y+1);

for(;x

{

printf(" ");

}

}

/**************************************************************************** Clear the screen.

****************************************************************************/ void clrscr(void)

{

union REGS r;

r.h.ah=6;

r.h.al=0;

r.h.ch=1;

r.h.cl=1;

r.h.dh=MAX_LINES-1;

r.h.dl=LINE_LEN;

r.h.bh=0x1f;

int86(0x10,&r,&r);

}

/*************************************************************************** Scroll down the screen.

***************************************************************************/ void scrolldn(int x,int y)

{

union REGS r;

r.h.ah=7;

r.h.al=1;

r.h.ch=y;

r.h.cl=x;

r.h.dh=MAX_LINES-1;

r.h.dl=LINE_LEN;

r.h.bh=0x1f;

int86(0x10,&r,&r);

}

/**************************************************************************** Srcoll up the screen.

****************************************************************************/ void scrollup(int topx,int topy,int endx,int endy)

{

union REGS r;

r.h.ah=6;

r.h.al=1;

r.h.ch=topy;

r.h.cl=topx;

r.h.dh=endy;

r.h.dl=endx;

r.h.bh=0x1f;

int86(0x10,&r,&r);

}

/**************************************************************************/ void draw_border(int beginx,int beginy,int endx,int endy,int attr)

{

int i;

union REGS r;

r.h.ah=6;

r.h.al=0;

r.h.ch=beginy;

r.h.cl=beginx;

r.h.dh=endy;

r.h.dl=endx+1;

r.h.bh=attr;

int86(0x10,&r,&r);

for(i=beginx;i

{ gotoxy(i,beginy);

putchar(196);

gotoxy(i,endy);

putchar(196);

}

for(i=beginy;i<=endy;i++)

{

gotoxy(beginx,i);

putchar(179);

gotoxy(endx,i);

putchar(179);

}

gotoxy(beginx,beginy);

putchar(218);

gotoxy(beginx,endy);

putchar(192);

gotoxy(endx,beginy);

putchar(191);

gotoxy(endx,endy);

putchar(217);

}

文本编辑器c++实验报告附源代码

四川大学软件学院 实验报告 课程名称数据结构实验课时8 实验项目文本编辑器实验时间12到14周实验目的了解c++类的封装和KMP算法。 实验环境 Windows平台 VC6.0++ 实验内容(算法、程序、步骤和方法) 部分函数创建思想: 创建过程如下: a、定义LinkList指针变量*temp: LinkList *temp; b、定义文本输入变量ch,记录文本行数变量j,记录每行字符数变量i; c、申请动态存储空间:head->next=(LinkList *)malloc(sizeof(LinkList)); d、首行头指针的前驱指针为空:head->pre=NULL; 首行指针:temp=head->next; 首行指针的前驱指针也为空:temp->pre=NULL; 定义没输入字符时文章长度为0:temp->length=0; 初始化为字符串结束标志,防止出现乱码:for(i=0;i<80;i++) temp->data[i]='\0'; e、利用循环进行文本输入 for(j=0;jdata[i]=ch; //给temp指向的行赋值 ···· temp->length++;//行中字符长度加1 if(ch=='#') {NUM=j; break; //文章结束时,Num来记录整个文章的行数 }}} 在字符输入的过程中,如果在单行输入的字符超过了80个字符, 则需要以下操作: 输入字符数大于80,重新分配空间建立下一行 temp->next=(LinkList *)malloc(sizeof(LinkList)) ;

个程序员专用的代码编辑器

个程序员专用的代码编 辑器 TPMK standardization office【 TPMK5AB- TPMK08- TPMK2C- TPMK18】

9个程序员专用的代码文本编辑器 下面是笔者总结的 9 个最好的免费代码文本编辑器: 1. NOTEPAD++ NOTEPAD++是一款免费又优秀的文本编辑器,支持在 MS Windows 环境下运行的多种编程语言。NOTEPAD++支持超过 50 种编程、脚本和标记语言的语法高亮显示和代码折叠,能让用户迅速减小或扩大代码段以便查阅整个文档。用户也可以手动设置当前语言,覆盖默认语言。该程序还支持自动完成某些编程语言的 API 子集。 2. VIM VIM 是一个可高度自由配置的文本编辑器。它是 vi 编辑器的改进版,同时也是免费软件。该应有程序的建立是为了处理代码以及其他很多事情,而不只是为了写电子邮件和打开配置文件。它允许你编辑文本并保存简单的文本文件,但它的主要功能是还是编辑代码。它支持语法高亮显示和行编号,这是写程序必备的两个基本功能。用户也可以改变界面颜色以便增加代码的可视性。 对于文本编辑,VIM 这个程序囊括了多种语言的拼写检查器,并有建议如何更正拼写错误的能力。甚至是当你正在编写代码的时候,它也能派上用场,因为该应用程序只检查不被识别为代码的文本。当然你也可以快速地从这个错误跳到下一个以便更好地校对文本。 VIM 是程序员和开发人员应对各种文本编辑的最佳选择。 3. GNU Emacs

Emacs 是一个可移植、可扩展、免费的文本编辑器。 Emacs 提供了一些命令来管理语句和段落,高亮的语法使得源代码更易于阅读,以及“键盘宏”的方式来执行用户定义的编辑命令。 Emacs 可以在若干个操作系统上运行,无论你使用的是哪一种机器类型。这让程序员非常受用。如果你使用的是通用的编程语言,Emacs 还会为你提供模式以及相应的排版和布局,更加方便你编辑代码。 Emacs 或许不是最简单的工具,但它绝对是最强大的编辑器之一。相比 vim,Emacs 的启动时间更长,所需要的内存也更多。但是,它是高度可定制的,并且包括了大量的功能。 4. SUBLIME TEXT SUBLIME TEXT 是一个超棒的免费软件/商业性质的文本编辑器。漂亮的用户界面、卓越的功能和令人惊叹的性能一定会让你爱不释手。它可用于 Windows、Mac OS X 和 Linux 系统,并且是免费试用的,而且这个免费时间没有限制。当然你也可以花费 70 美元买个完整的许可证。一份许可证就能允许你在自己拥有的多台计算机上使用,不管每一台计算机使用的是什么操作系统。 5. ATOM Atom 是一款由 GitHub 开发的,支持用 Node.js 编写插件和嵌入Git Contral,面向 Mac OS X、GNU/ Linux 和 Windows 的免费的开源文本和源代码编辑器。没人愿意将时间浪费在配置自己的编辑器上面,于是ATOM 横空出世。它预装了所有你期望一个现代化的文本编辑器所应该具备

文本编辑器使用使用说明

文本编辑器使用说明书

目录 1文本编辑器结构 (1) 1.1功能操作按钮栏 (1) 1.2内容栏 (1) 2功能分解 (1) 2.1功能操作按钮栏第一排 (1) 2.1.1全屏编辑 (2) 2.1.2预览 (2) 2.1.3粘贴 (2) 2.1.4粘贴为无格式文本 (2) 2.1.5从MS Word 粘贴 (2) 2.1.6撤销 (3) 2.1.7重做 (3) 2.1.8插入/编辑图像 (3) 2.1.9插入/编辑表格 (4) 2.1.10插入水平线 (4) 2.1.11插入/编辑超链接 (4) 2.1.12取消超链接 (5) 2.1.13查找 (5) 2.1.14替换 (5) 2.1.15全选 (5) 2.1.16清除格式 (5) 2.2功能操作按钮栏第二排 (5) 2.2.1格式 (6) 2.2.2字体 (6) 2.2.3大小 (6) 2.3功能操作按钮栏第三排 (6) 2.3.1空格 (6) 2.3.2加粗 (6) 2.3.3倾斜 (7) 2.3.4下划线 (7) 2.3.5删除线 (7) 2.3.6左对齐 (7) 2.3.7居中对齐 (7) 2.3.8右对齐 (7) 2.3.9两端对齐 (7) 2.3.10插入/删除编号列表 (8) 2.3.11插入/删除项目列表 (8) 2.3.12文本颜色 (8) 2.3.13背景颜色 (8) 2.3.14下标 (8) 2.3.15上标 (8) 2.3.16源代码 (9)

1文本编辑器结构 文本编辑器大体结构可以分为两部分,分别为:功能操作按钮栏和内容栏。 1.1功能操作按钮栏 功能操作按钮栏:用于对内容进行编辑。 1.2内容栏 内容栏:用于显示输入的内容。 2功能分解 在功能操作按钮栏中功能按钮分为三排,下面将分别按照每排的顺序进行逐一介绍。 2.1功能操作按钮栏第一排 功能操作按钮栏第一排中共包含16个功能按钮,如下图所示。 图2-1-1 功能操作按钮栏第一排

几种常用网页文本编辑器总结

文本编辑器应用总结 一.lhgeditor文本编辑器 lhgeditor组件文件结构: 1. lhgeditor.js:组件的核心JS文件 2. lhgeditor.css:组件的样式表文件 3. images:组件所需的图片都在此文件夹中 以上三个文件为组件所必须的三个文件,组件包中其它以“_”开头的文件为示例的演示文件,实际使用中不需要这些文件。当然框架核心文件lhgcore.js是每个组件都必须用到的文件,记得加载组件前先要加载此文件。 lhgeditor组件使用说明: 1. 在调用组件的页面加载lhgcore.j s和lhgeditor.js两个文件。 2. 在window.onload函数里加入J.editor.add(编辑器的id).init(); 例:

二.nicEdit文本编辑器 标签。 3)引入相关文件 4)创建编辑器 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

第一个java程序(Hello World)

Java程序开发体验—Hello World 1.将Java代码编写到扩展名为.java的文件中 2.通过javac命令对该java文件进行编译 3.通过java命令对生成的class文件进行运行 具体操作流程: Java本身的代码是纯文本,所以只需要文本编辑器 任何计算机语言都有其固有的格式,格式不用去理解,先记住,因为格式是死的 Java程序的特点在于,它是以一个类一个类的形式存在的,类就是存储代码的地方 类如何定义? 确定类的范围,用符号表示{} .java文件叫源代码,源程序,计算机不能识别 要把它翻译成计算机能识别的程序。 class Domo{ } 文件名存储为123.java 执行javac 123.java 生成Domo.class文件 执行java Domo 报错“NoSuchMothodError:main”(找不到main方法) //缺少东西,所以不能独立运行 main方法的格式是固定的,只能先记下来,后面介绍 class Domo { public static void main(String[] args) { }

} 完成了主方法的编程 要注意大小写区分,Java是严格区分大小写的 源代码修改了之后,要重新生成新的运行程序,所以要重新编译 javac 123.java java Demo 不报错了 为了得到计算机的反馈 class Domo { public static void main(String[] args) { System.out.print(“Hello world!”); } } javac 123.java java Demo 运行结果: Hello world! print和println的区别 class Domo { public static void main(String[] args) { System.out.print(“Hello world!”); System.out.print(“123”); } } 运行结果: Hello world!123 class Domo { public static void main(String[] args) { System.out.println(“Hello world!”); System.out.print(“123”); } } 运行结果:

细数几款免费好用的在线HTML编辑器

细数几款免费好用的在线HTML编辑器 先普及一下基本知识:什么叫在线HTML编辑器?说得简单点,在线HTML编辑器就是在网上发帖子、写博客的那个带编辑功能的框框,可以进行图文排版等操作。当年本菜鸟做网站的时候,曾经自己用javascript编写过一个比较简单的在线HTML编辑器,用于文本内容的排版。但是因为水平有限,很多功能都无法实现。后来有了eWebEditor,功能确实强大,但这个编辑器是个收费的软件,并且正因为功能强大,也就显得过重,一些轻量的场合不是太适用。那有没有既免费、又功能强大、还能适应轻量场合的在线HTML编辑器呢?答案肯定是有的。这首先要感谢这些年来有一批奉献精神的程序猿们不断推进共享软件的开发,让我们得以享受他们的成果。一、百度出品的UEditorUEditor是由百度web 前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码。特别要说的是,头条号后台发布文章的编辑器就是用的UEditor!百度UEditorUEditor还有一个轻量版的,叫做UMeditor,简称UM。UM是为满足广大门户网站对于简单发帖框,或者回复框需求所定制的在线HTML编辑器。主要特点是容量和加载速度上的改变,主文件的代码量为139k,而且放弃了使用传统的iframe模式,采用了

div的加载方式,以达到更快的加载速度和零加载失败率。UM的第一个使用者是百度贴吧,以经受贴吧每天几亿的pv 的考验,功能设计应当是最优化的了。当然随着代码的减少,UM的功能对于UE来说还是有所减少,但也有增加,比如拖拽图片上传,chrome的图片拖动改变大小等。百度UEditor界面二、xhEditor开源HTML编辑器xhEditor是一个基于jQuery开发的简单迷你并且高效的可视化HTML编辑器,基于网络访问并且兼容IE 6.0+,Firefox 3.0+,Opera 9.6+,Chrome 1.0+,Safari 3.22+。xhEditor完全基于Javascript 开发,可以应用在任何的服务端语言环境下,例如:PHP、ASP、https://www.360docs.net/doc/1115152611.html,、JA V A等。可以在CMS、博客、论坛、商城等互联网平台上完美的嵌入运行,能够非常灵活简单的和您的系统实现完美的无缝衔接。 主要特点:精简迷你:初始加载4个文件,包括:1个js(50k)+2个css(10k)+1个图片(5k),总共65k。若js和css文件进行gzip压缩传输,可以进一步缩减为24k左右。使用简单:简单的调用方式,加一个class属性就能将textarea变成一个功能丰富的可视化编辑器。无障碍访问:提供WAI-ARIA全面支持,全键盘精细操作,全程语音向导,提供完美无障碍访问体验,充分满足残疾人的上网需求。内置Ajax上传:内置强大的Ajax上传,包括HTML4和HTML5上传支持(多文件上传、真实上传进度及文件拖放上传),剪切板上传及远程抓

C++课程设计简易文本编辑器

目录 第一章课程设计目的和要求 (1) 1.1课程设计的目 (1) 1.2基本要求 (1) 第二章课程设计任务内容 (2) 2.1设计背景 (2) 2.2简易文本编辑器设计内容 (2) 第三章详细设计 (3) 3.1总体结构图 (3) 3.2函数分析 (3) 3.3主函数程序流程图 (4) 3.4子函数流程图 (5) 第四章程序编码与调试 (7) 4.1程序编码 (7) 4.2编码调试 (8) 4.3运行结果 (9) 第五章课程设计心得与体会 (11) 附录1 参考文献 (12) 附录2 源程序代码 (13)

第一章课程设计目的和要求 C语言课程设计是一门实践性非常强的课程,不但要注重c语言程序设计基本知识的学习,更要注重程序设计技能的培养,使学生能够允许渐进地把握c语言程序设计的技能。通过课程设计,培养学生阅读和编写程序的能力,培养计算机程序设计的能力和素质,以及思维方法。初步积累编程经验,打下良好的计算机应用基础。 1.1课程设计的目 1.通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力, 能更好的巩固《c语言程序设计》课程学习的内容 2.掌握工程软件设计的基本方法,强化上级动手编程能力,闯过理论与实践相 结合的难关!更加了解了c语言的好处和其可用性。 3.掌握基本的程序设计过程和技巧,掌握基本的分析问题合理性,通过计算机 求解问题的能力,具备初步的高级语言程设计能力。为后续个门计算机课程 的学习和毕业设计打下结实基础。 4.通过c语言课程设计,使学生了解高级程序设计语言的结构。 1.2 基本要求 1.基本要求: ①要求用VC中的MFC控件打开和保存文件。 ②要求在设计的程序中至少能完成六种编辑功能。 ③完成的程序界面要美观,能够完成六种编辑的全过程。 2.创新要求: ①在记事本中增加工具栏,工具栏中应有常使用的工具按钮; ②在记事本中增加状态栏;

ueditor1.4.3jsp utf-8版配置使用教程

Ueditor在线编辑器配置示例 1.简介 UEditor 是由百度「FEX前端研发团队」开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码。 2.下载 首页地址:https://www.360docs.net/doc/1115152611.html,/website/index.html,点击下载,可以根据需要下载php、aps、jsp、.net版本。由于1.4版本和1.3版本内容变更较大,本例中使用了最新版本1.4.3.1 jsp utf-8 版本进行测试。 3.配置 下载ueditor后,放入系统的js库中,由于本例的相同功能的ewebeitor 放在webroot下,本例中也直接放入的webroot下,结构图如下:

首先配置通用配置的控制器路径,文件名为:ueditor.config.js。此文件配置需要对应下载的版本,即jsp版对应修改: serverUrl: URL + "jsp/controller.jsp" 修改了通用配置后,还需要修改对应的上传文件、图片等路径,我们需要根据我们配置的版本去设置对应目录的内容,jsp版本如下:

实际配置如下图: 下面还有对应图片、视频的配置,与图片配置类似。 4.问题 4.1jar问题

需要的jar都已在ueditor中包含,直接拷贝至项目的lib中并加入classpath中即可。 1.4.3版本需要commons-io- 2.4.jar支持。所以在buildpath中需要将该包放置靠前。 4.2拦截器问题 对于使用了Struts2或配置了其他拦截器的,需要将该请求放行如Struts2一般配置为: 对于此类会拦截jsp的请求的配置,可以根据项目需要, 1.改为*.action,*.do之类的请求匹配 2.加入自己的拦截器,如本例所配置的 com.linewell.core.filter.ExtendStrutsPrepareFilter中, 不解的可以参照: https://www.360docs.net/doc/1115152611.html,/krysml/article/details/9006533

相关文档
最新文档