Página 1 de 6

Retomando la programación

Publicado: 16 Mar 2011, 13:12
por largeroliker
Buenas gente, he decidido retomar la programación pero en esta ocasión haciendo (o intentándolo :lol:) un programa sencillito, pero útil.

La idea es hacer un desempaquetador de DOCUMENT.DAT caseros para recuperar las eventuales imágenes que pueden formarlos.

Por el momento he conseguido abrir exitosamente un archivo remoto y leerlo. El problema que tengo es que tengo que colocar la ruta donde está el archivo, no sé cómo hacerlo para que lo lea de la carpeta donde se encuentra el ejecutable. Intenté copiando el archivo a donde se encuentra el ejecutable en desarrollo pero no lo encuentra :/

Una ayudita? Una vez arregle esto quiero ponerme a intentar abrir los archivos en hexadecimal, que es el siguiente paso :lol:

Re: Retomando la programación

Publicado: 16 Mar 2011, 13:20
por pspCaracas
Poderes de los m0skit0s fantásticos actívense!!!

PD: En qué lenguaje estás trabajando?

Re: Retomando la programación

Publicado: 16 Mar 2011, 13:22
por largeroliker
Uy, se me olvidó decirlo...C++ con entorno Eclipse. Es lo que tengo más reciente.

Re: Retomando la programación

Publicado: 16 Mar 2011, 13:59
por m0skit0
Pon tu código, vice, o por lo menos la parte donde abres el fichero.

Si no le pones ruta, debería abrirlo sin problemas si está en la ruta del ejecutable. Ten cuidado también porque es posible que el ejecutable no se genere donde crees que se genera, sobre todo si tienes activada la depuración. Otra opción es pasarle al programa la ruta del fichero como argumento, así no caben dudas.

Aparte, ¿qué te refieres exactamente con "un archivo remoto"? ¿Un fichero en otro equipo?

Re: Retomando la programación

Publicado: 16 Mar 2011, 14:05
por largeroliker
No, uno del equipo. Dije remoto porque nunca lo habia hecho antes xD

El archivo lo puse en la carpeta donde esta fisicamente el ejecutable tras compilar, en Debug.

Luego pongo el minicodigo, que he empezado hoy :lol:

Re: Retomando la programación

Publicado: 16 Mar 2011, 14:12
por m0skit0
:lol: vaya remoto :lol:

Ok no hay problema vice, pero no te cortes, todos hemos empezao alguna vez ;)

Re: Retomando la programación

Publicado: 16 Mar 2011, 18:34
por largeroliker
Es que no sabía cargar ese tipo de archivos hasta hace un momento, entonces como sólo podía cargar archivos del proyecto y éstos son externos, por eso los llamé remotos :lol:

De momento he dicho que estoy empezando, no he hecho aún ninguna función, sólo el main para testear la apertura del archivito de turno.

Código: Seleccionar todo

/*
 * extractor.cpp
 *
 *  Creado el: 16/03/2011
 *      Autor: largeroliker
 *  Veremos en qué queda esto.
 *  Por el momento vamos a intentar hacer un extractor de imágenes de DOCUMENT.DAT comunes.
 */
#include <iostream>
#include <fstream>
 using namespace std;
 char cadena [12];

int main()
{
   ifstream f("/host/Users/Adrián/Desktop/hola", ifstream::in);
   if (!f)
   {
      cout << "fallo" << endl;
      return -1;
   }
   f >> cadena;
   cout << cadena;
   return 0;
}


Ahora la idea es cargar el texto de un archivo, leerlo y mostrarlo en pantalla. En esa ruta está puesto el archivo "hola" de contenido "holaquetal" y efectivamente carga el texto.

Tengo que cambiar ese cout por otro porque si no no me lee los espacios, eso sí xD

Si quito la ruta y sólo pongo "hola" para cargar, devuelve Error. El archivo "hola" se encuentra junto al ejecutable en la carpeta Debug del proyecto.

Re: Retomando la programación

Publicado: 17 Mar 2011, 08:58
por m0skit0
Lo siento vice, yo no tengo ni idea de usar fstream y esas cosas de C++. No tengo mucha experiencia en C++. Si quieres lo vemos en C a secas.

Igualmente como te digo la mejor opción sigue siendo pasarle la ruta como argumento al programa.

Suerte con ello.

Re: Retomando la programación

Publicado: 17 Mar 2011, 09:47
por largeroliker
Bueno, tengo buenas noticias, al menos en parte.

He probado a sacar el ejecutable una vez modificado para que cargue solamente "hola", y he movido ambos archivos a /home/larger. Lo he ejecutado desde la terminal y funciona :D

No entiendo por qué desde la emulación en Eclipse no lo hace :?

Por cierto, otro problema, esta vez linuxero...no puedo ejecutar el programa con doble click? El programa ejecutable no se ejecuta 0o

Re: Retomando la programación

Publicado: 17 Mar 2011, 09:55
por Yn$an€
largeroliker escribió:Bueno, tengo buenas noticias, al menos en parte.

He probado a sacar el ejecutable una vez modificado para que cargue solamente "hola", y he movido ambos archivos a /home/larger. Lo he ejecutado desde la terminal y funciona :D

No entiendo por qué desde la emulación en Eclipse no lo hace :?

Por cierto, otro problema, esta vez linuxero...no puedo ejecutar el programa con doble click? El programa ejecutable no se ejecuta 0o


Porque en eclipse se ejecuta como si estuviese en el directorio del proyecto. De hecho llamas a una función para conocer el directorio de trabajo desde tu programa, ésta te dará como salida el directorio de proyecto, aunque el ejecutable se genere en Debug.

Lo de linux, cambiale los permisos:
chmod +x "el ejecutable"

Así tendría que funcionar. Otra cosa, a lo mejor si lo ejecutas, pero no paras el flujo el tiempo suficiente para verlo y se ejecuta de golpe. Prueba a meterle algo al final que lo pare. Al hacerlo desde la consola, ésta queda abierta cuando el programa termina, pero si lo haces con doble click, no a no ser que el programa no termine. Me explico?

SLDS