Contenido de este post:
- Clase y Campos Encapsulados
- Métodos de Acceso y Asignación
- Método Principales
Clase y Campos Encapsulados
Teniendo en cuenta la estructura de archivos descrita en la parte final del
primer post, vamos a crear una carpeta llamada
CLASES y dentro de esta carpeta vamos a agregar una clase llamada
MiNotePadAcciones.cs. Esta será una clase
publica y
estática para poder acceder a sus métodos sin necesidad de crear un nuevo objeto e instanciarla. Además, para las funciones de manejo de archivos que realizará, se deben usar las clases
System.Diagnostics y
System.IO.
A continuación, declaramos los campos de clase encapsulados:
Titulo: Almacenará un string con la ruta y nombre del archivo abierto. Este se mostrará en la barra de título de la aplicación.
Estado: Almacenará un string con el estado del archivo abierto. Los estados son:
- Sin cambios: Cuando un archivo es abierto pero no se le hace ningún tipo de modificación.
- Modificado: Cuando el archivo ha sido modificado y tiene cambios pendientes por guardar. Este estado permite validar si es posible abrir otro archivo en la misma instancia de la aplicación o si al cerrar la aplicación no se han guardado los cambios.
- Guardado: Los cambios realizados han sido guardados. (El contenido del archivo original ha sido sobrescrito).
RutaRecibida: Almacenará un string con la ruta del archivo abierto, ya sea que se abra desde la aplicación o desde el explorador de archivos de Windows.
ArchivoOriginal: Almacenará un string con una copia del archivo abierto con el fin de compararlo con el contenido cargado en el RichTextBox (TextBox) y saber si se han realizado cambios.
ArchivoLeido: Almacenará un string con el contenido del archivo abierto y lo mostrará en el RichTextBox (TextBox).
Métodos de Acceso y Asignación
GetTitulo: Retorna el valor del campo Titulo:
GetArchivoLeido: Retorna el valor del campo ArchivoLeido:
SetEstado: Establece el valor del campo Estado. Para esto, recibe como parámetro un entero ( 0, 1 o 2) y según este valor se asigna el texto correspondiente al estado:
GetEstado: Retorna el valor del campo Estado:
SetArchivoOriginal: Establece el contenido del campo ArchivoOriginal. Para esto, se usa la clase File del sistema para leer el contenido del archivo al que lleva la ruta recibida por parámetro. También se asigna aquí valor para el campo Titulo:
GetArchivoOriginal: Retorna el valor del campo ArchivoOriginal:
GetRutaRecibida: Retorna el valor del campo RutaRecibida:
SetRutaRecibida: Recibe por parámetro la ruta del archivo y la asigna como valor al campo RutaRecibida:
Métodos Principales
Abrir: El método Abrir es muy sencillo. Simplemente se crea un objeto nuevo a partir de la clase del sistema OpenFileDialog. Luego este se muestra y al mismo tiempo se valida si el usuario hace clic en Aceptar del cuadro de dialogo Abrir. Si es así, se asigna a la variable Ruta la ruta del archivo abierto y su nombre. Después con esta ruta se abre el archivo (usando la clase del sistema File) y su contenido se almacena en ArchivoLeido. También se asignan los valores a los campos RutaRecibida, Titulo y ArchivoOriginal. Usando el método SetEstado se establece el estado del archivo, el cual será 0 (Sin cambios.):
Guardar: El método Guardar realiza dos validaciones principales. Primero; si se está guardando un archivo existente, entonces se sobrescribe su contenido. Y segundo; si el archivo es nuevo, entonces se muestra el cuadro de dialogo Guardar como y se crea un archivo nuevo. Para cada caso se asignan los respectivos valores a los campos de la clase.
Nuevo: El método Nuevo simplemente ejecuta una nueva instancia de la aplicación usando la clase del sistema Process:
Buscar: El método Buscar es una función que recibe como parámetros el texto a buscar, la posición del documento desde la cual debe empezar la búsqueda y el control RichTextBox donde se realizará dicha búsqueda. Simplemente se valida que el texto a buscar tenga una longitud mayor a cero (que no sea una cadena vacía) y que la posición inicial sea un valor positivo. Esta posición se obtiene del punto del documento en el cual se encuentra el cursor.
Esta función tiene la restricción de que solo busca de arriba hacia abajo. El método None de la clase RichTextBoxFinds permite que se encuentren resultados sin tener en cuenta coincidencias exactas de mayúsculas y minúsculas.
Al finalizar, la función devuelve un entero que representa la posición en el documento en la cual el texto buscado se encuentra:
Si quieres apoyarme económicamente para que siga creando contenido y podamos seguir aprendiendo juntos, en Ko-Fi puedes hacerlo.
¡Sí, quiero apoyarte!
Deja un comentario: