Código C++:
Ver original// el main
int main()
{
comando c;
Archivo a;
char nroli[2];
int nrolinea;
do
{
c=leerComando(c);
switch(c.cmdNum)
{
case 1: a=CrearArchivo(c.parametro1);
break;
case 2: cout << "BorrarArchivo";
break;
case 3:
cout << "InsertarLinea";
break;
case 4: cout << "BorrarLinea";
break;
case 5: mostrartexto(a);
break;
case 6: a=insertarpri(a,c.parametro2);
break;
case 7: cout << endl <<"Saldra del Programa."<< endl;
c.cmdNum=7;
break;
default: cout << " El comando ingresado es incorrecto." << endl;
}while(c.cmdNum!=7);
}
//otro cpp
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "Cabezales.h"
using namespace std;
comando leerComando(comando c)
{
char *p;
char coman[20];
cout <<">";
cin >> coman;
// gets(coman);
if(strcmp(c.
cmd, "CrearArchivo")==0) {
c.cmdNum=1;
}
else
{
if(strcmp(c.
cmd, "BorrarArchivo")==0) {
c.cmdNum=2;
}
else
{
if(strcmp(c.
cmd, "InsertarLinea")==0) {
c.cmdNum=3;
}
else
{
if(strcmp(c.
cmd, "BorrarLinea")==0) {
c.cmdNum=4;
}
else
{
if(strcmp(c.
cmd, "MostrarTexto")==0) {
c.cmdNum=5;
/* p = strtok(NULL, "(,)");
strcpy(c.parametro2, p);*/
}
else
{
if(strcmp(c.
cmd, "insertarpri")==0) {
c.cmdNum=6;
/* p = strtok(NULL, "(,)");
strcpy(c.parametro2, p);*/
}
else
{
{
c.cmdNum=7;
}
else
{
cout << "Error";
}
}
}
}
}
}
}
return c;
}
Archivo CrearArchivo(char nombre[100])
{
Archivo a;
a= new archivo;
a->sig_archivo=NULL;
a->ptr_linea= new nodolinea;
a->ptr_linea=NULL;
cout << "Archivo " << a->nombre << " creado.";
return a;
}
Archivo insertarpri(Archivo a,char line[100])
{
Archivo recorro;
recorro=a;
Linea nuevalinea;
nuevalinea= new nodolinea;
strcpy(nuevalinea
->line
,line
); nuevalinea->sig_linea=NULL;
recorro->ptr_linea=nuevalinea;
return recorro;
}
void mostrartexto(Archivo a)
{
int x=1;
Archivo recorro;
recorro =a;
if(recorro->ptr_linea!=NULL)
{
cout << "-Archivo " << recorro->nombre <<"-"<< endl;
while(recorro->ptr_linea != NULL)
{
cout << x << " - " << recorro->ptr_linea->line;
recorro->ptr_linea=(*recorro).ptr_linea->sig_linea;
}
}
else
{
cout << "Archivo vacio.";
}
}
//y el head
#ifndef CABEZALES_H_INCLUDED
#define CABEZALES_H_INCLUDED
enum retorno
{
OK,ERROR,NO_IMPLEMENTADA
};
typedef enum retorno TipoRet;
struct comando
{
char cmd[30], parametro1[30], parametro2[30], parametro3[2];
int cmdNum;
};
struct nodolinea
{
int nrolinea;
char line[100];
struct nodolinea * sig_linea;
}; typedef nodolinea * Linea;
struct archivo
{
char nombre[100];
Linea ptr_linea;
struct archivo * sig_archivo;
}; typedef archivo *Archivo;
comando leerComando(comando c);
int cantidad_lineas(Archivo a);
Archivo CrearArchivo(char nombre[100]);
Archivo insertarlinea(Archivo a, char line[100], int nrolinea);
Archivo borrarlinea (Archivo a, int nrolinea);
Archivo borrararchivo(Archivo a, char nombre[100]);
void mostrartexto(Archivo a);
#endif // CABEZALES_H_INCLUDED