Tengo que crear version, borrar version , mostrar version y mostrar cambios. 
 
Esto es lo que tengo que hacer:
Crear una nueva versión.
TipoRet CrearVersion(Archivo &a, char * version);
Crea una nueva versión del archivo si la versión especificada cumple con las siguientes reglas:
- El padre de la nueva versión a crear ya debe existir. Por ejemplo, si creo la versión 2.15.1, la versión 
2.15 ya debe existir. 
Las versiones del primer nivel no siguen esta regla, ya que no tienen versión padre.
- No pueden quedar “huecos” entre versiones hermanas. Por ejemplo, si creamos la versión 2.15.3, las 
versiones 2.15.1 y 2.15.2 ya deben existir.
Si la versión especificada ya existe, entonces se inserta haciendo que los hermanos (las versiones 
hermanas) se corran una posición a la derecha (aumentando una unidad). Por ejemplo si existen las 
versiones 2.15.1, 2.15.2 y 2.15.3, y creo la 2.15.2, las versiones 2.15.2 y 2.15.3 existentes pasan a ser 
2.15.3 y 2.15.4 respectivamente, para poder incorporar la versión 2.15.2 nueva (este corrimiento influye 
en la numeración de todos los hijos –las subversiones– de las versiones afectadas).
Cada subversión de una versión X de un archivo incorpora, eventualmente, cambios (inserción y/o 
supresión de líneas) a la versión X. Ver las operaciones relativas al texto que se describen más adelante 
en este documento.
Ejemplo: 
CrearVersion(a, "1"); 
CrearVersion(a, "2"); 
CrearVersion(a, "2.1"); 
MostrarVersiones(a);
Salida: 
curriculum.txt
1 
2 
2.1 
Retornos posibles: 
OK Si se pudo crear la nueva versión con éxito. 
ERROR Si la versión padre no existe (ver arriba).
NO_IMPLEMENTADA Cuando aún no se implementó. Es el tipo de retorno por defecto. 
4) Borrar una versión,  junto con sus hijos (subversiones), liberando toda la memoria involucrada. 
TipoRet BorrarVersion(Archivo &a, char * version);
Elimina una versión del archivo si la version pasada por parámetro existe. En otro caso la operación 
quedará sin efecto. Si la versión a eliminar posee subversiones, éstas deberán ser eliminadas también, así 
como el texto asociado a cada una de las versiones. El texto será explicado más adelante.
No deben quedar números de versiones libres sin usar. Por lo tanto cuando se elimina una versión, las 
versiones hermanas que le siguen deben decrementar su numeración (así también sus subversiones 
dependientes). Por ejemplo, si existen las versiones 2.15.1, 2.15.2 y 2.15.3, y elimino la 2.15.1, la 
Si las subversiones anteriores del mismo padre no existen (ver arriba). 
versión 2.15.2 y la 2.15.3 pasan a ser 2.15.1 y 2.15.2 respectivamente, esto incluye a todas las 
subversiones de estas versiones.
Si el archivo posee únicamente una versión (la 1), al eliminarla el archivo quedará vacío como cuando 
fue creado, es decir, únicamente con su nombre y contenido nulo. 
Ejemplo: 
BorrarVersion(a, "1"); 
MostrarVersiones(a); 
Salida: 
curriculum.txt
1
1.1 
Retornos posibles: 
OK Si se pudo eliminar la versión con éxito. 
ERROR Si version no existe. 
NO_IMPLEMENTADA Cuando aún no se implementó. Es el tipo de retorno por defecto. 
5) Mostrar todas las versiones de un archivo de forma jerárquica. 
TipoRet MostrarVersiones(Archivo a);
FORMATO: En primer lugar muestra el nombre del archivo. Después de una línea en blanco lista todos 
las versiones del archivo ordenadas por nivel jerárquico e indentadas según muestra el siguiente ejemplo 
(cada nivel está indentado por un tabulador). 
Ejemplo: 
CrearVersion(a, "1.2"); 
CrearVersion(a, "2");
CrearVersion(a, "1.2.1"); 
MostrarVersiones(a); 
Salida: 
curriculum.txt
1 
1.1 
1.2 
2 
1.2.1 
Si el archivo no contiene versiones se mostrará la siguiente salida. 
Salida: 
curriculum.txt 
No hay versiones creadas
Retornos posibles: 
OK Siempre retorna OK. 
ERROR No existen errores posibles. 
NO_IMPLEMENTADA Cuando aún no se implementó. Es el tipo de retorno por defecto.
Mostrar todas las modificaciones en el texto de una versión X, respecto a la versión padre de X.
TipoRet  MostrarCambios(Archivo a, char * version);
Esta función muestra los cambios que se realizaron en el texto de la version parámetro, sin incluir los 
cambios realizados en las versiones ancestras de la cual dicha versión depende.
FORMATO: En primer lugar muestra el nombre del archivo. Luego, separado por un guión se mostrará 
la version. Después de una línea en blanco lista todos los cambios realizados al texto. Cada cambio se 
muestra en una nueva línea. Si es una inserción comenzará con IL y si es un borrado con BL. Luego 
separado por un tabulador se mostrará el número de la línea modificada y, sólo en el caso de una 
inserción, luego de otro tabulador el texto insertado.
Ejemplo: 
MostrarCambios(a, "1"); 
Salida: 
curriculum.txt - 1
IL 1 Dirección: Rivera 1234
IL 2 Teléfono: 6111111
IL 1 Nombre: Juan Pérez
 
MostrarCambios(a, "1.1");
Salida: 
curriculum.txt – 1.1
IL 4 Estado Civil: Soltero 
BL 3 
BL 3 
Si la versión no contiene modificaciones se mostrará la salida indicada en el siguiente ejemplo. 
Ejemplo:
MostrarCambios(a, "2");
Salida: 
curriculum.txt – 2 
No se realizaron modificaciones 
Retornos posibles: 
OK Si se pudieron mostrar los cambios, aún cuando éstos sean inexistentes. 
ERROR Si version no existe. 
NO_IMPLEMENTADA Cuando aún no se implementó. Es el tipo de retorno por defecto.
muchas gracias. 


 
  




 Autor
 Autor
		


 En línea
									En línea
								

