#include #include #include #include "lib1.h" using namespace std; void Guardar(string texto[],string nombre,int nlineas) { if( (nombre.length()> 200) || (nombre.length()< 1) ) { return; } fstream fichero; fichero.open("nombre",ios::in); int i; for(i = 1;i<=nlineas;i++) { while(!fichero.eof()){ getline(fichero,texto[i]); } fichero.close(); } } int LeerFichero (string nombre, string texto[]) { int retorno; int i=0; string basura; fstream fic; fic.open("nombre", ios::in); if(!fic) { cout<<"E2: ERROR DE APERTURA DEL FICHERO.\n"<1000) { cout<<"E3: FICHERO DEMASIADO GRANDE, MAXIMO 1000 LINEAS.\n"< texto[linea-1].length()) { columna = texto[linea-1].length(); } linea=linea-1; } void Abajo(string texto[],int &linea, int &columna,int nlineas) { if(linea == nlineas) //mirar el nlineas q seria el maximo valor d lineas d texto[] { return; } if(columna > texto[linea+1].length()) { columna = texto[linea+1].length(); if(columna == 0) { columna=1; //correjimos que si la linea es la linea virtual //la primera direccion no es 0, sino 1 } } linea=linea+1; } void Izquierda(string texto[],int &linea, int &columna) { if((linea == 1) && (columna == 1)) { return; } if(columna == 1) { linea=linea-1; columna=texto[linea].length(); } else { columna=columna-1; } } void Derecha(string texto[],int &linea, int &columna,int nlineas) { if( (linea > nlineas) && (columna = texto[linea].length()) ) { return; } if(columna == texto[linea].length()) { linea=linea+1; columna=1; } else { if(linea == nlineas) { return; } columna=columna+1; } } void PaginaArriba(string texto[],int &linea, int &columna) { //bien, primero comprobaremos si hemos de ir a 1 o a x -24 //moriremos si directamente estamos en 1, y regresaremos si fuese asi //finalmente, reajustaremos y si es necesario, pero solo 1 vez. if(linea == 1) { return; } int destino; if(((linea-24) == 1) || ((linea-24) < 1)) { destino = 1; } else { destino = linea - 24; } if(columna > texto[destino].length()) { columna = texto[destino].length(); } linea = destino; } void PaginaAbajo(string texto[],int &linea, int &columna,int nlineas) { int destino; if(linea == nlineas) { return; } if(((linea+24) == nlineas) || ((linea+24) > nlineas)) { destino = nlineas; //proxima parada: linea virtual; } else { destino = linea+24; } //corregimos y if(columna > texto[destino].length()) { columna = texto[destino].length(); if(columna == 0) { columna = 1; } } linea = destino; } void Posicion(string texto[],int &linea, int &columna,int nlineas, int lineapos) { if((lineapos < 1) || (lineapos > nlineas) || (lineapos == linea)) { return; } if(columna > texto[lineapos].length()) { columna = texto[lineapos].length(); if(columna == 0) { columna = 1; } } linea = lineapos; } void Mostrar(string texto[], int nlineas){ int cont; cout<<"---- PRINCIPIO ----"<=linea+1; i--) texto[i]=texto[i-1]; aux1=""; aux2=""; for(k=0; k<=columna-2; k++) aux1+=texto[linea-1][k]; for(k=columna-1; k<=texto[linea-1].length(); k++) aux2+=texto[linea-1][k]; texto[linea-1]=aux1; texto[linea]=aux2; linea++; nlineas++; columna=1; } else cout<<"E6: TAMAÑO MAXIMO ALCANZADO (1000 LINEAS).\n"<=columna;i--) texto[linea][i]=texto[linea][i-1]; texto[linea][columna]=caracter; columna++; } } void BorraAtras(string texto[], int &linea, int &columna, int &nlineas) { string aux=""; int i; if(columna>1) { for(i=0; i1) { columna=texto[linea-2].length(); texto[linea-2]=texto[linea-1]; for(i=linea-1; i<=nlineas-2; i++) texto[i]=texto[i+1]; nlineas--; columna--; } } } void BorrarPalabra(string texto[], int linea, int &columna, int nlineas) { string aux1=""; string aux2=""; int i,k; k=columna; if(linea (texto[linea+1].length()) ) { for(k=0; k<=texto[linea+1].length(); k++) columna=texto[linea+1][k+1]; } for(i=linea-1; i<=nlineas-2; i++) texto[i]=texto[i+1]; nlineas--; } else { if(linea==nlineas) { linea+=1; columna=1; } } } void BorrarResto(string texto[], int linea, int &columna, int nlineas) { string aux=""; int i; if(linea<=nlineas) { if(columna>1 && columna