Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 01-02-2010
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Es mejor que leer char a char (o byte a byte) un buffer intermedio y leer grandes porciones del archivo.

Un Array de chars muy grande no lo puedes reservar dentro de una función como char buffer[700000000], pues esa reserva se hace en la pila y la consume. En una variable global quizás, pero lo mejor es, tratándose de C++:

char* buffer = new char[700000000];

Las funciones malloc y calloc también sirven. En todos estos casos
sizeof(buffer) no devuelve 700000000 sino 4 con lo que la lectura tal y como la planteas, lee 4 bytes.

Para leer y escribir ficheros, C++ dispone de las clases stream: ifstream y ofstream que disponen de un buffer intermedio gestionado por ellas mismas.

La idea del String no sirve en este caso porque se pretende leer un archivo binario y no de texto, y el tratamiento de los retornos de carro y línea corrompen el resultado.

Sin embargo el uso de un TMemoryStream si es otra buena solución, claro que eso no es C++ estándar sino la VCL.

Saludos.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Leer un Archivo Binario voldemmor Varios 2 30-03-2009 18:19:25
transformar archivo binario a texto pakitto Varios 1 26-11-2008 14:09:45
Modificar registro en archivo binario tamarinda C++ Builder 3 06-03-2008 21:01:20
Eliminar registro en archivo binario tamarinda C++ Builder 2 06-03-2008 20:59:25
Cargar array of char de un archivo binario JosepZ Varios 9 12-11-2007 23:28:16


La franja horaria es GMT +2. Ahora son las 19:21:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi