Foros del Web » Programación para mayores de 30 ;) » C/C++ »

datos binarios en c++

Estas en el tema de datos binarios en c++ en el foro de C/C++ en Foros del Web. Hola maestros miren tengo esta programacion: #include <conio.h> #include <stdio.h> #include <string.h> #define ARCHIVO "c:\DATOS.DAT" struct alumno {char cod[8]; char nom[50]; }reg; FILE *falumno; void ...
  #1 (permalink)  
Antiguo 02/03/2007, 21:52
Avatar de OYEME  
Fecha de Ingreso: marzo-2004
Ubicación: Lima
Mensajes: 307
Antigüedad: 20 años, 1 mes
Puntos: 1
datos binarios en c++

Hola maestros miren tengo esta programacion:

#include <conio.h>
#include <stdio.h>
#include <string.h>
#define ARCHIVO "c:\DATOS.DAT"
struct alumno
{char cod[8];
char nom[50];
}reg;
FILE *falumno;
void ingreso()
{char op;
if((falumno=fopen(ARCHIVO,"w+b"))==NULL)
{printf("\n\rse ha producido un ERROR");
getch();
}
do{clrscr();
printf("\n\rIngrese Codigo");gets(reg.cod);
printf("\n\rIngrese Nombre");gets(reg.nom);
fseek(falumno,0L,SEEK_END);
fwrite(&reg,sizeof(struct alumno),1,falumno);
printf("\n\n\rDesea Continuar S/N");
op=getch();
}while(op!='N' && op!='n');
fclose(falumno);
}
void listado()
{falumno=fopen(ARCHIVO,"rtb");printf("\n\n\rListad o de Alumnos");
while(!feof(falumno))
{if(fread(&reg,sizeof(struct alumno),1,falumno)!=1)break;
printf("\n\r%s\t%s",reg.cod,reg.nom);
}
printf("\n\rPulse tecla para continuar");fclose(falumno);
getch();
}
void main()
{ingreso();
listado();
}


bueno este es un ejemplo de como ingresar datos a un archivo desde c++, mi preguntas son estas
1.- Esto crea un archivo binario, osea el dat seria un archivo binario???? (creo que no)
2.- Esta es la forma mas rapida de ingresar y leer datos????

es que esto es un ejemplo, lo que yo hare mas adelante es leer una gran cantidad de registros y luego mostrarlos pero quiero que la lectura sea rapida y me recomendaron que lo haga en C++
He visto unos sistemas que tiene su informacion como encriptada y para leer esos datos lo hacen con una rutina en c++

Por favor maestros espero me puedan ayudar con esas dudas que tengo
muchas gracias a todos
__________________
http://www.luisariashidalgo.com
  #2 (permalink)  
Antiguo 05/03/2007, 16:02
Avatar de OYEME  
Fecha de Ingreso: marzo-2004
Ubicación: Lima
Mensajes: 307
Antigüedad: 20 años, 1 mes
Puntos: 1
Re: datos binarios en c++

alguien me podria dar un tip?
__________________
http://www.luisariashidalgo.com
  #3 (permalink)  
Antiguo 05/03/2007, 19:24
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
Re: datos binarios en c++

que tal,

Cita:
Iniciado por OYEME Ver Mensaje
Hola maestros miren tengo esta
bueno este es un ejemplo de como ingresar datos a un archivo desde c++, mi preguntas son estas
1.- Esto crea un archivo binario, osea el dat seria un archivo binario???? (creo que no)
Casi no lei el codigo, pero suponiendo que este bien:
En tu ejemplo si crea un archivo binario. Pero le puedes dar la extension que quieras. Podrias guardarlo como "archivo.asd" o "archivo.miextension".

Cita:
Iniciado por OYEME Ver Mensaje
2.- Esta es la forma mas rapida de ingresar y leer datos????

es que esto es un ejemplo, lo que yo hare mas adelante es leer una gran cantidad de registros y luego mostrarlos pero quiero que la lectura sea rapida y me recomendaron que lo haga en C++
He visto unos sistemas que tiene su informacion como encriptada y para leer esos datos lo hacen con una rutina en c++
Si lo que quieres es ingresar, modificar y buscar una gran cantidad de datos, lo mas recomedable es que uses una base de datos donde se guarde tu informacion.
MySQL es un manejador de base datos que va muy bien con c++....

saludos,
  #4 (permalink)  
Antiguo 05/03/2007, 19:46
Avatar de OYEME  
Fecha de Ingreso: marzo-2004
Ubicación: Lima
Mensajes: 307
Antigüedad: 20 años, 1 mes
Puntos: 1
Re: datos binarios en c++

gracias blackwind por responder
Y quisiera hacer otras preguntas:
1.- He visto archivos que dentro contienen como codigo basura (bueno eso parece) pero eso son datos binarios (eso me imagino)
Con el algortimo que he desarrollado me he dado cuenta que cuando grabo se graba los datos que ingrese y no el supuesto codigo basura(datos binarios)

Bueno yo solo quiero leer los datos osea no voy a agregar datos modificar, etc,
Solo leere esos datos y los mostrare despues en un Form en VB NET(pero eso ya es otra cosa que seguro les volvere a pedir su ayuda)
Ahora todo eso lo hago debido a que tengo que leer como 15 mil registros diarios.
Ahorita los tengo en una tabla y para hacer un consulta se demora mucho
y eso que hay veces me piden una consulta mensual osea imaginense
Por eso me dijeron que lo haga en C++
espero sus comnetarios ,gracias a todos por su ayuda
__________________
http://www.luisariashidalgo.com
  #5 (permalink)  
Antiguo 05/03/2007, 22:24
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 20 años, 5 meses
Puntos: 7
Re: datos binarios en c++

15 mil registros, aun cuando SOLO vayas a leer e ingresar, son mas que suficientes como para usar una base de datos.....
  #6 (permalink)  
Antiguo 10/03/2007, 14:07
 
Fecha de Ingreso: marzo-2007
Mensajes: 74
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: datos binarios en c++

Cuando ves como basura en el archivo binario es porque guardan numeros,
en el ejemplo que pones son caracteres, por eso no ves la "basura"
si vas a leer 15 mil registros en Visual Basic puedes usar el Richtext
y los puedes cargar leyendo en multiplos(1024 bytes)etc , no linea por linea.

en "c" leer estos 15 registros pues es muy rapido y tambien puedes cargarlos
aqui los 15 mil registros aun sea un archivo ascii te los lee muy rapido, pero
tambien existe el RichTextBox

En el siguiente ejemplo de código se crea un control RichTextBox que carga un archivo RTF en el control y busca la primera instancia de la palabra "Text". Después, el código modifica el estilo, el tamaño y el color de fuente del texto seleccionado, y guarda los cambios en el archivo original. Finalmente, el control se agrega a Form en el código de ejemplo. En el ejemplo se requiere que el método creado en el código se agregue a una clase Form, y que se llame al método desde el constructor del formulario. Asimismo, se requiere que se haya creado un archivo RTF que contenga la palabra "Text" en el directorio raíz de la unidad C.

Visual Basic Copiar código
Public Sub CreateMyRichTextBox()
Dim richTextBox1 As New RichTextBox()
richTextBox1.Dock = DockStyle.Fill


richTextBox1.LoadFile("C:\MyDocument.rtf")
richTextBox1.Find("Text", RichTextBoxFinds.MatchCase)

richTextBox1.SelectionFont = New Font("Verdana", 12, FontStyle.Bold)
richTextBox1.SelectionColor = Color.Red

richTextBox1.SaveFile("C:\MyDocument.rtf", RichTextBoxStreamType.RichText)

Me.Controls.Add(richTextBox1)
End Sub


C++

public:
void CreateMyRichTextBox()
{
RichTextBox^ richTextBox1 = gcnew RichTextBox;
richTextBox1->Dock = DockStyle::Fill;

richTextBox1->LoadFile( "C:\\MyDocument.rtf" );
richTextBox1->Find( "Text", RichTextBoxFinds::MatchCase );

richTextBox1->SelectionFont = gcnew System::Drawing::Font(
"Verdana", 12, FontStyle::Bold );
richTextBox1->SelectionColor = Color::Red;

richTextBox1->SaveFile( "C:\\MyDocument.rtf",
RichTextBoxStreamType::RichText );

this->Controls->Add( richTextBox1 );
}
Saludos
  #7 (permalink)  
Antiguo 10/03/2007, 15:41
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: datos binarios en c++

Uff ... ninguno de esos codigos es de C++ ...
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #8 (permalink)  
Antiguo 14/03/2007, 10:58
 
Fecha de Ingreso: marzo-2007
Mensajes: 74
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: datos binarios en c++

Si gracias por la observacion!!!!

Lo que pasa es que el ya ha trabajado en Visual Basic, el primer ejemplo que le di es con lo que el ya ha trabajado, y si desea trabajar en c++ pues existe el Visual C++ en el cual le anexe el segundo ejemplo.

ya que a mi punto de vista considero que luce mas la presentacion en
ambioente grafico que en la console.

Saludos.
  #9 (permalink)  
Antiguo 14/03/2007, 11:02
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: datos binarios en c++

Cita:
Iniciado por winexim Ver Mensaje
Lo que pasa es que el ya ha trabajado en Visual Basic, el primer ejemplo que le di es con lo que el ya ha trabajado, y si desea trabajar en c++ pues existe el Visual C++ en el cual le anexe el segundo ejemplo.
No se de donde sacas que el trabajo en VB pero no es el foro para poner esos codigos. VC++ no es un lenguaje sino un compilador, eso a lo sumo sera Visual C++ .NET (no recuerdo haber visto el ^ mas que en C#) y tampoco es el lugar adecuado (para eso esta el foro de .NET).

Cita:
Iniciado por winexim Ver Mensaje
ya que a mi punto de vista considero que luce mas la presentacion en
ambioente grafico que en la console.
No tiene nada que ver, es mas, la API de Windows exporta una interfaz para C.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #10 (permalink)  
Antiguo 15/03/2007, 01:31
 
Fecha de Ingreso: febrero-2003
Ubicación: D.F.
Mensajes: 163
Antigüedad: 21 años, 2 meses
Puntos: 22
Re: datos binarios en c++

Hola, nada mas para tratar de aclarar un poco el código posteado por winexim.

Código:
C++ 

public:
void CreateMyRichTextBox()
{
RichTextBox^ richTextBox1 = gcnew RichTextBox;
richTextBox1->Dock = DockStyle::Fill;

richTextBox1->LoadFile( "C:\\MyDocument.rtf" );
richTextBox1->Find( "Text", RichTextBoxFinds::MatchCase );

richTextBox1->SelectionFont = gcnew System::Drawing::Font(
"Verdana", 12, FontStyle::Bold );
richTextBox1->SelectionColor = Color::Red;

richTextBox1->SaveFile( "C:\\MyDocument.rtf",
RichTextBoxStreamType::RichText );

this->Controls->Add( richTextBox1 );
}
Esto no es código C++ estándar.
En Visual Studio 2005 tenemos soportado el C++ estándar y además tenemos soporte para una nueva versión de C++ llamada C++/CLI que fue desarrollada por Microsoft y que es un estándar ECMA.

ecma-international.org/publications/standards/Ecma-372.htm (agregar www a la liga)

Estas dos versiones de C++ juegan roles completamente diferentes. ISO/ANSI C++ es para desarrollo de aplicaciones de alto rendimiento que corren de manera nativa en la computadora, mientras que C++/CLI(tambien conocido como C++ administrado) fue desarrollado especificamente para la framework .NET, es decir, para crear aplicaciones que corren bajo el control del CLR(máquina virtual).

En fin hay mucha info en la red para ver las diferencias entre C++ estándar y C++/CLI, solo queria contextualizar un poco el código posteado por winexim ya que este pertenece al C++/CLI y no al C++ estándar y esto puede confundir a quienes estan aprendiendo C++ estándar.

Un Saludo.
  #11 (permalink)  
Antiguo 15/03/2007, 02:16
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Re: datos binarios en c++

Cita:
Iniciado por fightmx Ver Mensaje
Estas dos versiones de C++ juegan roles completamente diferentes. ISO/ANSI C++ es para desarrollo de aplicaciones de alto rendimiento que corren de manera nativa en la computadora, mientras que C++/CLI(tambien conocido como C++ administrado) fue desarrollado especificamente para la framework .NET, es decir, para crear aplicaciones que corren bajo el control del CLR(máquina virtual).
En realidad C++ administrado (Managed C++) esta YA obsoleto y solo fue distribuido con VS .NET 2003.

http://en.wikipedia.org/wiki/C%2B%2B.NET
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 18:18.