• Jueves 28 de Marzo de 2024, 11:46

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Luciano9

Páginas: [1]
1
C/C++ / Re: Leer numeros
« en: Martes 6 de Octubre de 2009, 18:27 »
Por ahí cuando dice "REAL" se refiere al conjunto de números reales R... pero en programación decir real = float = decimal no?

Citar
NUMERO REAL
"El que se expresa por un número entero o decimal".

2
C/C++ / Re: Funcion Alta, estructuras.
« en: Jueves 1 de Octubre de 2009, 17:36 »
Me maree, qué tiene que ver eso con las etiquetas de código?

:

3
C/C++ / Re: array y puntero
« en: Lunes 28 de Septiembre de 2009, 15:15 »
Bue no sería algo asi?:

int array[30];

int *p=array;

y asi, no puedo estar tan equivocado...

4
C/C++ / Re: array y puntero
« en: Domingo 27 de Septiembre de 2009, 22:45 »
int *array[3];

array++ o array-- aumenta o disminuye el puntero.

5
C/C++ / Re: Funcion Alta, estructuras.
« en: Sábado 26 de Septiembre de 2009, 19:14 »
se, postie y no vi nada JEJEJ....

6
C/C++ / Re: Calculadora funciones seno, coseno, tangente!
« en: Sábado 26 de Septiembre de 2009, 19:01 »
Código: Text
  1. cmath (math.h)  header
  2. C numerics library
  3.  
  4. cmath declares a set of functions to compute common mathematical operations and transformations:
  5.  
  6. Trigonometric functions:
  7.  
  8. cos  Compute cosine (function)
  9. sin  Compute sine (function)
  10. tan  Compute tangent (function)
  11. acos     Compute arc cosine (function)
  12. asin     Compute arc sine (function)
  13. atan     Compute arc tangent (function)
  14. atan2    Compute arc tangent with two parameters (function)
  15.  
  16.  
  17. Hyperbolic functions:
  18. cosh     Compute hyperbolic cosine (function)
  19. sinh     Compute hyperbolic sine (function)
  20. tanh     Compute hyperbolic tangent (function)
  21.  
  22.  
  23. Exponential and logarithmic functions:
  24. exp  Compute exponential function (function)
  25. frexp    Get significand and exponent (function)
  26. ldexp    Generate number from significand and exponent (function)
  27. log  Compute natural logarithm (function)
  28. log10    Compute common logarithm (function)
  29. modf     Break into fractional and integral parts (function)
  30.  
  31.  
  32. Power functions
  33. pow  Raise to power (function)
  34. sqrt     Compute square root (function)
  35.  
  36.  
  37. Rounding, absolute value and remainder functions:
  38. ceil     Round up value (function)
  39. fabs     Compute absolute value (function)
  40. floor    Round down value (function)
  41. fmod     Compute remainder of division (function)
  42.  

7
C/C++ / Re: Tengo duda en hacer este programa en C++
« en: Sábado 26 de Septiembre de 2009, 18:59 »
el .h es para compiladores mas viejos, ni lo mires, pero es el que tengo a mano jajaj

8
C/C++ / Re: Funcion Alta, estructuras.
« en: Sábado 26 de Septiembre de 2009, 18:57 »
Código: C
  1. #include <stdio.h>
  2. #include <string.h>
  3. #pragma warning (disable:4996)
  4. #define MAX 100
  5. #define CANT 1000
  6.  
  7.  
  8. typedef struct treg{
  9. int dia;
  10. int mes;
  11. int anio;
  12. char nyap [MAX];
  13. int doc;
  14.  
  15. };
  16.  
  17. int menu();
  18. void opcion(int opc,int cant,treg agenda, FILE *arch);
  19. void alta (treg agenda,int cant);
  20.  
  21. int main (){
  22. FILE *arch;
  23. treg agenda[5];
  24. int opc=0, cant=0;
  25.  
  26.     opc=menu();
  27.     opcion(opc,cant,agenda[CANT],arch);
  28.     return 0;
  29. }
  30.  
  31. int menu (){
  32. int op;
  33.     printf("nnn1- Alta personasn2- Baja personasn3- Verificar si el primer nombre es capicuan4- Imprimir datos personan5- Guardar persona en un archivon6- Modificar personan7- Ordenar por Apellidon8- SalirnnElija la Opcion desada:n");
  34.     scanf("%d",&op);
  35.     return op;
  36. }
  37.  
  38. void opcion(int op,int cant,treg agenda, FILE *arch){
  39.     while(op!=8){
  40.         if(op==1){
  41.         alta(agenda,cant);
  42.     }
  43. op=menu();
  44. }
  45.  
  46.  
  47.  
  48.  
  49.  
  50. }
  51. void alta (treg agenda, int cant){
  52. int i;
  53.     while(cant<CANT || i!=-1){
  54.     puts("Nombre y Apellido:n");
  55.     gets(agenda.nyap);
  56.     printf("Numero de documento:n");
  57.     scanf("%d",agenda.doc);
  58.     printf("Fecha de Nacimiento:n");
  59.     printf("dia:n");
  60.     scanf("%d",agenda.dia);
  61.     printf("mes:n");
  62.     scanf("%d",agenda.mes);
  63.     printf("anio:n");
  64.     scanf("%d",agenda.anio);
  65.  
  66.     printf("Presione 1 para continuar, o -1 para finalizarn");
  67.     scanf("%d",&i);
  68.     cant=cant+1;
  69.     }
  70.  
  71. }
  72.  
Si te fijas, ahí compila... pero de todas formas la lógica no está funcionando muy bien que digamos.
No entiendo muy bien tu programa y no tengo mucho tiempo ahora, pero te doy un consejo. Identá bien las cosas y comentá un poco que hacen tus funciones ya que sino hay que ser un dios para entender lo que vos quisiste pensar!

Saludos espero que te sirva, ahora fijate como arreglarlo :P

9
C/C++ / Re: Tengo duda en hacer este programa en C++
« en: Sábado 26 de Septiembre de 2009, 18:42 »
Código: C
  1. #include <iostream.h>
  2. #include <math.h>
  3. #include <iomanip.h>
  4. #include <stdlib.h>// Para system??
  5. //using namespace std;
  6.  
  7. int main ()
  8.  
  9. {
  10. // definicion de variables
  11. int perimetro;
  12. int volumen;
  13. int area;
  14. int largo;
  15. int ancho;
  16. int profundidad_promedio;
  17.  
  18.  
  19. // Datos a Entrar
  20.  
  21. cout <<"Entre el largo: ";
  22. cin >>largo;
  23. cout <<"Entre el ancho: ";
  24. cin >>ancho;
  25. cout <<"Entre la profundidad promedio: ";
  26. cin >>profundidad_promedio;
  27.  
  28. // Aqui se realizaran los calculos
  29. perimetro= 2*(largo + ancho);
  30. volumen = largo*ancho*profundidad_promedio;
  31. area= 2*(largo + ancho )*profundidad_promedio + largo * ancho;//FALTABA ;
  32.  
  33.  
  34. cout<<"El Largo es: "<<largo<<endl;
  35. cout<<"El Acho es: "<<ancho<<endl;
  36. cout<<"La Profundidad es: "<<profundidad_promedio<<endl;  //FALTABA _ en profundidad_promedio
  37. cout<<"El Perimetro es: "<<perimetro<<endl;
  38. cout<<"El Volumen es: "<<volumen<<endl;
  39. cout<<"El Area es: "<<area<<endl;
  40. system ("PAUSE");
  41. return 0;
  42. }
  43.  
Esto es para turboc++ no se que compilador usas, pero simplemente sacales los .h a los include y deberia funcionar.

10
C/C++ / Re: Problema en modo grafico
« en: Domingo 20 de Septiembre de 2009, 17:05 »
Con respecto a lo de aberración, cada cual tiene sus formas de enseñar, es el ultimo cuatrimestre que vemos C++. Empezamos con java a partir de ahora, y estoy en un lugar que tiene bastante renombre, así que dudo que no sepan lo que hacen...

En fin volviendo al tema, gracias por la respuesta. Lo que noté es que en algunas PCS con windows XP funciona, incluso en una pc mia con una 9800GT funciona y Windows XP SP1.
En todas las demás no me está funcionando, así que supongo que no es un problema de las tarjetas de video.
También me llama la atención que no funcione en DosBOX...

Estoy intentando cambiar a Borland 5.5 pero tengo algunos problemas de stdlib (el modo grafico anda perfecto), me dice que tengo algunos errores de sintaxis en el .h
Gracias por la ayuda..

11
C/C++ / Problema en modo grafico
« en: Sábado 19 de Septiembre de 2009, 01:59 »
Hola gente, escribo porque tengo el siguiente problema.
En donde estudio, estamos empezando con el modo graphico. Utilizamos el viejo y conocido IDE Borland Turbo C++ (el de DOS).
Mi programa hace una simple tabla, en algunas PCS la puedo visualizar perfectamente, en cambio, en mis 3 pcs de mi casa, no puedo porque me arroja un error del NTVDM.
Busqué mil y un soluciones, y ninguna funcionó.. Probé usar DOSBOX y tampoco puedo ver los graficos... El programa compila perfectamente, cuando lo ejecuto se cierra el turbo o me tira el error de NTVDM 16 bits subsystem algo asi.

Alguien sabe a qué se debe?, tiene que ver con windows xp sp3?...

(Intente cambiar de IDE pero tengo problema en la compatibilidad de algunas librerias... por ejemplo uso stdlib y me tira errores en la libreria así que no tengo idea como hacer...)


espero que alguien me pueda ayudar!

12
C/C++ / Re: Programa calculo de CRC
« en: Lunes 24 de Agosto de 2009, 16:11 »
Si no sabés hacer un main, que es lo primero de todo, qué haces buscando un código en inet?


Código: C
  1. void main ()
  2. {
  3. llamada(parametro1,parametro2);
  4. }
  5.  

13
C/C++ / Re: raiz cuadrada y cubica
« en: Jueves 23 de Julio de 2009, 06:55 »
posteá aunque sea que hiciste hasta el momento, en código..

14
C/C++ / Re: C : ELIMINAR ESPACIOS EN BLANCO DE UNA CADENA
« en: Lunes 11 de Mayo de 2009, 17:40 »
Cita de: "haevan"
en 3 lineas:

char*tmp;
while((tmp=strchr(cadena,32))!=NULL)
             sprintf(tmp,"%s",tmp+1);

32 es el codigo de el caracter de espaciado

ademas asi no necesitas el string.h
:good: los programadores terminamos vagos D:
jajaj

15
C/C++ / Re: declaracion y uso de matrices dinamicas en c++
« en: Lunes 11 de Mayo de 2009, 17:35 »
Muy útil este thread para mi, gracias :D

16
C/C++ / Re: Parametros genericos....
« en: Domingo 10 de Mayo de 2009, 19:14 »
Gracias por la ayuda..
Te soy sincero, estuve toda la mañana tratando de implementar esto pero no me sale.

En pocas palabras lo que pense es esto:

Antes de leer el archivo, voy a tener que posicionarme en el inicio del archivo. Así cuando lea, voy a poder leer desde el inicio hasta que termine el archivo.
Ahora bien, hay una funcion que me dijiste que se llama fseek la cual, supuestamente, me permite retroceder pasandole el Arch, el offset y el whence (SEEK_...)
Pero también lei que hay otras como ftell y rewind...
No se cómo aplicar este código a mi razonamiento.

Si me podes dar una mano a nivel codigo, te agradezco.
...

1) AbroArchivodeEntrada(RESULT.....)
2) Vuelvoelpunteroalinicio(....)
3)Leo el archivo
4)Mientras !Fin
5)LEo el archivo

gracias ...

17
C/C++ / Re: Parametros genericos....
« en: Domingo 10 de Mayo de 2009, 16:38 »
Abro el archivo de salida en modo a+b (el ejercicio lo pidio en append)
Leo el archivo
while(!FIn){
leo el archivo
Muestro el registro leido
getch();
}
Cierro archivo...

Lo curioso es que me lee el último registro..
La verdad ya no se que probar, voy a tener q entregarlo asi XD

18
C/C++ / Re: buenas
« en: Domingo 10 de Mayo de 2009, 05:39 »
No es muy raro que en tu primer programa aparees vectores?
Yo que vos primero reviso como funcionan los vectores. Tenés que ver las formas de moverte a través de los vectores, cuando tenga tiempo te mando 1 poco de info.

saludos

19
C/C++ / Re: Promedio de diez estudiantes Usando While
« en: Domingo 10 de Mayo de 2009, 02:39 »
Cita de: "fachamix"
no puedo creer el laburo que te has tomado para contestar.

como e dicho antes .... FUIRA!

Todo depende de que quiera el chico.. si saber programar, o aprobar la materia :P, no me cuesta nada tipear un par de líneas estoy al pedo JEJE y en el proyecto q estoy haciendo tengo 1 problema con el leer archivo :@:@:@

20
C/C++ / Re: Promedio de diez estudiantes Usando While
« en: Domingo 10 de Mayo de 2009, 01:36 »
Primero fijate que hace el ciclo while.
Después tenes que saber que es sacar un promedio. Qué necesitas?
Un alumno, notas, cantidad de notas. Con esto podes hacer "PROMEDIO DEL ALUMNO: " = (NOTAS SUMADAS)/CANT NOTAS
Ahora tenes que pensar que vas a usar para guardar la informacion de 10 alumnos y como te viene la informacion:
La ingresas vos paso a paso y que si ingresas -1 o * termina?
Te viene de un archivo ordenado por alumno?
De acuerdo a eso plantearás el problema.
Suponiendo que la ingresás vos manualmente ...
Agarrá 1 papel y planteá una estrategia de cómo lo vas a hacer y un lote de prueba para ver si funciona:

LOTE DE PRUEBA
1)
  campos: nomb, nota, contnota
 |0-0-0|0-0-0|0-0-0|0-0-0|0-0-0|0-0-0|0-0-0|0-0-0|0-0-0|0-0-0|
     0        1        2        3       4        5        6       7        8        9    VEC_ALUMNOS  

 |__| Variable Nombre
 |__| Variable Nota

2)
  campos: nomb, nota, contnota
 |Josecito-5-1|0-0-0|0-0-0|0-0-0|0-0-0|0-0-0|0-0-0|0-0-0|0-0-0|0-0-0|
     0                             1        2       3        4        5        6         7       8      9         VEC_ALUMNOS
|Josecito| Variable Nombre
|5| Variable Nota


3)
 |Josecito-5-1|Rosa-6-1|0-0-0|0-0-0|0-0-0|0-0-0|0-0-0|0-0-0|0-0-0|0-0-0|
     0                 1                          2       3       4       5         6        7        8       9    VEC_ALUMNOS
|Rosa| Variable Nombre
|6| Variable Nota

4)
|Josecito-15-2|Rosa-6-1|0-0-0|0-0-0|0-0-0|0-0-0|0-0-0|0-0-0|0-0-0|0-0-0|
     0                      1           2       3        4        5        6        7       8       9             VEC_ALUMNOS

|Josecito| Variable Nombre
|10| Variable Nota

5)...
6)...
20)
PROMEDIO MAXIMO: Jose - 8

SALIDA:
   ROSA - 7
   PEPITO - 4
   JOSE - 3
(...)

ESTRATEGIA DE RESOLUCION:
Voy a necesitar un vector en donde pueda guardar las calificaciones de los alumnos que voy ingresando.
En dicho vector voy a almacenar la cantida de notas sumadas para luego poder sacar un promedio por cada alumno ingresado.
Luego de ingresado todos los alumnos, voy a sacar el promedio de todos ellos y guardarlos en el campo prom del vector.
Como necesito mostrar el mayor y luego mostrar los demas descendentemente, voy a ordenar el vector con algun método de ordenamiento.
Voy a mostrar la primer posicion del vector y voy a decir que es la nota mayor. Luego voy a mostrar las demás posiciones por pantalla con las notas de los demás alumnos.

----------------------------

Si te fijas, tenes el problema parcialmente resuelto. Obviamente ahora tenes que implementarlo, y pensar que variables usar para organizar esto, si hay algun TOPE que declarar, que preguntas hacer en los ciclos, si hay alguna otra condicion. Luego que ya sabes esto, ya podes ponerte a implementarlo en c/c++.
Es muy recomendable que siempre que estés estudiando para programar, te guíes por este tipo de metodologías, pesadas, pero útiles a la hora de abrir la cabeza en el momento de hacer un problema.

Es muy corta la información que das en el foro como para que alguien te haga un algoritmo en c++, ya que te lo pueden hacer con 1 archivo, un vector, etc depende de como venga la informacion. Tenés que ser más específico.


Saludos, espero que esto te ayude un poco.

Nota: Siempre es preferible intentar hacer algo antes de postear para que te lo hagan, a menos que quieras ser un programador mediocre en el futuro (yo estoy estudiando al igual que vos, no soy ningún master)

21
C/C++ / Re: Parametros genericos....
« en: Domingo 10 de Mayo de 2009, 00:47 »
Ya lo solucione... era un temita del while !bFin.

Yo grabo 1 archivo. Quiero que el archivo al leerlo, lea Todos los registros que le grabe. Luego voy a grabar otro registro abajo del registro grabado en el archivo.
Voy a abrir el programa y leer el archivo devuelta, y necesito Que me leea TODOS los registros y no sólo uno.

¿En qué modo tengo que grabar?..


gracias por todas las respuestas.

22
C/C++ / Re: Parametros genericos....
« en: Sábado 9 de Mayo de 2009, 00:30 »
El grabar me anduvo PERFECTO.. hice un programa de prueba pero tengo inconvenientes al leer...

PRUEBA.CPP
Código: C++
  1. #define FLASE 0
  2. #define TRUE (1==1)
  3.  
  4. typedef struct ty_strct {
  5.    int num;
  6.    char letra;
  7.  
  8. typedef int bool;
  9. };
  10.  
  11. void main ()
  12. ty_strct strct, strct2;
  13. FILE *Arch;
  14. FILE *Arch2;
  15. bool bFin, bPudo;
  16. clrscr();
  17. strct.num = 97;
  18. strct.letra = 'A';
  19. AbrirArchivo (Arch,bPudo,"C:\PRUEBA.DAT",'S');
  20. cout << strct.num << endl;
  21. cout << strct.letra << endl;
  22. cout << "Pulse una tecla para grabar...";
  23. getch();
  24. for (int i=0;i<2;i++) {
  25.    GrabarArchivo (Arch,(void*)&strct, sizeof(ty_strct));
  26.    cout << "grabado ok";
  27. }
  28. CerrarArchivo(Arch);
  29. AbrirArchivo(Arch2,bPudo,"C:\PRUEBA.DAT",'E');
  30. cout << "Pulse una tecla para leer el archivo" << endl;
  31. getch();
  32. do {
  33. LeerArchivo (Arch2, (void*)&strct2,sizeof(ty_strct),bFin);
  34. cout << "Archivo cargado "<< endl;
  35. }while (bFin == FALSE);
  36. CerrarArchivo(Arch2);
  37. cout << "Fin de carga" <<endl;
  38. getch();
  39. }
  40.  

RUTINA DE GRABAR:
Código: C++
  1.  
  2. void GrabarArchivo (FILE *Arch, void *Reg, unsigned int tam) {"
  3.   fwrite (Reg,tam,1,Arch);
  4. }
  5.  
  6.  

RUTINA DE LEER:

Código: C++
  1. void LeerArchivo (FILE *Arch, void *Reg, unsigned int tam, bool &bFin) {
  2. if (!(feof(Arch))) {
  3.    fread (Reg,tam,1,Arch);
  4.    bFin == FALSE;
  5.    }else {
  6.    bFin == TRUE;
  7. }
  8. }
  9.  
  10.  


------------------------

El problema es este:

1) ABRO EL ARCHIVO DE SALIDA.
2) GRABO A97 DOS VECES EN EL ARCHIVO
3) CIERRO EL ARCHIVO
4) ABRO EL ARCHIVO DE ENTRADA
5) LEO EL ARCHIVO HASTA Q SEA EL FIN DEL MISMO
**** LEE 4 REGISTROS Y YO GUARDE 2*****

23
C/C++ / Re: Parametros genericos....
« en: Viernes 8 de Mayo de 2009, 22:17 »
gracias, era eso lo q necesitaba...

24
C/C++ / Re: Parametros genericos....
« en: Viernes 8 de Mayo de 2009, 21:40 »
Te agradezco la respuesta, pero soy bastante novato en el tema...

Lo que entendí hasta ahora es esto:
Yo tendría que pasarle a mi rutina "genérica" de grabar, un puntero a la posicion de memoria donde empiece mi registro... supongo que será un void * reg... algo asi.
Despues tengo que pasarle el sizeof(miregistro), la cantidad de veces q graba y el archivo con la estructura FILE.

en stdio.h está el encabezado del fwrite como

Código: Text
  1. unsigned fwrite(const void *__ptr, size_t __size_t, size_t __size_n, FILE * __stream);
  2.  

Esto es totalmente generico, porque siendo REG o REGASDAD o REGISTROASD o lo que le pase, va a funcionar.
Lo que quiero saber es como implementarlo en mi rutina (que en definitiva es la misma pero con mis propios nombres)

gracias.

25
C/C++ / Parametros genericos....
« en: Viernes 8 de Mayo de 2009, 21:04 »
&ArchHola, antes que nada me presento. Me llamo Luciano, estudio Analisis de Sistemas y soy nuevo en el foro.
Tengo una duda sobre lo siguiente:

Estoy haciendo 1 proyecto que maneja archivos.
Tengo varios cpps con sus respectivos .h de los cuales uno se llama "ARCH.CPP" y tiene su "ARCH.H".
Estos tienen las funciones básicas de archivos (grabar, leer, abrir, cerrar) pero de forma más genérica: "AbrirArchivo(parametros), en lugar de fopen = (parametros)".

El proyecto necesita grabar 2 archivos, cada uno de una estructura diferente.
Lo que necesito es saber como hacer esta libreria arch.h genérica para aceptar cualquiera de las dos estructuras que le mande por parámetro.
(No puedo usar un #define TIPODATOARCHIVO ty_miregistro porque tengo 2 registros...)
Tampoco estoy familiarizado con el uso de punteros ni objetos.

ARCH.h
Código: Text
  1.  
  2. #ifndef __ARCH_H
  3. #define __ARCH_H
  4. //Librerias
  5. #include <stdio.h>
  6. #include "TDARCH.h"
  7.  
  8. //Prototipos
  9. void AbrirArchivo (FILE * &Arch, bool &bPudo, char * dir, char tipo); //Procedimiento de apertura de archivos de Entrada y de Salida
  10. void LeerArchivo (FILE * &Arch, ty_TDArch &Reg, bool &bFin);  //Procedimiento de lectura de archivo
  11. void GrabarArchivo (FILE * &Arch, ty_TDArch &Reg);  //Procedimiento de guardado de archivo
  12. void CerrarArchivo (FILE * &Arch);  //Procedimiento de cerrado de archivo
  13.  
  14.  
  15. #endif /*__ARCH_H*/
  16.  
  17.  

ARCH.cpp
Código: Text
  1.  
  2. //Librerias
  3. #include "ARCH.h"
  4. #include <iostream.h>
  5.  
  6. ////////////////////////////////////////////////////////////////////////////////////////////
  7. //Rutina LeerArchivo (FILE * &Arch, ESTRUCT &estructura, bool &bfin)
  8. ////////////////////////////////////////////////////////////////////////////////////////////
  9. void LeerArchivo (FILE * &Arch, ty_TDArch &Reg, bool &bFin)
  10.                                                         //Rutina para leer un Archivo
  11.  
  12. {
  13.  
  14.     if (!(feof(Arch))) {                                //Si no es fin de archivo
  15.        fread (&Reg, sizeof(ty_TDArch),1,Arch);     //Leo el archivo
  16.          bFin = FALSE;                                  //No termino la lectura, porque lo lei
  17.     } else {                                            //Caso contrario, Termino la lectura
  18.          bFin = TRUE;
  19.     }
  20. }
  21. //Fin de Rutina -  LeerArchivo (FILE * &Arch, ESTRUCT &estructura, bool &bfin) -
  22.  
  23.  
  24.  
  25. ////////////////////////////////////////////////////////////////////////////////////////////
  26. //Rutina - AbrirArchivo (FILE*Arch,bool&bPudo,char*dir,char tipo) -
  27. ////////////////////////////////////////////////////////////////////////////////////////////
  28. void AbrirArchivo (FILE * , bool &bPudo, char * dir, char tipo)
  29.                                         //Rutina para abrir un archivo de Entrada o de Salida
  30. {
  31.     if (tipo == 'E')  {                 //Si el tipo de archivo es de Entrada
  32.  
  33.         Arch=fopen (dir,"rt");          //Abro el archivo de entrada
  34.  
  35.             if (Arch == NULL) {         //Si no encuentra el archivo
  36.                 cout << "No se pudo abrir el archivo de Entradan";
  37.                 bPudo=FALSE;            //bPudo Abrirlo es FALSO
  38.             }else{
  39.                 bPudo=TRUE;             //Caso contrario bPudo Abrirlo es VERDADERO
  40.             }
  41.  
  42.     } else {                            //Caso contrario el archivo es de Salida
  43.  
  44.         Arch=fopen (dir,"a+");          //Abro el archivo de salida
  45.  
  46.  
  47.             if (Arch == NULL) {         //Si no encuentra el archivo
  48.                 cout << "No se pudo abrir el archivo de Salidan";
  49.                 bPudo=FALSE;            //bPudo Abrirlo es FALSO
  50.             }else{
  51.                 bPudo=TRUE;             //Caso contrario bPudo Abrirlo es                  //VERDADERO
  52.  
  53.             }
  54.  
  55.     }
  56. }
  57. //Fin de Rutina - AbrirArchivo (FILE*Arch,bool&bPudo,char*dir,char tipo) -
  58.  
  59.  
  60. ////////////////////////////////////////////////////////////////////////////////////////////
  61. //Rutina - GrabarArchivo1 (FILE*Arch,ESTRUCT &estructura) -
  62. ////////////////////////////////////////////////////////////////////////////////////////////
  63. void GrabarArchivo1 (FILE * &Arch, ty_TDArch &Reg)
  64. {                                                       //Rutina para grabar un archivo
  65.     fwrite (&Reg, sizeof(ty_TDArch),1,Arch);       //Graba el archivo
  66. }
  67. //Fin de Rutina - GrabarArchivo (FILE*Arch,ESTRUCT &estructura) -
  68.  
  69.  
  70. ////////////////////////////////////////////////////////////////////////////////////////////
  71. //Rutina - CerrarArchivo (FILE * &Arch)
  72. ////////////////////////////////////////////////////////////////////////////////////////////
  73. void CerrarArchivo (FILE * &Arch)
  74. {                                                       //Rutina para cerrar un archivo
  75.     fclose(Arch);                                       //Cierra el archivo
  76. }
  77. //Fin de Rutina - CerrarArchivo (FILE * &Arch)
  78.  
  79.  
  80.  


La idea de esta libreria propia, es que esté encapsulada. Para acceder a los datos de ella, pense hacer un TDARCH.h que la maneje, de esta forma no tendria que romper el encapsulamiento cada vez que quiera cambiar algo.

TDARCH.h

Código: Text
  1. #include "STRCTP3.h"
  2.  
  3. #define FALSE 0
  4. #define TRUE (1 == 1)
  5.  
  6. typedef int bool;
  7.  
  8.  

Ahora bien, tengo 2 registros que contienen lo siguiente:
STRCTP3.H
Código: Text
  1. typedef struct ty_RegOrig{
  2.     ty_VecV VecV;
  3.     ty_VecVB VecVB;
  4. }; //estructura para registro de archivo vectores originales
  5.  
  6. typedef struct ty_RegResult{
  7.     ty_VecResB VecResBOrd;
  8.     ty_VecResB VecResBDes;
  9.     ty_VecResB VecResBBin;
  10.     ty_VecReO VecResOrd;
  11. }; //estructura para registro de archivo vectores de resultados
  12.  
  13.  

Estos 2 registros tengo que guardarlos en 2 archivos diferentes utilizando el mismo procedimiento de guardar. Y ahí está el problema, los tipos de dato son diferentes.

Si alguien me puede explicar como hacer para pasarle directamente una posicion de memoria para que lea "X" tamaño, indiferentemente del tipo, le agradezco mucho.

Espero que se entienda, me cuesta 1 poco explicar esto por acá.

Muchas gracias de antemano.

Saludos.

Páginas: [1]