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

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: [1] 2 3 4 5 6 7 8 9
1  Programación / Bases de Datos / Re: ¿Cómo seleccionar los registros con la fecha más reciente? en: 27 Diciembre 2017, 19:16 pm
Prueba con algo como:
Código
  1. SELECT producto, fecha, cantidad FROM (SELECT * FROM tabla ORDER BY fecha DESC) s GROUP BY producto

Si por algún casual usas MySQL y diese un error asegúrate de que tienes desactivado ONLY_FULL_GROUP_BY.

Un saludo!

2  Programación / Java / Re: Problema con HashMap en: 27 Diciembre 2017, 18:46 pm
Mira la documentación sobre entrySet (https://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html#entrySet()).

Citar
Returns a Set view of the mappings contained in this map. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. If the map is modified while an iteration over the set is in progress (except through the iterator's own remove operation, or through the setValue operation on a map entry returned by the iterator) the results of the iteration are undefined. The set supports element removal, which removes the corresponding mapping from the map, via the Iterator.remove, Set.remove, removeAll, retainAll and clear operations. It does not support the add or addAll operations.
3  Foros Generales / Noticias / Re: Intel descataloga varios procesadores en: 11 Diciembre 2011, 20:51 pm
Supongo que será para reducir costes...tener un amplio catálogo de productos es más caro que tener uno más reducido..
4  Programación / Programación C/C++ / Re: EOF en archivo antes de su verdadero final en: 3 Diciembre 2011, 13:59 pm
Muchas gracias a ambos! AL final el programilla que estaba haciendo no ha tenido mucha utilidad, porque no he conseguido encontrar el patrón que sigue para los .docx (si para los .doc), pero aun así me ha servido para aprender algunas cosillas gracias a vuestra ayuda.  :D
Un saludo!
5  Programación / Programación C/C++ / Re: EOF en archivo antes de su verdadero final en: 1 Diciembre 2011, 20:58 pm
Jeje, esta tarde me he dado cuenta de eso...a partir de ahora seguiré la máxima de no tocarás código ajeno   ;D
He conseguido echar a andar el código pero he tenido que poner todo el código de la función cargar_fichero en el main porque no consigo llamar correctamente a la función...
La verdad es que todavía estoy intentando terminar de entender los punteros...
Yo a tu función cargar fichero la llamo más o menos así:
Código
  1. FILE * fp = fopen(argv[i], "rb");
  2. char ** contenido;
  3. unsigned long bytes;
  4. cargar_fichero(f, contenido, &bytes);
y después a buscar le paso
Código
  1. buscar(*ft, cadena, &bytes)
¿Qué es lo que estoy haciendo mal con los punteros?, porque me daba un fallo de segmentación creo que en el malloc...por eso he puesto el código de la función en el main y en vez de crear contenido como un char ** lo he creado como un char * y así si que he conseguido que funcionase...

Muchas gracias por la ayuda!
6  Programación / Programación C/C++ / Re: Algún sitio web con ejercicios? en: 30 Noviembre 2011, 21:12 pm
Yo conozco dos jueces online...
El de la OIE (Olimpiada Informatica Española): http://olimpiada-informatica.org/
El de USACO (USA Computing Olimpiad): http://www.usaco.org/

Un saludo.
7  Programación / Programación C/C++ / Re: EOF en archivo antes de su verdadero final en: 30 Noviembre 2011, 18:31 pm
Llevo toda la tarde intentándolo hacer funcionar, pero por algún motivo el fread parece que no funciona, porque ft no tiene el inicio del texto del archivo...
He probado todo lo que se me ha ocurrido y no he conseguido nada...fread devuelve que ha leido el número de caracteres correcto, pero luego nada, no están los caracteres que deberían estar...

Pongo aquí el código que tengo hecho (es posible que esté un poco guarrete de tanto poner printf's)...

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int buscar(char * ft, char * cadena, unsigned long * bytes);
  6. unsigned long flen(FILE *f);
  7. int cargar_fichero(FILE *f, char *contenido, unsigned long *nbytes);
  8.  
  9. int main (int argc, char* argv[]){
  10.    int i;
  11.    FILE * fp;
  12.    char * ft;
  13.    int a;
  14.    unsigned long bytes;
  15.    char data[] = {0x0D, 0x0C, 0x0D, 0x0D, 0x03, 0x0D, 0x0D, 0x04, 0x0D, 0x0D, 0x03, 0x0D, 0x0D, 0x04, 0x0D, 0x0D, 0x00};
  16.    for(i=1; i < argc; ++i){
  17.        fp = fopen(argv[i], "rb");
  18.        if(fp != NULL){
  19.            if((a=cargar_fichero(fp, ft, &bytes)) == 0)
  20.             return -1;
  21.  
  22.            if(buscar(ft, "footnotes.xml", &bytes) == 0)
  23.                printf("%s\n", argv[i]);
  24.            else{
  25.                printf("\n");
  26.                fseek ( fp , 0 , SEEK_SET ); //Devolvemos puntero al inicio
  27.                if(buscar(ft, data, &bytes) == 0)
  28.                    printf("%s\n", argv[i]);
  29.            }
  30.            return 0;
  31.            fclose(fp);
  32.  
  33.        }else
  34.            printf("No se ha podido abrir el archivo %s", argv[i]);
  35.  
  36.    }
  37.    return 0;
  38. }
  39. /*
  40.     Busca en el archivo la cadena indicada (imitiendo el \0)
  41. */
  42. int buscar(char * ft, char * cadena, unsigned long * bytes){
  43.  
  44.    int longi = strlen(cadena);
  45.    if(longi < 1)
  46.        return -2;
  47.    int i=0;
  48.    int k=0;
  49.    while(i < *bytes){printf("Va bien con c=%x, k=%d\n", ft[i], k);
  50.        if(ft[i] == cadena[k]){
  51.            k++;
  52.            while(k < longi && ++i < *bytes && ft[i] == cadena[k])
  53.                k++;
  54.            if(k == longi)
  55.                return 0;
  56.            else if(i >= *bytes){
  57.                return -1;
  58.            }else{
  59.                k=0;
  60.            }
  61.        }else
  62.         ++i;
  63.  
  64.    }
  65.    return -1;
  66.  
  67. }
  68.  
  69. unsigned long flen(FILE *f){
  70.    unsigned long pos, len;
  71.  
  72.    pos = ftell(f);
  73.    fseek(f , 0 , SEEK_END);
  74.    len = ftell(f);
  75.    fseek(f , pos , SEEK_SET);
  76.  
  77.    return len;
  78. }
  79.  
  80. int cargar_fichero(FILE *f, char *contenido, unsigned long *nbytes){
  81.     if((contenido = (char*) malloc((*nbytes = flen(f)) * sizeof(char))) == NULL)
  82.        return 0;
  83.  
  84.  
  85.    return fread(contenido , sizeof(char) , (*nbytes/sizeof(char)) , f);
  86. }
8  Programación / Programación C/C++ / Re: EOF en archivo antes de su verdadero final en: 30 Noviembre 2011, 00:08 am
OK, muchísimas gracias por la ayuda!
9  Programación / Programación C/C++ / EOF en archivo antes de su verdadero final en: 29 Noviembre 2011, 19:47 pm
Hola, estoy intentando hacer un programa en C que descubra si un archivo de Word tiene un pie de página...Para ello tengo que buscar una secuencia de de caracteres en el archivo y me he montado una funcioncilla que es la siguiente:
Código
  1. int buscar(FILE * fp, char * cadena){
  2.    char car;
  3.    int longi = strlen(cadena);
  4.    if(longi < 1)
  5.        return -2;
  6.    int i=0;
  7.    int k=0;
  8.    while((car = fgetc(fp)) != EOF){
  9.        if(car == cadena[i]){
  10.            k++;
  11.            while(i+1<(longi-1) && !feof(fp) && (car=fgetc(fp)) == cadena[++i])
  12.                k++;
  13.            if(k == longi-1)
  14.                return 0;
  15.            else if(feof(fp))
  16.                return -1;
  17.            else
  18.                i=k=0;  
  19.  
  20.        }
  21.    }
  22.    return -1;
  23.  
  24. }

La he probado con archivos de texto y funciona perfectamente...
El problema es que cuando le paso el .doc o .docx deja de buscar antes de llegar al final del archivo...he abierto el .doc con un editor hexadecimal y me he encontrado que dentro del propio archivo hay caracteres con FF y por lo tanto en cuanto se llega allí se cree que es el EOF y termina la búsqueda...
¿Hay alguna forma de detectar que no es el auténtico fin de fichero y continuar la búsqueda?
10  Programación / Bases de Datos / Re: WHERE id IN subquery... en: 21 Julio 2011, 20:02 pm
Pues simplificando y quitando todo lo que no está relacionado la estructura sería algo como

tabla users
idtotal_points
1700
2500
31000

Entonces la query debería rellenar la tabla statspos así (teniendo que se ordena de forma descendente de puntos):

idtypetotal_pos
102
203
301

Respecto a lo del procedure, no estoy muy familiarizado con ellos, pero...no se borran cada vez que reinicias mysql?
Páginas: [1] 2 3 4 5 6 7 8 9
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines