Serie ficheros virtuales 

 

 

 

 

C Ficheros Virtuales

 

 

Prefacio

 

 

Introducción

 

 

 

A) De C ANSI a Visual C++

 

 

A.I Desarrollo y fundamentos

 

 

A.I.1 Punteros e instrucciones de asignación de memoria en C ANSI

 

A.I.1.1 Introducción a los punteros

A.I.1.2 Punteros genéricos (void *)

A.I.1.3 Punteros unidimensionales

A.I.1.4 Algunas consideraciones prácticas

       - Sobre los tipos de puntero utilizados en los parámetros

       - Sobre la reserva de memoria y su liberación

       - Sobre los errores de asignación de memoria

       - Sobre el ámbito de la memoria

 

A.I.1.5 Punteros bidimensionales

A.I.1.6 Dimensiones superiores

 

 

A.I.2 Estructuras

 

A.I.2.1 Definición

A.I.2.2 Almacenamiento y recuperación de información en estructuras

A.I.2.3 Tamaño

A.I.2.4 Orden. La función SRRCAL_lLexi

 

 

A.I.3 Caché

 

A.I.3.1 Concepto

A.I.3.2 Caché lineal

A.I.3.3 Consideraciones

A.I.3.4 Caché con ficheros virtuales

 

 

A.I.4 Ficheros virtuales

 

A.I.4.1 Introducción

A.I.4.2 Del caché a los ficheros virtuales

A.I.4.3 Síntesis del procedimiento de caché

A.I.4.4 La asignación dinámica de memoria

A.I.4.5 El mecanismo de búsqueda

A.I.4.6 Aspectos derivados de la búsqueda dicotómica

A.I.4.7 El esquema central de los ficheros virtuales

 

 

A.I.5 El núcleo. SRRCM como implementación de caché

 

A.I.5.1 Introducción

A.I.5.2 Instrucciones básicas

A.I.5.3 Esquema de funcionamiento del mecanismo de inserción dicotómica

A.I.5.4 La inserción dicotómica en índice

A.I.5.5 Un programa ejemplo de emulación del mecanismo de inserción dicotómica en índice

A.I.5.6 La implementación del WRITE. La extensión automática de la memoria unidimensional

A.I.5.7 La implementación del CHAIN

A.I.5.8 La implementación del READ

A.I.5.9 La implementación del UPDATE

A.I.5.10 La implementación del DELETE

A.I.5.11 La implementación del REORGANIZE

A.I.5.12 La extensión automática de la memoria bidimensional

 

 

A.I.6 Extensión. SRRCN como implementación de fichero virtual

 

A.I.6.1 Introducción

A.I.6.2 Fichero de soporte interno de la implementación

A.I.6.3 Las funciones de posicionamiento y lectura por clave

A.I.6.4 Implementación

 

 

A.I.7 Extensión. SRRCW como implementación de base de datos virtual

 

A.I.7.1 Introducción. Las nuevas características de SRRCW frente a SRRCM

A.I.7.2 Generación de un fichero virtual. La función NEW

A.I.7.3 Arquetipo de las funciones clásicas de SRRCM en SRRCW. La función READ

A.I.7.4 Funciones específicas por la aparición de lógicos. La función CRTLF

A.I.7.5 La función DELETE

A.I.7.6 Las operaciones globales. CPY, DUP, SAVF y RSTF

A.I.7.7 La emulación de pilas

A.I.7.8 La emulación de colas

A.I.7.9 Un ejemplo de descarga de tareas de orden implícito. SRRCS_ACU

A.I.7.10 Un ejemplo de paso implícito de información

A.I.7.11 Ampliación de componentes

 

 

A.I.8 Extensión. Alternativa C++. La clase vFile

 

A.I.8.1 Exposición de la clase vFile

A.I.8.2 Implementación

 

 

A.I.9 Extensión. Alternativa RPG. El programa de servicio SRAGM

A.I.9.1 Presentación de SRAGM

A.I.9.2 Implementación

A.I.9.3 Tipología de los parámetros

A.I.9.4 SRAGF_ACU. La versión RPG de SRRCS_ACU

 

 

A.I.10 Apunte de desarrollos adicionales (En la línea C ANSI)

 

A.I.10.1 Apunte de desarrollos

A.I.10.2 Estrategia del cambio


                                                                                                        
____________

 

A.II Ejemplos

 

 

A.II.1 Cuadrados mágicos y sudokus

 

A.II.1.0 Introducción

A.II.1.1 Cuadrados latinos y mágicos

A.II.1.2 Algoritmo para construir cuadrados mágicos

A.II.1.3 Sudokus

A.II.1.4 La estructura de soporte

A.II.1.5 La implementación núcleo de los cuadrados latinos y mágicos

A.II.1.6 La implementación específica de los cuadrados mágicos

A.II.1.7 Resumen del procedimiento sudoku

A.II.1.8 Ejemplo de paso de los sudokus triviales a los usuales

A.II.1.9 Implementación

A.II.1.10 Código agregado para presentación lúdica

 

 

A.II.2 El juego de la vida

 

A.II.2.0 Introducción

A.II.2.1 Reglas del juego de la vida de Jhon H.Conway

A.II.2.2 Definición de la estructura de soporte de la implementación

A.II.2.3 Implementación de la evolución generacional

A.II.2.4 Implementación de controles de visualización

 

 

A.II.3 Multiagenda telefónica

 

A.II.3.1 Presentación

A.II.3.2 Interfaces

A.II.3.3 Construcción detallada de un interfaz “dialog-based” simple

A.II.3.4 Código asociado

 

A.II.3.5 La implementación de la lista de agendas con vFile

 A.II.3.5.1 La estructura de soporte

 A.II.3.5.2 La carga desde el fichero de respaldo

 A.II.3.5.3 La edición de la lista de agendas

 A.II.3.5.4 La descarga al fichero de respaldo

 

A.II.3.6 La implementación de una agenda individual con vFile

 A.II.3.6.1 La estructura de soporte

 A.II.3.6.2 La carga desde la vista principal y desde el lógico

 

 

A.II.4 Totales y porcentajes

 

A.II.4.1 Presentación

A.II.4.2 Interfaz

A.II.4.3 Las estructuras de soporte de la implementación

A.II.4.4 Implementación del interfaz PSRRCT y de los servicios de la DLL SRRCT

 

 

A.II.5 Cuadre de sumas y redondeos

 

A.II.5.1 Presentación

A.II.5.2 Interfaz

A.II.5.3 Las estructuras de soporte de la implementación

A.II.5.4 Implementación del interfaz PSRRCR y de los servicios de la DLL SRRCR

 

 

 

A.II.6 Calculadora hipotecaria

 

A.II.6.1 Presentación

A.II.6.2 Interfaz

 

A.II.6.3 Formulación financiera de los servicios de SRRCH

 

    Cálculo del valor final de una renta postpagable

  Cálculo del valor actual de una renta postpagable

  Cálculo del término periódico de una renta renta postpagable necesario para obtener el valor final sni = 1

  Cálculo del término periódico de una renta renta postpagable necesario para obtener el valor actual ani = 1

  Cálculo del número de periodos de la renta conociendo i & sni

  Cálculo del número de periodos de la renta conociendo i & ani

  Cálculo del tanto de interés

 

 

A.II.6.4 Estructura de soporte del cuadro de amortización

 

A.II.6.5 Implementación

 

  A.II.6.5.1 Implementación de la formulación financiera

  A.II.6.5.2 Implementación del cuadro de amortización y del cuadro de amortización ajustado

  A.II.6.5.3 Implementación del cálculo del tanto de interés

 

 

 

A.II.7 Calculadora de precisión extendida

 

A.II.7.1 Presentación

A.II.7.2 Interfaz

A.II.7.3 Las estructuras de soporte de la implementación

 

A.II.7.4 Implementación

 

 A.II.7.4.1 Esquema. Los servicios SRRCE, SRRCEA y la pantalla PSRRCE

 A.II.7.4.2 Suma

 A.II.7.4.3 Multiplicación

 A.II.7.4.4 Resta

 A.II.7.4.5 División

 A.II.7.4.6 Comparación de ítems

 A.II.7.4.7 La función exp. El desarrollo en serie

 A.II.7.4.8 La función PI

 A.II.7.4.9 Otras funciones. Ramdon, Mod, Frac y Floor

 

 A.II.7.4.10 El servidor SRRCEA y la presentación en PSRRCE


    
A.II.7.4.10.1 Prototipos del programa de servicio SRRCEA
  A.II.7.4.10.2 Enlace con los botones del interfaz Psrrce. Ejemplo: El botón suma
  A.II.7.4.10.3 El código enlazado. Ejemplo: El código de SRRCEA_SUMA
  A.II.7.4.10.4 Rutinas complementarias de conversión de cadena a vector extendido y viceversa

 

 A.II.7.4.11 La gestión de las consultas históricas

 

 

A.II.7.5 El analizador de expresiones

 

 A.II.7.5.1 Prototipos de la funciones del analizador de expresiones

 A.II.7.5.2 Algoritmo de conversión de expresiones infijas a postfijas

 A.II.7.5.3 Implementación

 A.II.7.5.4 Algoritmo de valoración de expresiones postfijas

 A.II.7.5.5 Implementación

 

A.II.7.6 Cambio de marco de referencia

A.II.7.7 La creación paso a paso de la DLL SRRCE

 

 
                                                                                                        
____________

 


B) De C ANSI a la familia Visual NET

 

 

B.I COM Ficheros virtuales

 

 

B.I.1 El modelo COM

 

 

B.I.2 COM Ficheros virtuales. El servicio COMw

 

B.I.2.1 Introducción

B.I.2.2 Relación de métodos de la clase COMw

B.I.2.3 La creación del componente COMw

B.I.2.4 El programa interfaz PruebasV

B.I.2.5 Uso de COMw en Visual Basic para Aplicaciones (VBA) de Excell y Office

 

 

B.I.3 El servicio COMmagic para cuadrados mágicos y sudokus

 

B.I.3.1 El servicio SRMagic como sintetización algorítmica del programa PMagic de generación de cuadrados mágicos y  sudokus

 

 B.I.3.1.1 Esquema de implementación

 B.I.3.1.2 Rutina de generación principal

 B.I.3.1.3 Subrutina de generación de cuadrados mágicos

 

 B.I.3.1.4 Subrutina de generación de sudokus

  B.I.3.1.4.1 Generación de cuadrados latinos mediante un mecanismo de muestreo sin repetición

  B.I.3.1.4.2 Fichero virtual para el mecanismo del muestreo sin repetición

  B.I.3.1.4.3 Rutinas auxiliares generadoras de números aleatorios

 

 B.I.3.1.5 Rutinas de establecimiento del estado de visualización inicial

 B.I.3.1.6 Rutinas de control de visualización y acceso a datos

 

B.I.3.2 El servicio COMmagic como interfaz de SRMagic

 

 

 

B.I.4 El servicio COMjvida para el juego de la vida

 

B.I.4.1 El servicio SRVida como extracción algorítmica del programa PVida de generación de evoluciones del juego de la vida  de Jhon H.Conway

 

 B.I.4.1.1 Esquema de implementación

 B.I.4.1.2 Rutinas de inicialización

 B.I.4.1.3 Rutina de evolución generacional

 

 

B.I.4.2 El servicio COMjvida como interfaz de SRVida

 


                                                                                                        
____________

 

 

B.II NET Ficheros virtuales

 

 

B.II.1 El modelo NET

 

 

B.II.2 NET Ficheros virtuales. Las clases wFile y vbFile

 

B.II.2.1 Introducción

B.II.2.2 La implementación de la clase wFile

B.II.2.3 Limitaciones de uso de la clase wFile en .Net

B.II.2.4 La implementación de la clase vbFile para uso en VisualBasic.Net

B.II.2.5 La clase AlfaConv, núcleo de soporte de la clase vbFile

B.II.2.6 Los servicios de SRAlfaConv, núcleo de soporte de la clase AlfaConv

B.II.2.7 Notas para el enlace de compilación de AlfaConv con SRAlfaConv

 

 

B.II.3 La clase CMagic para cuadrados mágicos y sudokus

 

B.II.3.1 Introducción

B.II.3.2 La clase CMagic como interfaz del servicio SRMagic, extracción algorítmica del programa PMagic de generación
         de cuadrados mágicos y sudokus

B.II.3.3 Lista completa de métodos de la clase CMagic

B.II.3.4 El programa de presentación en VisualBasicMagic

B.II.3.5 Ampliación de componentes

 

 

B.II.4 La clase CJvida para el juego de la vida

 

B.II.4.1 Introducción

B.II.4.2 La clase CJvida como interfaz del servicio SRJvida, extracción algorítmica del programa PJvida de generación
         de poblaciones del juego de la vida

B.II.4.3 Lista completa de métodos de la clase CJvida

B.II.4.4 El programa de presentación en VisualBasicJvida

 

 

B.II.5 Apunte de desarrollos adicionales (En la línea NET)



                                                                                                         ____________


 

C) Apéndices

 

 

C.1 Utilidades

 

C.1.1 El programa de servicio SRRCU Utilidades generales

 C.1.1.1 Introducción. La búsqueda lineal y dicotómica

 C.1.1.2 La resolución de ecuaciones. Métodos Newton y Cuasi-Newton

 

 C.1.1.3 Implementación

  C.1.1.3.1 Un ejemplo numérico de resolución con el algoritmo Müller

  C.1.1.3.2 Implementación del algoritmo Müller

 

C.1.2 El programa de servicio SRRCF Utilidades para cálculo financiero

C.1.3 El programa de servicio SRRCAL Utilidades de conversión alfanumérica

C.1.4 SRFECHA Servicios de cálculo de fechas y estampillados

 

 

C.2 Manuales de usuario

 

C.2.1 Manual del usuario del programa de servicio SRRCW

 

C.2.1.1 Lista de procedimientos por orden alfabético

C.2.1.2 Lista de procedimientos por grupos funcionales

 

C.2.1.3 Detalle de procedimientos

 C.2.1.3.1 Estructura de soporte

 C.2.1.3.2 Un esquema resumen de uso típico

           -Definir las estructuras de soporte de los ficheros

           -Crear los ficheros

           -Establecer los bucles de proceso

             Carga, lectura, actualización, salida, etc.

           -Cerrar la aplicación

 

 C.2.1.3.3 Funciones de gestión de objetos

  C.2.1.3.3.1 Creación de ficheros. NEW, NOW y RESIZE

  C.2.1.3.3.2 CRTLF. Creación de lógicos (Vías de acceso suplementarias)

  C.2.1.3.3.3 CLRF. Vaciado de datos

  C.2.1.3.3.4 ERASE. Eliminación completa de un archivo o una base de datos

  C.2.1.3.3.5 CLOSE. Cierre de la aplicación

 

 C.2.1.3.4 Funciones de caché básico. Núcleo del sistema

  C.2.1.3.4.1 Grupo CHAIN (Recuperación de datos por clave)

  C.2.1.3.4.2 Grupo WRITE (Grabación de datos)

 

 C.2.1.3.5 Funciones derivadas directas

  C.2.1.3.5.1 Grupo UPDATE. Actualización de ítem por clave

  C.2.1.3.5.2 Grupo DELETE. Eliminación de ítem por clave

 

 C.2.1.3.6 Funciones derivadas intrínsecamente del orden

  C.2.1.3.6.1 Grupo posicionamiento (SETLL...)

  C.2.1.3.6.2 Grupo lectura (READ...)

 

 C.2.1.3.7 Extensiones de base de datos. CPY y DUP

 C.2.1.3.8 Persistencia de datos. RSTF y SAVF

 C.2.1.3.9 Grupo informativo y de control. INF, NAME y NID

 

 C.2.1.3.10 Pilas y colas

  C.2.1.3.10.1 Grupo emulación pilas (LIFO)

  C.2.1.3.10.2 Grupo emulación colas (FIFO)

 

 

C.2.2 Manual del usuario de la clase wFile

 

C.2.2.1 Lista de métodos por orden alfabético

C.2.2.2 Lista de métodos por grupos funcionales

 

C.2.2.3 Detalle de métodos

 C.2.2.3.1 Estructura de soporte

 C.2.2.3.2 Métodos de gestión de objetos

  C.2.2.3.2.1 Creación de ficheros. wFile, NEW, NOW y RESIZE

  C.2.2.3.2.2 CRTLF. Creación de lógicos

  C.2.2.3.2.3 CLRF. Vaciado de datos

  C.2.2.3.2.4 ERASE. Eliminación completa

  C.2.2.3.2.5 CLOSE. Cierre de la aplicación

 

 C.2.2.3.3 Funciones de caché básico. Núcleo del sistema

   C.2.2.3.3.1 Grupo CHAIN (Recuperación de datos por clave)

   C.2.2.3.3.2 Grupo WRITE (Grabación de datos)

 

 C.2.2.3.4 Funciones derivadas directas

  C.2.2.3.4.1 Grupo UPDATE. Actualización de ítem por clave

  C.2.2.3.4.2 Grupo DELET. Eliminación de ítem por clave

 

 C.2.2.3.5 Funciones derivadas intrínsecamente del orden

  C.2.2.3.5.1 Grupo posicionamiento (SETLL...)

  C.2.2.3.5.2 Grupo lectura (READ...)

  C.2.2.3.5.3 Ejemplos de posicionamiento y lectura

   C.2.2.3.5.3.1 El posicionamiento SETLL y la lectura por clave igual READE

   C.2.2.3.5.3.2 El posicionamiento SETGT y la lectura por clave igual hacia atrás READPE

   C.2.2.3.5.3.3 El posicionamiento SETGTT y la lectura secuencial READ

 

 C.2.2.3.6 Extensiones de base de datos. CPY y DUP

 C.2.2.3.7 Persistencia de datos. RSTF y SAVF

 C.2.2.3.8 Grupo informativo y de control. INF, NAME y NID

 

 C.2.2.3.9 Grupo emulación pilas (LIFO)

  C.2.2.3.9.1 El programa de muestra PruebasWpila

  C.2.2.3.9.2 Creación de pilas. NEW y LIFO_NEW

  C.2.2.3.9.3 Aplicación de RSTF a una pila

  C.2.2.3.9.4 El desapilado. LIFO_READ

  C.2.2.3.9.5 El apilado. LIFO_WRITE

 

 C.2.2.3.10 Grupo emulación colas (FIFO)

  C.2.2.3.10.1 El programa de muestra PruebasWcola

  C.2.2.3.10.2 Creación de colas. NEW y FIFO_NEW

  C.2.2.3.10.3 Aplicación de RSTF a una cola

  C.2.2.3.10.4 El desencolado. FIFO_READ

  C.2.2.3.10.5 El encolado. FIFO_WRIT

 

 

C.2.3 Manual del usuario de la clase vbFile

 

C.2.3.1 Lista de procedimientos por orden alfabético

C.2.3.2 Lista de procedimientos por grupos funcionales

C.2.3.3 Detalle de procedimientos (Por grupos funcionales)

 

 C.2.3.3.1 Funciones de gestión de objetos

  C.2.3.3.1.1 Creación de ficheros. vbFile, NEW, NOW y RESIZE

  C.2.3.3.1.2 CRTLF. Creación de lógicos (Vías de acceso suplementarias)

  C.2.3.3.1.3 CLRF. Vaciado de datos

  C.2.3.3.1.4 ERASE. Eliminación completa de un archivo o una base de datos

  C.2.3.3.1.5 CLOSE. Cierre de la aplicación

 

 C.2.3.3.2 Funciones de caché básico. Núcleo del sistema

  C.2.3.3.2.1 Grupo CHAIN (Recuperación de datos por clave). CHAIN y VER

  C.2.3.3.2.2 Grupo WRITE (Grabación de datos)

 

 C.2.3.3.3 Funciones derivadas directas

  C.2.3.3.3.1 Grupo UPDATE. Actualización de ítem por clave

  C.2.3.3.3.2 Grupo DELET. Eliminación de ítem por clave

 

 C.2.3.3.4 Funciones derivadas intrínsecamente del orden

  C.2.3.3.4.1 Grupo posicionamiento (SETLL...)

  C.2.3.3.4.2 Grupo lectura (READ...)

 

 C.2.3.3.5 Extensiones de base de datos. CPY y DUP

 C.2.3.3.6 Persistencia de datos. RSTF y SAVF

 C.2.3.3.7 Grupo informativo y de control. INF, NAME y NID

 

 C.2.3.3.8 Pilas y colas

  C.2.3.3.8.1 Grupo emulación pilas (LIFO)

  C.2.3.3.8.2 Grupo emulación colas (FIFO)

 

 

C.3 Relación de programas de servicio (DLL) soporte de los ficheros virtuales

 

C.4 Relación de programas de servicio auxiliares utilizadas por SRRCW y wFile

 

 

C.5 Relación de programas de muestra desarrollados en el libro

 

 

C.6 Bibliografía

 

 

C.7 Puesta en marcha

 

C.7.1 Notas para la puesta en marcha

C.7.2 Notas para acceso a los fuentes principales

 

 


                                                                                                        
____________



Volumen II

C Net Ficheros Virtuales

                                                                                                         ____________