Text or Screen Editor in C++ Language
Write a program in C++ Language to implement a Text or Screen Editor which can edit the entered text on screen.Program should make a file which will be used for storing text .
Text or Screen Editor in C++ Language Code
1 |
#include <br/> #include <br/> #include <br/> #define left 21 <br/> #define top 7 <br/> #define right 59 <br/> #define bottom 24 <br/> void main() <br/> { <br/> clrscr(); <br/> window(left,top-1,right,bottom); <br/> char buff[100][40]; <br/> FILE *fp; <br/> fp=fopen("editfile.txt","w"); <br/> clrscr(); <br/> cprintf("F1 New F2 SAVE F3 OPEN F4 EXIT\n\r"); <br/> int x=wherex(); <br/> int y=wherey(); <br/> //gotoxy(x,y); <br/> char ch; <br/> int row; <br/> int col; <br/> int i; <br/> do <br/> { <br/> flushall(); <br/> ch=getch(); <br/> int i=0,j=0; <br/> if(ch==0) <br/> { <br/> ch=getch(); <br/> } <br/> //int <br/> char c; <br/> switch(ch) <br/> { <br/> case '='://open <br/> fp=fopen("editfile.txt","r"); <br/> i=0; <br/> clrscr(); <br/> while(i<15) <br/> { <br/> c=fgetc(fp); <br/> if(c=='\n') <br/> { <br/> i++; <br/> } <br/> cprintf("%c",c); <br/> } <br/> getch(); <br/> case '<': <br/> //save <br/> i=1; <br/> fp=fopen("editfile.txt","w"); <br/> while(i<16) <br/> { <br/> j=1; <br/> while( buff[i][j]!=' ' && buff[i][j]!='\r') <br/> { <br/> fputc(buff[i][j],fp); <br/> j++; <br/> } <br/> fputc('\n',fp); <br/> i++; <br/> } <br/> fputc('\0',fp); <br/> getch(); <br/> clrscr(); <br/> gotoxy(x,y); <br/> cprintf("F1 New F2 SAVE F3 OPEN F4 EXIT\n\r"); <br/> break; <br/> case ';': //NEW FILE <br/> //cprintf("yo"); <br/> clrscr(); <br/> cprintf("F1 New F2 SAVE F3 OPEN F4 EXIT\n\r"); <br/> cprintf("NEW FILE CREATED\n\r"); <br/> row=1; <br/> col=0; <br/> i=0; <br/> while(i<15) <br/> { <br/> strcpy(buff[i],NULL); <br/> buff[i][0]=' '; <br/> buff[i][1]=' '; <br/> buff[i][2]=NULL; <br/> i++; <br/> } <br/> break; <br/> case '>'://exit t <br/> break; <br/> case '\r':// return character next line <br/> row++; <br/> col=0; <br/> gotoxy(x+col,y+row); <br/> break; <br/> case 'P': <br/> row++; <br/> gotoxy(x+col,y+row); <br/> break; <br/> case 'H': <br/> if(row!=1) <br/> { <br/> row--; <br/> gotoxy(x+col,y+row); <br/> } <br/> break; <br/> case 'M': <br/> col++; <br/> if(col==39) <br/> { <br/> col=0; <br/> row++; <br/> } <br/> gotoxy(x+col,y+row); <br/> break; <br/> case 'K': <br/> col--; <br/> if(col==-1) <br/> { <br/> col=0; <br/> } <br/> gotoxy(x+col,y+row); <br/> break; <br/> case '\b': <br/> if((col-1)==-1) <br/> { <br/> break; <br/> } <br/> if(buff[row][col+1]==' ') <br/> { <br/> buff[row][col]=' '; <br/> buff[row][col+1]=NULL; <br/> gotoxy(x+col-1,y+row); <br/> cprintf(" "); <br/> gotoxy(x+col-1,y+row); <br/> col--; <br/> } <br/> else <br/> { <br/> i=strlen(buff[row]); <br/> j=col; <br/> gotoxy(x+col-1,y+row); <br/> while(j<=i) <br/> { <br/> buff[row][j]=buff[row][j+1]; <br/> if(buff[row][j+1]==' ') <br/> break; <br/> cprintf("%c",buff[row][j+1]); <br/> j++; <br/> } <br/> cprintf(" "); <br/> buff[row][i-1]=NULL; <br/> gotoxy(x+col-1,y+row); <br/> col--; <br/> } <br/> break; <br/> case 'S': <br/> if(buff[row][col+1]==' ') <br/> { <br/> buff[row][col]=' '; <br/> buff[row][col+1]=NULL; <br/> gotoxy(x+col-1,y+row); <br/> cprintf(" "); <br/> gotoxy(x+col,y+row); <br/> } <br/> else <br/> { <br/> i=strlen(buff[row]); <br/> j=col+1; <br/> gotoxy(x+col,y+row); <br/> while(j<=i) <br/> { <br/> buff[row][j]=buff[row][j+1]; <br/> if(buff[row][j+1]==' ') <br/> break; <br/> cprintf("%c",buff[row][j+1]); <br/> j++; <br/> } <br/> cprintf(" "); <br/> buff[row][i-1]=NULL; <br/> gotoxy(x+col,y+row); <br/> } <br/> break; <br/> default: <br/> //row=where <br/> col++; <br/> if(col==39) <br/> { <br/> row++; <br/> col=0; <br/> gotoxy(x+col,y+row); <br/> } <br/> i=strlen(buff[row]); <br/> if( (strlen(buff[row])-1) { <br/> for(i=strlen(buff[row])-1;i<col;++i) <br=""> { <br/> buff[row][i]=' '; <br/> } <br/> } <br/> // else <br/> // col++; <br/> buff[row][col+1]=' '; <br/> buff[row][col]=ch; <br/> buff[row][col+2]=NULL; <br/> cprintf("%c",ch); <br/> } <br/> }while(ch!='>'); <br/> } |
Source projectgeek.com