Editor de textos con arreglo de cadenas.
#include string.h
#include stdio.h
#include ctype.h
void inserta(char t[][50],int *ll,int act,int max);
void modif_actual(int *act,int ll);
void reemplaza_linea(char t[][50],int ll,int *act);
void lista(char t[][50],int *ll);
void agrega_linea(char t[][50],int *ll,int max,int *act);
void main(void){
char txt[30][50],opcion;
int llenas=0,max=30,actual;
while(1){
clrscr();
printf(" EDITOR DE TEXTO");
printf("\n SELECCIONA LA PRIMERA LETRA DE LA OPCION DESEADA");
printf("\n\nAgregar Salir Lista Reemplaza Inserta Opcion: ");
opcion=toupper(getch());
if(opcion=='S')
break;
if(opcion=='A')
agrega_linea(txt,&llenas,max,&actual);
if(opcion=='L')
lista(txt,&llenas);
if(opcion=='R')
reemplaza_linea(txt,llenas,&actual);
if(opcion=='I')
inserta(txt,&llenas,actual,max);
}
}
/**************************************************************************/
void agrega_linea(char t[][50],int *ll,int max,int *act){
if(*ll==max){
printf("\n\nMemoria insuficiente...");
return;
}
printf("\n\n>");
fflush(stdin);
gets(t[*ll]);
*ll=*ll+1;
*act=*ll;
}
/**************************************************************************/
void lista(char t[][50],int *ll){
int i=0;
printf("\n\n");
while(i<*ll){
puts(t[i]);
i++;
}
getch();
}
/**************************************************************************/
void modif_actual(int *act,int ll){
int v;
printf("\n\nIndica el numero de la linea a posicionar: ");
scanf("%d",&v);
if(v<=ll && v!=0){
*act=v;
}
else{
*act=-1;
}
}
/**************************************************************************/
void reemplaza_linea(char t[][50],int ll,int *act){
if(ll==0){
printf("\n\nNo existe informacion a reemplazar");
getch();
return;
}
modif_actual(act,ll);
if(*act==-1){
printf("\n\nLa linea seleccionada no existe...");
getch();
}
else{
printf("\n\nIntroduce la nueva linea: ");
fflush(stdin);
gets(t[*act-1]);
}
}
/*************************************************************************/
void inserta(char t[][50],int *ll,int act,int max){
int j;
if(*ll==max){
printf("\n\nMemoria insuficiente...");
getch();
return;
}
modif_actual(&act,*ll);
if(act==-1){
printf("\n\nLa linea seleccionada no existe...");
getch();
}
else{
j=*ll-1;
while(j>=act-1){
strcpy(t[j+1],t[j]);
j--;
}
printf("\n\nInserta la nueva linea: ");
fflush(stdin);
gets(t[act-1]);
(*ll)++;
}
}
No hay comentarios:
Publicar un comentario