elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
07 Septiembre 2008, 02:37  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderador: ®®)
| | |-+  Split en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 [3] Ir Abajo Imprimir
Autor Tema: Split en C  (Leído 1231 veces)
Ferсhu

Desconectado Desconectado

Mensajes: 1.225

Menos palabras y Mas codigos.


Ver Perfil WWW
Re: Split en C
« Respuesta #30 en: 11 Mayo 2008, 02:29 »

declarando un tamaño mucho mayor q el del archivo y guardando.

Código:
while(!feof(file)){
Yo[i] = getc(file);
                 i++;
}

o con fread, fseek y ftell sacas el tamaño jeje vamosss busca un pokito.
En línea

E0N
Lab &
Colaborador

Desconectado Desconectado

Mensajes: 2.616



Ver Perfil WWW
Re: Split en C
« Respuesta #31 en: 11 Mayo 2008, 13:50 »

Mas comodo para sacar el tamaño es usar GetFileSize, que te lo devuelve directamente ;)
En línea
Freeze.

Desconectado Desconectado

Mensajes: 2.403


FireSoft


Ver Perfil WWW
Re: Split en C
« Respuesta #32 en: 11 Mayo 2008, 18:56 »

Estoy usando el GetFileSize con el handle del fopen y el segundo parametro null pero no me funciona :P Me retorna siempre -1. :(
En línea

Gana premios:


E0N
Lab &
Colaborador

Desconectado Desconectado

Mensajes: 2.616



Ver Perfil WWW
Re: Split en C
« Respuesta #33 en: 11 Mayo 2008, 19:43 »

Código
#include <windows.h>
#include <iostream>
 
void main()
{
HANDLE hFile =CreateFile("H:\\h.exe", 0, 0, 0, OPEN_EXISTING, 0,0);
std::cout << GetFileSize(hFile, 0);
return;
}

;)
En línea
Freeze.

Desconectado Desconectado

Mensajes: 2.403


FireSoft


Ver Perfil WWW
Re: Split en C
« Respuesta #34 en: 11 Mayo 2008, 19:43 »

Tengo esto pero tampoco funciona :P Ya no se ni que hacer :P
Código
	file = fopen("C:\\fofito.txt","rb");
   if (file != 0) {
  for(i=1;!feof(file);i++){
         Yo[i] = fgetc(file);
         tam += strlen(&Yo[i]);
      }
      char Yo[tam];
      cant = separar(&subYo,Yo,Firma);
      printf("%s",subYo[0]);
      fclose(file);
   }

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

Ya arriba acabo de ver el tamaño del archivo ;)
En línea

Gana premios:


^TiFa^

Desconectado Desconectado

Mensajes: 667


Need a Love Loan? Borrow some from me :)


Ver Perfil
Re: Split en C
« Respuesta #35 en: 12 Mayo 2008, 16:04 »

Que tenia de pesado usar fseek  :-\

Código:
fseek(archivo, 0, SEEK_END);
register int a;

a = ftell(archivo);


Era eso muy dificil????
En línea

http://chixmes.blogspot.com/

Si quieres saber el valor del dinero, trata de conseguirlo prestado. 

El que se enorgullece de sus conocimientos es como si estuviera ciego en plena luz.
- Benjamin Franklin.

Freeze.

Desconectado Desconectado

Mensajes: 2.403


FireSoft


Ver Perfil WWW
Re: Split en C
« Respuesta #36 en: 12 Mayo 2008, 17:34 »

El problema ya no es el tamaño :¬¬
Ya lo tenia hecho 1 post atras que el tuyo ;)
Pero ni con tu forma de obtener el tamaño ni con la mia funciona :P

Código
    if (file != 0) {
  for(i=1;!feof(file);i++){
         Yo[i] = fgetc(file);
         tam += strlen(&Yo[i]); // Incia y Fin Freeze
         p += Yo[i];  //Intento meter todos los caracteres no a un array sino a una variable y tampoco :P
      }
      fseek(file, 0, SEEK_END);// Inicia Tifa
      register int a;
      a = ftell(file); // Fin Tifa
      char Yo[a];
      separar(&subYo,Yo,Firma);
      printf("%s",subYo[0]); // No imprime lo que deberia.
      fclose(file);
   }
« Última modificación: 12 Mayo 2008, 17:36 por Freeze. » En línea

Gana premios:


Ferсhu

Desconectado Desconectado

Mensajes: 1.225

Menos palabras y Mas codigos.


Ver Perfil WWW
Re: Split en C
« Respuesta #37 en: 12 Mayo 2008, 23:06 »

Citar
       a = ftell(file); // Fin Tifa
       char Yo[a];

Frezee no podes hacer eso.

tendrias q hacer.

Código:
       a = ftell(file); // Fin Tifa
       char *Yo;
       Yo=(char *)malloc(sizeof(char)*a) // en este caso sizeof(char) vale 1 pero lo pongo para hacerlo mas general.
En línea

Freeze.

Desconectado Desconectado

Mensajes: 2.403


FireSoft


Ver Perfil WWW
Re: Split en C
« Respuesta #38 en: 13 Mayo 2008, 06:39 »

Ya ves todos los dias se aprende algo nuevo ;)

Sin embargo -y "odio" decirlo- todavia no esta solucionado :P Sigue sin dar resultado :P
En línea

Gana premios:


Ferсhu

Desconectado Desconectado

Mensajes: 1.225

Menos palabras y Mas codigos.


Ver Perfil WWW
Re: Split en C
« Respuesta #39 en: 13 Mayo 2008, 06:49 »

Código
    if (file != 0) {
  for(i=1;!feof(file);i++){
         Yo[i] = fgetc(file);
         tam += strlen(&Yo[i]); // Incia y Fin Freeze
         p += Yo[i];  //Intento meter todos los caracteres no a un array sino a una variable y tampoco :P
      }
      fseek(file, 0, SEEK_END);// Inicia Tifa
      register int a;
      a = ftell(file); // Fin Tifa
      char Yo[a];
      separar(&subYo,Yo,Firma);
      printf("%s",subYo[0]); // No imprime lo que deberia.
      fclose(file);
   }

Codigo de Freeze.

Modificado un pokito.

Código
    if (file != 0) {
      register int tam;
      char *Yo,*subYo;
 
      fseek(file, 0, SEEK_END);                    // vas al final del archivo
      tam = ftell(file);                           // obtenes la ultima pos, q ekivale al tamaño
      Yo=(char *)malloc(tam);                      // pedis esa cantidad de memoria
      fseek(file, 0, 0);                           // volves al principio para poder leer todo
      fread(Yo,tam,1,file);                        // lees todo el archivo y lo guardas en el buffer.
      cant=separar(&subYo,Yo,Firma);               // separa x firmas
      for(i=0;i<cant;i++)printf("%s\n",subYo[i]);  // te muestra lo q separo :p
      fclose(file);
   }

Te puede tirar error si tu exe tiene un tamaño muy grande y no puede reservar tanta memoria para el buffer.

« Última modificación: 13 Mayo 2008, 06:51 por Ferсhu » En línea

^TiFa^

Desconectado Desconectado

Mensajes: 667


Need a Love Loan? Borrow some from me :)


Ver Perfil
Re: Split en C
« Respuesta #40 en: 13 Mayo 2008, 15:14 »

Mi amor, yo solo te estaba dando funciones faciles para sacar el tamano de un archivo... no estaba haciendo el codigo por ti  :¬¬ se suponia que con fseek & ftell sacabas el tamano.. pero lo que sigue despues de ahi, debe ser logica de programacion tuya.

Hola Ferchu  :-* Siempre ayudando el nino. Creo que con un for seria suficiente para indagar el archivo completo :)

Aunque en vez de usar fseek otra vez para devolverme en el archivo, hubiese usado la funcion 'rewind' pero es lo que me gusta de C tienes muchas formas de hacer la misma validacion  :rolleyes:
En línea

http://chixmes.blogspot.com/

Si quieres saber el valor del dinero, trata de conseguirlo prestado. 

El que se enorgullece de sus conocimientos es como si estuviera ciego en plena luz.
- Benjamin Franklin.

Freeze.

Desconectado Desconectado

Mensajes: 2.403


FireSoft


Ver Perfil WWW
Re: Split en C
« Respuesta #41 en: 14 Mayo 2008, 16:31 »

Como hago para que no me de el error:

"LA CPU NTVDM ha encontrado una instrucción no permitida." Cerrar - Omitir :P
En línea

Gana premios:


^TiFa^

Desconectado Desconectado

Mensajes: 667


Need a Love Loan? Borrow some from me :)


Ver Perfil
Re: Split en C
« Respuesta #42 en: 14 Mayo 2008, 19:56 »

Jajajajaa    :xD :xD :xD :xD :xD :xD :xD :xD que onda? ahora tu aplicacion se ha convertido en un virus maligno  >:D

Es pura broma bebe  :-*
En línea

http://chixmes.blogspot.com/

Si quieres saber el valor del dinero, trata de conseguirlo prestado. 

El que se enorgullece de sus conocimientos es como si estuviera ciego en plena luz.
- Benjamin Franklin.

Páginas: 1 2 [3] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC