elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Acceso aleatorio a archivos binarios, a ver si alguien puede ayudarme
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Acceso aleatorio a archivos binarios, a ver si alguien puede ayudarme  (Leído 8,764 veces)
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Acceso aleatorio a archivos binarios, a ver si alguien puede ayudarme
« Respuesta #10 en: 24 Junio 2010, 19:42 pm »

Nico, abriéndolo en ate sucede el mismo problema. Es decir, en la próxima apertura del archivo, el contenido se vacía.


Sigue habiendo un problemilla.

::app me sitúa al final del fichero siempre antes de cualquier operación de salida, incluso después de hacer seekp

Bueno, voy a investigar un poco por mi cuenta. Si no consigo nada lo haré sin streams.


Si, precisamente por eso te dije que el calculo de posiciones lo tendrías que cambiar. Es la forma mas fácil para escribir siempre al final del fichero, en todo caso si luego necesitas sobrescribir una sección moviendo el puntero podes abrir el archivo para input/output.

Código
  1.     fstream grabado;
  2.     grabado.open("datos.dat", ios::out|ios::in| ios::binary);

Pero por supuesto si el archivo no existe esto te dará error, por lo tanto primero tenes que chequear que el archivo exista ya sea abriéndolo para lectura y verificando las salidas:

Citar
On failure, the failbit flag is set (which can be checked with member fail), and depending on the value set with exceptions an exception may be thrown.

o bien utilizando funciones especificas del sistema, o alguna librería multiplataforma.

Saludos!


En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: Acceso aleatorio a archivos binarios, a ver si alguien puede ayudarme
« Respuesta #11 en: 24 Junio 2010, 20:29 pm »

Cita de: Littlehorse
Nico, abriéndolo en ate sucede el mismo problema. Es decir, en la próxima apertura del archivo, el contenido se vacía.

Littlehorse, hay una cosa que no entiendo :P, supuestamente ::ate significa append to end, lo cual me lleva a dudar de porque el contenido en una nueva apertura se vacia?

De aca estoy leyendo algo... http://www.cplusplus.com/doc/tutorial/files/

Salu10.


« Última modificación: 24 Junio 2010, 20:32 pm por nicolas_cof » En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: Acceso aleatorio a archivos binarios, a ver si alguien puede ayudarme
« Respuesta #12 en: 24 Junio 2010, 21:11 pm »

El problema no es ::ate, el problema es usarlo con ::out. Serian los equivalentes de estos modos de fopen:

Código
  1. ios::out|ios::in|ios::ate|ios::binary

La posición inicial si estará al final del archivo. Esto seria el equivalente a "r+b si el archivo existe" en C.

pero si haces esto:

Código
  1. ios::out|ios::ate

El equivalente seria "wb". ios::out implica ios::trunc por lo tanto el contenido se sobrescribe. Al menos que el archivo sea abierto para operaciones simultaneas de lectura y escritura.

Saludos!
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
nicolas_cof


Desconectado Desconectado

Mensajes: 348


Into the Wild


Ver Perfil WWW
Re: Acceso aleatorio a archivos binarios, a ver si alguien puede ayudarme
« Respuesta #13 en: 24 Junio 2010, 21:14 pm »

Littlehorse, gracias. Siempre se aprende algo nuevo.

Salu10.
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
MediaFire impide el acceso a sus archivos desde Google en lo que puede ser la...
Noticias
wolfbcn 2 4,166 Último mensaje 4 Febrero 2012, 15:59 pm
por farresito
¿Duda que archivos puede estar el spoiler de identi alguien me dice ?
Foro Libre
Weeken 0 1,763 Último mensaje 28 Marzo 2013, 05:18 am
por Weeken
Leer archivos de acceso aleatorio con reinterpet_cast « 1 2 »
Programación C/C++
patilanz 13 6,112 Último mensaje 24 Marzo 2014, 23:13 pm
por patilanz
Duda Manejo De Archivos De Acceso Aleatorio
Programación C/C++
Omar_2013 2 2,482 Último mensaje 1 Abril 2014, 20:22 pm
por Omar_2013
router acceso aleatorio
Hacking Wireless
onic 8 4,488 Último mensaje 19 Agosto 2014, 15:21 pm
por simorg
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines