Retomando la programación

Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, m0skit0, LnD, ka69, zacky06

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: Retomando la programación

Mensaje por m0skit0 »

Demasiado tarde, habéis firmado vuestra sentencia de muerte :muerte: :lol:
Imagen

Avatar de Usuario
Yn$an€
Desarrollador
Desarrollador
Mensajes: 258
Registrado: 11 Feb 2011, 21:44

Re: Retomando la programación

Mensaje por Yn$an€ »

:lol: Mi alegato: enajenación mental
... after all, we're all alike.

Avatar de Usuario
largeroliker
Administrador
Administrador
Mensajes: 8283
Registrado: 03 Sep 2009, 09:46
PSN ID: larger0o
Gamertag Xbox Live: larger0o
Steam ID: larger0o
Twitter: larger0o
Ubicación: Málaga
Contactar:

Re: Retomando la programación

Mensaje por largeroliker »

0o

Bueno gente, necesito ayuda en un tema en concreto. ¿Cómo hago para detectar el final del fichero? He intentado usar el método del chaval del primer tuto que usé pero está mal escrito...
Imagen
Steam Deck · Xbox Series X · PS5 · Switch · PS Vita · WiiU · PS3 · new 3DS XL · Xbox 360 · PSP · PS2

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: Retomando la programación

Mensaje por m0skit0 »

Vice, ¡a ver si aprendemos a buscar por nuestra cuenta estas cosas!

http://www.cplusplus.com/reference/iostream/ios/eof/
Imagen

Avatar de Usuario
Yn$an€
Desarrollador
Desarrollador
Mensajes: 258
Registrado: 11 Feb 2011, 21:44

Re: Retomando la programación

Mensaje por Yn$an€ »

El es más de java :mrgreen:

De cuando en cuando pega el código, que eso es fácil de corregir.

PD: Gracias por el subforo otros mundos.
... after all, we're all alike.

Avatar de Usuario
largeroliker
Administrador
Administrador
Mensajes: 8283
Registrado: 03 Sep 2009, 09:46
PSN ID: larger0o
Gamertag Xbox Live: larger0o
Steam ID: larger0o
Twitter: larger0o
Ubicación: Málaga
Contactar:

Re: Retomando la programación

Mensaje por largeroliker »

He intentado de varias formas detectar el final del fichero pero en cada web te lo dicen de una manera distinta, así que lo voy a hacer de otra forma.

¿Alguna función que devuelva el tamaño del fichero abierto? La idea que tengo ahora es detectar la primera línea de inicio de PNG y desde ahí cerrar TRAS detectar el final de imagen PNG, y saber cuántos ciclos daré ((fichero/4)+1) me es de mucha utilidad.
Imagen
Steam Deck · Xbox Series X · PS5 · Switch · PS Vita · WiiU · PS3 · new 3DS XL · Xbox 360 · PSP · PS2

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: Retomando la programación

Mensaje por m0skit0 »

largeroliker escribió:¿Alguna función que devuelva el tamaño del fichero abierto?

fseek

largeroliker escribió:((fichero/4)+1)

No uses literales en el código, usa sizeof. ¿Por qué el +1?

EDITO: el final de fichero se puede detectar de varias formas diferentes vice, cada uno usa la que mejor le viene (también depende del contexto). La que dices es igual de válida (de hecho así lo hago yo en el HBL para algunas cosas)
Imagen

Avatar de Usuario
~Rdavid~
Experto
Experto
Mensajes: 965
Registrado: 12 Nov 2009, 17:29
Ubicación: Costa Rica

Re: Retomando la programación

Mensaje por ~Rdavid~ »

largeroliker escribió:He intentado de varias formas detectar el final del fichero pero en cada web te lo dicen de una manera distinta, así que lo voy a hacer de otra forma.


Al menos en C hay una función( feof(FILE* fichero) ) que permite detectar el final del fichero, entonces lo que se hace es leer con un bucle hasta llegar a al final, osea algo como while(! feof(fichero))
Imagen

Avatar de Usuario
largeroliker
Administrador
Administrador
Mensajes: 8283
Registrado: 03 Sep 2009, 09:46
PSN ID: larger0o
Gamertag Xbox Live: larger0o
Steam ID: larger0o
Twitter: larger0o
Ubicación: Málaga
Contactar:

Re: Retomando la programación

Mensaje por largeroliker »

m0skit0 escribió:
largeroliker escribió:¿Alguna función que devuelva el tamaño del fichero abierto?

fseek


:oki:
m0skit0 escribió:
largeroliker escribió:((fichero/4)+1)

No uses literales en el código, usa sizeof. ¿Por qué el +1?

No lo voy a poner así en el código, es para que os hagáis una idea :lol:

El +1 es para prevenir posibles decimales. Imaginad que el fichero pesa 5 bytes, entonces sería 5/4 = 1 + 1 = 2, para coger ese byte sobrante.

~Rdavid~ escribió:Al menos en C hay una función( feof(FILE* fichero) ) que permite detectar el final del fichero, entonces lo que se hace es leer con un bucle hasta llegar a al final, osea algo como while(! feof(fichero))


Por lo que estuve leyendo, en C++ no se usa esa función así, por lo que tengo serios problemas para usarlo. Yo al menos ni he dado con la tecla ni con nadie que sepa dónde está.
Imagen
Steam Deck · Xbox Series X · PS5 · Switch · PS Vita · WiiU · PS3 · new 3DS XL · Xbox 360 · PSP · PS2

Avatar de Usuario
m0skit0
Administrador
Administrador
Mensajes: 5585
Registrado: 03 Sep 2009, 09:35
Ubicación: 0xdeadbeef

Re: Retomando la programación

Mensaje por m0skit0 »

fseek es de C también, no de C++.

Por cierto, para C++ tienes un indicador de final de fichero.

Igualmente te dejo un par de enlaces de referencia:

http://www.cplusplus.com/doc/tutorial/files/
http://www.cplusplus.com/reference/iostream/fstream/

largeroliker escribió:El +1 es para prevenir posibles decimales. Imaginad que el fichero pesa 5 bytes, entonces sería 5/4 = 1 + 1 = 2, para coger ese byte sobrante.

¿Y si son 7 bytes? Has perdido 2 en el ciberespacio :lol: Usa el operador %.
Imagen

Responder