Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Mensajes - Littlehorse

#671
linux1, la librería a la cual te referís no es estándar. Intenta hacer un programa básico utilizando stdio.h (cstdio en c++) y veras que compila en cualquier entorno de trabajo.

Compra o descarga el libro que te recomendó nicolas_cof:

Cómo Programar en C/C++ - Harvey M. Deitel, Paul J. Deitel

saludos


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


Cita de: Awraaaauu en 24 Junio 2010, 03:15 AM
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 (cpp) [Seleccionar]
     fstream grabado;
     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!
#673
Programación C/C++ / Re: URGENTE!!!
24 Junio 2010, 00:33 AM
amilcar5 , bienvenido/a al foro. Usa el buscador que seguramente encontraras ejemplos de lo que queres hacer, pero ten en cuenta que en esta sección no se hacen tareas.

Lee las reglas

Citar
Reglas del subforo:

  • Este no es un subforo donde se soliciten tareas, sino un lugar donde resolver dudas.

Como ultimo, utiliza títulos descriptivos y no abuses de las mayúsculas (ya que se considera como que estas gritando).

Saludos

Cerrado
#674
De nada, para eso estamos  :D. En cuanto a lo del manual, no se cual estarás leyendo pero tenes un post en las chinchetas con varios libros para elegir.

Cualquier cosa ya sabes.

Saludos!
#675
Fatmf44 ya posteaste lo mismo en otro hilo. Lee nuevamente las respuestas que te dieron en el, y en el caso que tengas alguna duda puntual, la realizas allí.

Recuerda que en esta sección no se hacen tareas, dale una leída a las reglas

Saludos

Cerrado
#676
Modificando la apertura del archivo para que no vacié el contenido, busca sobre los métodos de apertura. ::app por ejemplo te podría servir, pero primero tienes que modificar el método de calculo de posiciones.

Saludos
#677
No no hay ninguna. Si queres escribir los datos en forma aleatoria, basta con poner el puntero en una posición relacionada con algún criterio variante, lo cual es precisamente lo que estas haciendo ahora y teóricamente mal no esta (a pesar que tenga los problemas que ya mencione antes). El problema radica en que en cada apertura descartas el contenido del archivo existente.

Obviamente tenes mil formas de ordenar el archivo, lo ideal en este caso seria que cada estructura este detras de la otra en pos de no perder el acceso aleatorio y obtener un archivo lo mas reducido posible.

No veo la necesidad de crear un buffer para todo el archivo, no te daría ninguna ventaja respecto de lo que estas haciendo y en algún punto incluso te podría traer problemas cuando el tamaño del archivo sea considerablemente grande.

Saludos
#678
Bueno lo primero y principal es que deberías no utilizar tanto las variables globales. Hacen el código un poco mas difícil de seguir ya que cualquier función puede modificar su contenido.
En cuanto al problema, el principal esta en la apertura del archivo. Tanto ios::out como ios::out|ios::trunc primero descartan el contenido (crean el archivo solo si no existe, pero descartan el contenido existente en el).

Otra cosa que veo que deberías modificar es el método del calculo de posiciones, es bastante propenso a errores.
Supongamos que no tenes ningún dato, y el ID es 1400, tu archivo quedaría algo así:

1400*sizeof(data)bytes
NULL|NULL|NULL|NULL|| contenido ||


lo cual no es lo mas adecuado y de seguro te traerá problemas como archivos excesivamente grandes, punteros a archivo que no apuntan donde deben, superposición de datos y demás.

No he visto mucho mas, pero también deberías chequear los estados del stream (failbit, badbit, etc) para asegurarte de evitar otros tipos de errores.

Como ultimo, las etiquetas GeSHI utilízalas de esta forma:

C
[code=c]codigo[/code]

C++
[code=cpp]codigo[/code]

Saludos!
#679
Programación C/C++ / Re: resolver programas
21 Junio 2010, 23:07 PM
Cerrado:
Reglas

#680
Muchas gracias a los que me votaron! considerando que llevo unos 2 o 3 días de moderador, ya me puedo dar por hecho  ;-) ;D.
Ya que todos ponen a los que votaron, yo vote por:

Novlucker: No solo ayuda en varias secciones, ademas es un excelente global (tal vez el mejor). Pero por sobre todas las cosas, un gran tipo.  ;)

Aprendiz-oscuro: Las risas que me saca este muchacho son tremendas, un tío de p*** madre como bien diría algún Español. Ni hablar que hoy en día junto con Artik es uno de los pilares de la sección de hardware.

Eternal Idol: Me ha ayudado tantas veces que debería hacerle un monumento. Si no es el mejor programador del foro, pega en el palo. Una gran persona y un usuario que considero de los mas valiosos que tiene el foro.

Artikbot: Otro tio de ptm, el foro de hardware no seria lo que es si no fuese por el.

El-brujo: Muchas veces los usuarios no toman conciencia del trabajo que hay detrás de un foro para que este funcione correctamente. Por eso creo que se merece un voto no solo por el trabajo como moderador, si no también como administrador.

Creo que no me he olvidado de nadie, seguramente haya otros que podría haber votado, pero estos son -por lo menos para mi- los primeros en la lista. Eso si, le regalaría un voto a quien me diga quien es Mariadelamol  :laugh:

Saludos!