Beruflich Dokumente
Kultur Dokumente
JAVA
// Una clase que representa un registro de informacin. import java.io.Serializable; public class RegistroCuentas implements Serializable { private int cuenta; private String primerNombre; private String apellidoPaterno; private double saldo;
// el constructor sin argumentos llama al otro constructor con valores predeterminados public RegistroCuentas() { this( 0, "", "", 0.0 ); }
// inicializar un registro public RegistroCuentas( int cta, String nombre, String apellido, double sald ) { establecerCuenta( cta ); establecerPrimerNombre( nombre ); establecerApellidoPaterno( apellido ); establecerSaldo( sald ); }
{ cuenta = cta; }
// establecer primer nombre public void establecerPrimerNombre( String nombre ) { primerNombre = nombre; }
// establecer apellido paterno public void establecerApellidoPaterno( String apellido ) { apellidoPaterno = apellido; }
3.-Cierre de archivos: Es la operacin mas importante en cualquier programa que maneje archivos, o se cierra el archivo como ultima instruccin del pograma o se vera el anuncio ABORT,RETRY,FAIL. 98, /s, scandisk 4.-Altas en archivo.- En este proceso se carga una clase en memoria con sus datos pertinentes y se graba la clase en el archivo en disco. 5.-Lectura de archivo.- En este proceso, se abre el archivo y se manda el registro de disco, a una clase en memoria para su procesamiento. 6.- Consulta de archivos: En este proceso se pretende desplegar todos los registros del archivo en disco a la pantalla, ya sea consola o mejor an, a una pagina html 7.-Busqueda en archivos: Una de las operaciones mas comunes, consiste en que el usuario pide toda la informacin de algun renglon en disco, porporcionando la informacin de algun campo, generalmente el campo clave de la clase. 8.- Filtros.- En este proceso el usuario esta interesado en algun conjunto de renglones con caracteristicas comunes (condicin), por ejemplo todos los alumnos de sisJAVA TEMA s, o todos los empleados que ganen mas de $500.00 pesos, o todos los clientes que sean de tijuana, etc 9.-Modificaciones de registros o archivos: Problema muy comun, donde los datos originales ya grabados se tienen que cambiar o actualizar, por ejemplo el nombre no era juan es juana, o la calificacin no es 100 es 20, etc. 10.- Bajas de registros: tambien muy comun este proceso,por ejemplo el alumno ya egreso, el cliente huyo, etc.
ARCHIVO SECUENCIAL EN C#
El tipo de acceso simple a un archivo de datos es el secuencial, un archivo que puede almacenar registros de cualquier magnitud. Cuando la informacin se escribe registro a registro, estos son colocados de uno en uno y cuando se leen se empieza por el primero y se contina hasta el ltimo. Este acceso utiliza dos archivos de texto en los que se escribe informacin desde el principio hasta el final y se lee igual que el secuencial. En cambio los archivos de texto no son los mas apropiados para almacenar grandes series de nmeros porque cada numero es almacenado como una secuencia byte.
Primero necesitamos saber que la clase Stream pertenece al namespace System.IO, debemos importar dicho namespace antes de comenzar. using System.IO; static void Main(string[] args) { string ruta = "c:\\archivo.txt"; StreamWriter escritor = new StreamWriter(ruta); escritor.WriteLine("Aqu- ira el texto que nosotros queremos"); escritor.Close();
StreamReader lector = new StreamReader(ruta); Console.WriteLine(lector.ReadToEnd()); lector.Close(); Console.ReadLine(); Mtodo StreamReader para leer un archivo de texto. Recuerden que siempre que utilizen un stream deben cerrarlo con el mtodo Close(); para que puedan ocupar dicho archivo y no est solo como solo lectura o que otro programa est utilizandolo.
private const string DIR_ARCHIVO = "c:\\archivo.txt"; Agregar una constante en donde ir la ruta del archivo.
if (File.Exists(DIR_ARCHIVO))
Si existe entonces leer el archivo, de lo contrario, lo crear: using (StreamWriter escritor = File.CreateText(DIR_ARCHIVO)) { escritor.WriteLine("Ejemplo de StreamWriter"); escritor.WriteLine("{0} {1} {2}", 21, 31.1, 000.334445); escritor.Close();
4.
<nombre>Maria </nombre>
5. <apellido>Torres </apellido> 6. </name> 7. <name codigo="cortiz"> 8. <nombre>Carlos </nombre> 9. <apellido>Ortiz </apellido> 10. </name> 11. </usuarios> Luego de tener nuestro archivo XML creado podremos crear nuestro cdigo en VB.NET Utilizando el XMLTextReader Este formato es muy sencillo y para leer el achivo XML debemos hacerlo secuencialmente, lnea por lnea. Texto Plano VB.NET: 1. Imports System.IO 2. Imports System.Xml 3. Module ParsingUsingXmlTextReader 4. Sub Main() 5. Dim m_xmlr As XmlTextReader 6. 'Creamos el XML Reader 7. m_xmlr = New XmlTextReader("C:\XMLPrueba.xml") 8. 9. 'Desabilitamos las lineas en blanco, 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 'ya no las necesitamos m_xmlr.WhiteSpaceHandling = WhiteSpaceHandling.NONE 'Leemos el archivo y avanzamos al tag de usuarios m_xmlr.Read() 'Leemos el tag usuarios m_xmlr.Read() 'Creamos la secuancia que nos permite 'leer el archivo While Not m_xmlr.EOF 'Avanzamos al siguiente tag m_xmlr.Read() 'si no tenemos el elemento inicial 'debemos salir del ciclo If Not m_xmlr.IsStartElement() Then Exit While
29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55.
End If 'Obtenemos el elemento codigo Dim mCodigo = m_xmlr.GetAttribute("codigo") 'Read elements firstname and lastname m_xmlr.Read() 'Obtenemos el elemento del Nombre del Usuario Dim mNombre = m_xmlr.ReadElementString("nombre") 'Obtenemos el elemento del Apellido del Usuario Dim mApellido = m_xmlr.ReadElementString("apellido") 'Escribimos el resultado en la consola, 'pero tambien podriamos utilizarlos en 'donde deseemos Console.WriteLine("Codigo usuario: " & mCodigo _ & " Nombre: " & mNombre _ & " Apellido: " & mApellido) Console.Write(vbCrLf) End While 'Cerramos la lactura del archivo m_xmlr.Close() End Sub End Module
Utilizando el XmlDocument Este formato es mas complejo y nos permite recorrer los nodos sin tener que utilizar una lectura secuencial. Definitivamente este formato es ms eficiente que el anterior principalmente para documentos XML muy grandes .
Texto Plano VB.NET: 1. Imports System.IO 2. Imports System.Xml 3. Module ParsingUsingXmlDocument 4. Sub Main() 5. Try 6. Dim m_xmld As XmlDocument 7. Dim m_nodelist As XmlNodeList 8. Dim m_node As XmlNode 9. 10. 'Creamos el "XML Document"
11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
m_xmld = New XmlDocument() 'Cargamos el archivo m_xmld.Load("C:\XMLPrueba.xml") 'Obtenemos la lista de los nodos "name" m_nodelist = m_xmld.SelectNodes("/usuarios/name") 'Iniciamos el ciclo de lectura For Each m_node In m_nodelist 'Obtenemos el atributo del codigo Dim mCodigo = m_node.Attributes.GetNamedItem("codigo").Value 'Obtenemos el Elemento nombre Dim mNombre = m_node.ChildNodes.Item(0).InnerText 'Obtenemos el Elemento apellido Dim mApellido = m_node.ChildNodes.Item(1).InnerText 'Escribimos el resultado en la consola, 'pero tambien podriamos utilizarlos en 'donde deseemos Console.Write("Codigo usuario: " & mCodigo _ & " Nombre: " & mNombre _ & " Apellido: " & mApellido) Console.Write(vbCrLf) Next Catch ex As Exception 'Error trapping Console.Write(ex.ToString()) End Try End Sub End Module
Delphi xe2
En Delphi los ficheros y archivos pueden ser de dos tipos: ficheros en formato ASCII o ficheros en formato binario y pueden, a su vez, organizarse de dos formas diferentes: en forma secuencial o en forma indexada. En un fichero secuencial todos los componentes del fichero se almacenan secuencialmente uno despus del otro. En este trabajo se aborda cmo se crean y utilizan en Delhi tanto los ficheros en formato ASCII como en formato binario organizados secuencialmente, ya que para almacenar datos con estructura indexada es mucho ms cmodo hacerlo usando bases de datos, las cuales Delphi maneja a la perfeccin.
Modo lectura. Se indica con la orden Reset. Modo escritura para aadir datos. Se indica con la orden Append. Modo reescritura para crear el fichero y si este exista con anterioridad sobrescribirlo. Se indica con la orden Rewrite.
1. Cerrar el fichero una vez concluido el proceso de lectura o escritura. Se indica con la orden CloseFile.
Ejemplo:Los siguientes procedimientos permiten crear el fichero Grupo, almacenar en l los nombres de los estudiantes que lo integran y recuperar luego el listado. Procedure CrearFichero; Var Datos : TextFile; begin AssignFile (Datos, 'Grupo.txt'); Rewrite (Datos); CloseFile (Datos); end; Procedure EscribirDatos (Nombre : String); Var Datos : TextFile; begin AssignFile (Datos, 'Grupo.txt'); Append (Datos); Writeln (Datos, Nombre); CloseFile (Datos); end; Procedure LeerDatos; Var Datos : TextFile; I : Integer;
begin AssignFile (Datos, 'Grupo.txt'); Reset (Datos); I := 1; While Not Eof (Datos) do begin Readln (Datos, Nombre[I]); Inc (I); end; CloseFile (Datos); end; Antes de usarlos, declare el arreglo Nombre de tipo String. La funcin Eof permite conocer si se lleg o no al final del fichero respondiendo True en caso positivo y False en caso contrario. Para conocer el nmero de registros que existen en un fichero, se puede utilizar la siguiente funcin: Function ContarRegistros : Integer; Var Cantidad : Integer; Datos : TextFile; Linea : String; begin Cantidad := 0; AssignFile (Datos, 'Grupo.txt');
Reset (Datos); While Not Eof (Datos) do begin Readln (Datos, Linea); Inc (Cantidad); end; CloseFile (Datos); ContarRegistros := Cantidad; end;
Datos : File of TListado; begin AssignFile (Datos, Informacion.fic); Rewrite (Datos); CloseFile (Datos); end; Procedure EscribirDatos (NuevaInformacion : TListado); Var Datos : File of TListado; begin AssignFile (Datos, Informacion. fic); Reset (Datos); Seek (Datos,FileSize (Datos)); Write (Datos, NuevaInformacion); CloseFile (Datos); end; Procedure LeerDatos; Var Datos : File of TListado; I : Integer; begin AssignFile (Datos, Informacion. fic); Reset (Datos);
For I := 1 to FileSize (Datos) do Read (Datos, Listado [I]); CloseFile (Datos); end; Antes de usarlos declare el tipo de dato TListado. Type TListado = Record Nombre : String [50]; NumeroIdentidad : Real; end; y la variable Listado como un arreglo de tipo Tlistado. La funcin Seek permite recorrer el fichero avanzando el puntero dentro del mismo. Para copiar el contenido de un fichero en otro, se puede utilizar el siguiente procedimiento: Procedure CopiarFichero; Var FicheroOrigen, FicheroDestino : File of TListado; Contenido : TListado; begin AssignFile (FicheroOrigen, Informacion.fic'); Reset (FicheroOrigen); AssignFile (FicheroDestino, 'Copia.fic'); Rewrite (FicheroDestino); While Not Eof (FicheroOrigen) do
begin Read (FicheroOrigen, Contenido); Write (FicheroDestino, Contenido); end; CloseFile (FicheroOrigen); CloseFile(FicheroDestino); end;
Delphi XE.
Declaracin e inicializacin de variables
Para la declaracin de variables os valemos de las siguientes sintaxis: var <Nombre de variable> : <Tipo de variable> <Nombre de variable 1>, <Nombre de variable 2>, <Nombre de variable n> : <Tipo de variable> Para inicializar las variables recin creadas: <Nombre de Variable> := <Valor>
Orden de Precedencia
Operadores
Races o Potencias
Multiplicaciones o Divisiones
Sumas o Restas
Si hay 2 o ms operadores del mismo Orden entonces se usa la asociatividad por la izquierda
Bloque de Instrucciones; End Else Begin Bloque de Instrucciones; End Uso del Case Case <variable> of Constante1: Begin Instrucciones; End; Constante2: Begin Instrucciones; End; Constante3: Begin Instrucciones; End; Else Begin Instrucciones; End; Iteracin Ciclo For For <variable> := valor inicial To valor final Do Begin Instrucciones; End
Ciclo Repeat Until Repeat Instrucciones; *Instruccin de salida del Ciclo; Until (Condicin);
<Nombre de la Funcion> := Instruccin; Aqu ocurre el famoso return de las funciones End; Este esquema de la definicin y declaracin se hace en la seccin de VAR del programa principal. Uso. Simplemente en el programa principal se hace el llamado a funcin.
Ahora solo falta definir las funciones y procedimientos del Object Persona, Observe que un atributo tiene la palabra reservada de Private, esta palabra hace que el atributo solo pueda ser accesado o modificado por medio de mtodos del propio Objeto. El primer atributo se asume que es un atributo pblico es decir que puede ser modificado y/o accesado sin necesidad de mtodos. A continuacin se definen los procedimientos y funciones del objeto.
var procedure Persona.init; begin nombre:=name;
setApellido(apell); end; procedure Persona.nombreCompleto; begin writeln(Nombre,' ',getApellido); end; procedure setApellido; begin apellido := apel; end; function Persona.getApellido:String; begin getApellido:= apellido; end;
La definicin de las funciones y procedimientos se hace en la seccin var del main y la diferencia est en que el nombre de la funcin o del procedimiento siempre es precedido por el Nombre del objeto ms punto. Ejemplo: Persona.setApellido Persona.nombreCompleto Otro aspecto a destacar es que tanto las funciones como los procedimientos, en el momento de definirlos no es necesario copiar la lista de parmetros que necesiten y en el caso de las funciones no es necesario escribe : <tipo que retornan> porque ya estn encapsulados en el type. Ahora para las herencias sencillamente donde se crea es esqueleto en el Type se hace lo siguiente:
Type Padre = Object {esqueleto de la clase Padre}; end; Hijo = Object (Padre) {esqueleto de la clase Hijo}; end; Var {definiciones de los procedimientos y funciones de Padre}; {definiciones de los procedimientos y funciones de Hijo};
Una recomendacin es que los mtodos comunes entre el padre y el hijo se deben declarar y definir en el padre, porque esos mtodos se heredan de manera implcita en el hijo, dejando solamente la tarea de declarar y definir los mtodos nicos del hijo. Por ltimo falta mencionar la declaracin del polimorfismo, bsicamente es una herencia mltiple de un padre a varios hijos, ac se usa la palabra reservada virtual. Este hace que los mtodos (procedimientos y funciones) comunes entre el padre y el hijo puedan sobrescribirse. Bsicamente permite que si hay un padre que hereda a varios hijos un mtodo en comn pero que cada mtodo segn el hijo funciona de manera diferente, puedan ser definidos en cada hijo usando siempre el mismo nombre.