PLE:Unidad13Ejercicio04

/* programa:      ejercicio13 Descipcion:    Mini editor de textos.

using namespace std;
 * 1) include
 * 2) include
 * 3) include

const char ABRIR = 'a'; const char GUARDAR = 'g'; const char SALIR = 's'; const char NUEVA = 'n'; const char INSERTAR = 'i'; const char MODIFICAR = 'm'; const char BORRAR = 'b';

char menu; void mostrarTexto(char nom[], char t[][80], unsigned int n); void abrir(ifstream &f,char n[],char t[][80], unsigned int &num); void guardar(ofstream &f,char n[],char t[][80], unsigned int num); void nueva(char t[][80], unsigned int &n); void modificar(char t[][80], unsigned int &n); void insertar(char t[][80], unsigned int &n); void borrar(char t[][80], unsigned int &n);

void main { char texto[255][80]; unsigned int numLineas = 0; char opc = ' '; ifstream fe; ofstream fs; char nombreFichero[80] = "Nuevo.txt";

while(opc != SALIR) {               mostrarTexto(nombreFichero, texto, numLineas); opc = menu; switch(opc) {                       case ABRIR:     abrir(fe,nombreFichero, texto, numLineas); break; case GUARDAR:  guardar(fs,nombreFichero, texto, numLineas); break; case INSERTAR: insertar(texto, numLineas); break; case MODIFICAR: modificar(texto, numLineas); break; case BORRAR:   borrar(texto, numLineas); break; case NUEVA:    nueva(texto, numLineas); break; }       }        cin.get; }

void mostrarTexto(char nom[], char t[][80], unsigned int n) { system("cls"); cout << "****** " << nom << " ******" << endl; for(unsigned int i = 0; i < n; i++) cout << i << ": " << t[i] << endl; cout << endl; }

char menu {       char op; cout << "************************* MENU DE OPCIONES ************************" << endl; cout << "a- abrir g-guardar i- insert. b-borrar m-modif s-salir n-nueva lin."; cin.get(op); return op; }

void abrir(ifstream &f,char n[],char t[][80], unsigned int &num) {       cout << "Nombre del fichero: "; cin >> n;       f.open(n); if(f.good) {               num = 0; f.getline(t[num],80); while(! f.eof) {                       num++; f.getline(t[num],80); }       }        f.close; }

void guardar(ofstream &f,char n[],char t[][80], unsigned int num) {       cout << "Nombre del fichero: "; cin >> n;       f.open(n); if(f.good) {               for(unsigned int i = 0; i < num; i++) f << t[i] << endl; }       f.close; }

void nueva(char t[][80], unsigned int &n) {       cout << "Introduzca linea nueva" << endl; cin.ignore; cin.getline(t[n++],80); }

void insertar(char t[][80], unsigned int &n) {       unsigned int li; char linea[80]; cout << "Introduzca nº de linea: "; cin >> li; if(li < n)       { cout << "Introduzca linea nueva" << endl; cin.ignore; cin.getline(linea,80); n++; for(unsigned int i = n-1; i > li; i--) strcpy(t[i], t[i-1]); strcpy(t[li],linea); }       else {               cout << "ERROR: El numero de linea no es valido"; cin.get; } }

void modificar(char t[][80], unsigned int &n) {       unsigned int i;        cout << "Introduzca nº de linea: "; cin >> i;       if(i < n)        { cout << "Introduzca linea nueva" << endl; cin.ignore; cin.getline(t[i],80); }       else {               cout << "ERROR: El numero de linea no es valido"; cin.get; } }

void borrar(char t[][80], unsigned int &n) {       unsigned int li; char linea[80]; cout << "Introduzca nº de linea: "; cin >> li; if(li < n)       { n--; for(unsigned int i = li; i < n; i++) strcpy(t[i], t[i+1]); }       else {               cout << "ERROR: El numero de linea no es valido"; cin.get; } }