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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Temas
Páginas: [1] 2
1  Informática / Hardware / Cual de estos 3 portatiles comprar en: 24 Enero 2016, 14:13 pm
Buenas,

Si tuvieseis que elegir, ¿Cual de estos 3 portátiles compraríais?

http://www.pccomponentes.com/msi_cx61_2qc_1893xes_i7_4712mq_8gb_1tb_gt920m_15_6_.html?utm_campaign=afiliados&utm_source=effi-1395050051
http://www.pccomponentes.com/asus_gl552vw_dm149_i5_6300hq_4gb_1tb_gtx960m_15_6_%20.html?movil=no
http://www.amazon.es/gp/product/B0169B9NQU?adid=1DAHHZG3GCW3W7F68WMH&camp=3634&creative=24822&creativeASIN=B0169B9NQU&linkCode=as4&tag=for036-21#productDetails

O si conocéis uno mejor a un precio parecido, estoy abierto a sugerencias.
2  Programación / .NET (C#, VB.NET, ASP) / Windows Form transparente en: 30 Marzo 2014, 22:59 pm
Hola a todos. Ando creando una aplicacion en c#, y quiero mostrar una ventana desde mi aplicacion (como se haria con un messagebox).

El problema esta en que en lugar de una ventana con texto lo que quiero invocar es un grupo de textbox, pero sin que se encuentren dentro de una ventana con bordes, solo los textbox.

La unica solucion que he encontrado es crear un form, definir los bordes y el fondo transparentes, y poner dentro los textbox, pero mi pregunta es si no existe ninguna clase en System.windows.forms en la que se permita mostrar solo controles, sin falta de encontrarse en ventanas.

Espero que la pregunta quede mas o menos clara, que no es nada facil de explicar :huh:

gracias de antemano.
3  Informática / Electrónica / Portatil hace Tic-tac en: 16 Junio 2013, 18:30 pm
Hola a todos. Tengo un problema con mi ordenador portátil (Toshiba satelite pro c-650)

Resulta que si no tengo conectada la batería el ordenador no enciende aunque esté conectado a la corriente.

Por otro lado, si pongo la batería, y el cable de corriente a la vez, me pasan 2 cosas:
- Si el ordenador está apagado, el funcionamiento es normal, y la batería se carga.
- Si enciendo el ordenador es como si no tuviera el cable conectado y funciona con la batería.

Y ya por ultimo, me he dado cuenta que al conectar el cable de corriente suena un tic tac muy bajito.

Alguien sabe cual puede ser el problema?
4  Programación / Programación General / Saber sobre que objeto está el ratón en: 6 Marzo 2013, 20:40 pm
A ver si alguien me puede orientar un poco sobre como hacer un código, no quiero códigos solo una idea de por donde van los tiros.

Resulta que tengo una aplicación en la que hay un cuadro de dibujo, en el que dibujo lineas, puntos, circunferencias, etc (tal como hace autocad), este cuadro está hecho en openGl, aunque mis aplicaciones las desarrollo en C#.

El problema está en que quiero ampliar la funcionalidad para que al pasar el ratón por encima de una linea me la seleccione. La cosa está en que la única idea que se me ocurre, es que cuando mueva el ratón, comprobar una a una las lineas con las coordenadas del ratón.

No creo que esta sea la mejor idea, por que como haya muchas lineas va a ser una perdida enorme de recursos, alguna idea de como puedo hacerlo, o esa es la única. Trate de buscar algo de información de como hace windows con sus botones, pero no encontré nada. A ver si alguien me orienta

Gracias de antemano =)
5  Programación / Programación C/C++ / Usos fwrite, fread en: 11 Septiembre 2012, 17:09 pm
Hola a todos, estoy siguiendo un manual de programación, y ando con el manejo de ficheros, el problema es que me mandan mejorar un programa que ya he creado y no entiendo las mejoras.

En el programa leo los datos del fichero con fgets y fscanf para almacenarlos en el struct, y me mandan leerlos mediante fread y escribirlos con fwrite en lugar de con fprintf, pero no entiendo porque mejora eso el programa

A ver si alguien me orienta un poco, pongo el código que tengo hasta ahora, aunque no quiero que nadie implemente el uso de fwrite y fread, solo quiero una explicación

Un saludo


Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. struct fecha{
  5.    int dia, mes, año;
  6. };
  7.  
  8. struct{
  9.    char nombre[21], direccion[41], email[41];
  10.    int telefono;
  11.    struct fecha nacimiento;
  12. }agenda[100];
  13.  
  14. int main(){
  15.    int opcion;//Almacena la opcion elegida en el menu
  16.    int i=0;//Contador del stuct para saber los datos leidos y escritos
  17.    int j,k; //Variables auxiliares para los bucles
  18.    int tipo_busqueda;
  19.    char cadena_temporal[9], nombre_buscar[20]; //Cadenas auxiliares para leer numeros con gets()
  20.    FILE* fichero;
  21.  
  22.    //Leemos los datos existentes
  23.    fichero=fopen("agenda.dat", "rt");
  24.  
  25.    if(fichero==NULL){//Si no existe el fichero damos aviso de que lo vamos a crear
  26.        printf("El fichero aun no existe, asi que se creara\n\n");
  27.    }
  28.    else{
  29.        printf("Lectura correcta del fichero\n\n");
  30.        while(! feof(fichero)){//Leemos los datos del fichero y los almacenamos en el struct
  31.            fgetc(fichero);
  32.            fgets(agenda[i].nombre,20,fichero);
  33.            //Quitamos los espacios que hay antes de la cadena
  34.            for(k=0; k<21;k++){
  35.                if(agenda[i].nombre[k]!=' '){
  36.                    j=0;
  37.                    for(;k<21;k++){
  38.                        agenda[i].nombre[j]=agenda[i].nombre[k];
  39.                        j++;
  40.                    }
  41.                }
  42.            }
  43.            fgetc(fichero);
  44.            fgets(agenda[i].direccion,40,fichero);
  45.            //Quitamos los espacios que hay antes de la cadena
  46.            for(k=0; k<41;k++){
  47.                if(agenda[i].direccion[k]!=' '){
  48.                    j=0;
  49.                    for(;k<41;k++){
  50.                        agenda[i].direccion[j]=agenda[i].direccion[k];
  51.                        j++;
  52.                    }
  53.                }
  54.            }
  55.            fscanf(fichero,"%9d", &agenda[i].telefono);
  56.            fgetc(fichero);
  57.            fgets(agenda[i].email,40,fichero);
  58.            //Quitamos los espacios que hay antes de la cadena
  59.            for(k=0; k<41;k++){
  60.                if(agenda[i].email[k]!=' '){
  61.                    j=0;
  62.                    for(;k<41;k++){
  63.                        agenda[i].email[j]=agenda[i].email[k];
  64.                        j++;
  65.                    }
  66.                }
  67.            }
  68.            fscanf(fichero,"%d%d%d", &agenda[i].nacimiento.dia, &agenda[i].nacimiento.mes,
  69.                   &agenda[i].nacimiento.año);
  70.            fgetc(fichero);
  71.            i++;
  72.        }
  73.    }
  74.  
  75.  
  76.    fclose(fichero);
  77.  
  78.  
  79.    //Interactuamos con el usuario
  80.    do{
  81.        //Imprimimos el menu de opciones
  82.        printf("1. Anadir nuevo dato\n");
  83.        printf("2. Visualizar los nombres registrados\n");
  84.        printf("3. Mostrar todos los datos de alguien\n");
  85.        printf("4. Salir\n");
  86.        printf("Opcion: ");
  87.        gets(cadena_temporal);
  88.        sscanf(cadena_temporal,"%1d", &opcion);
  89.        printf("\n");
  90.  
  91.        if(opcion==1 && i>99){//Si la agenda esta llena no tomara mas datos
  92.            printf("La agenda ya esta llena\n\n");
  93.  
  94.        }
  95.        else{//Cuando la agenda no esta llena aun
  96.  
  97.            //Creamos un switch con las opciones
  98.            switch(opcion){
  99.                case 1://Añadimos un nuevo dato al struct
  100.                    printf("Introduce el nombre: ");
  101.                    gets(agenda[i].nombre);
  102.                    printf("Introduce la direccion: ");
  103.                    gets(agenda[i].direccion);
  104.                    printf("Introduce el telefono: ");
  105.                    gets(cadena_temporal);
  106.                    sscanf(cadena_temporal,"%9d", &agenda[i].telefono);
  107.                    printf("Introduce el e-mail: ");
  108.                    gets(agenda[i].email);
  109.                    printf("Introduce la fecha de nacimiento\n");
  110.                    printf("\tdia: ");
  111.                    gets(cadena_temporal);
  112.                    sscanf(cadena_temporal,"%2d", &agenda[i].nacimiento.dia);
  113.                    printf("\tmes: ");
  114.                    gets(cadena_temporal);
  115.                    sscanf(cadena_temporal, "%2d", &agenda[i].nacimiento.mes);
  116.                    printf("\tanio: ");
  117.                    gets(cadena_temporal);
  118.                    sscanf(cadena_temporal, "%4d", &agenda[i].nacimiento.año);
  119.                    i++;
  120.                    break;
  121.                case 2://Mostrar por pantalla los nombres registrados
  122.                    for(j=0; j<i; j++){
  123.                        puts(agenda[j].nombre);
  124.                    }
  125.                    printf("\n");
  126.                    break;
  127.                case 3://Mostrar todos los datos de alguna persona
  128.  
  129.                    do{//Busqueda parcial o busqueda completa
  130.                        printf("Busqueda completa(0) o busqueda parcial(1): ");
  131.                        gets(cadena_temporal);
  132.                        sscanf(cadena_temporal, "%1d", &tipo_busqueda);
  133.                        if(tipo_busqueda!=0 && tipo_busqueda!=1)
  134.                            printf("La opcion introducida no es correcta\n");
  135.                    }while(tipo_busqueda!=0 && tipo_busqueda!=1);
  136.  
  137.                    printf("Nombre a buscar: ");
  138.                    gets(nombre_buscar);
  139.                    printf("\n");
  140.  
  141.                    switch(tipo_busqueda){
  142.                        case 0://Busqueda completa
  143.                            for(j=0; j<i; j++){
  144.                                if(strcmp(nombre_buscar,agenda[j].nombre)==0){
  145.                                    printf("Nombre: %s, direccion: %s, Telefono %d\ne-mail: %s, Fecha nacimiento: %d/%d/%d\n\n",
  146.                                        agenda[j].nombre, agenda[j].direccion, agenda[j].telefono, agenda[j].email,
  147.                                        agenda[j].nacimiento.dia, agenda[j].nacimiento.mes, agenda[j].nacimiento.año);
  148.                                }
  149.  
  150.                            }
  151.                            break;
  152.                        case 1://Busqueda parcial
  153.                            for(j=0; j<i; j++){
  154.                                if(strstr(agenda[j].nombre,nombre_buscar)!=NULL){
  155.                                    printf("Nombre: %s, direccion: %s, Telefono %d\ne-mail: %s, Fecha nacimiento: %d/%d/%d\n\n",
  156.                                        agenda[j].nombre, agenda[j].direccion, agenda[j].telefono, agenda[j].email,
  157.                                        agenda[j].nacimiento.dia, agenda[j].nacimiento.mes, agenda[j].nacimiento.año);
  158.                                }
  159.                            }
  160.                            break;
  161.                        default:;
  162.                    }
  163.                    break;
  164.                case 4://Opcion de salir
  165.                    break;
  166.                default: printf("La opcion elegida no es correcta\n");
  167.            }
  168.        }
  169.        printf("\n");
  170.  
  171.  
  172.    }while(opcion!=4);
  173.  
  174.  
  175.    //Guardamos los datos existentes en el fichero de agenda
  176.    fichero=fopen("agenda.dat", "wt");
  177.    for(j=0; j<i; j++){
  178.        if(j!=i-1){
  179.            fprintf(fichero, "%20s%40s%9d%40s%2d %2d %4d\n", agenda[j].nombre, agenda[j].direccion, agenda[j].telefono,
  180.                    agenda[j].email, agenda[j].nacimiento.dia, agenda[j].nacimiento.mes, agenda[j].nacimiento.año);
  181.        }
  182.        else
  183.            fprintf(fichero, "%20s%40s%9d%40s%2d %2d %4d", agenda[j].nombre, agenda[j].direccion, agenda[j].telefono,
  184.                    agenda[j].email, agenda[j].nacimiento.dia, agenda[j].nacimiento.mes, agenda[j].nacimiento.año);
  185.    }
  186.  
  187.    fclose(fichero);
  188.  
  189.    return 0;
  190. }
  191.  
6  Informática / Hardware / Ati 3650 con fuente de 250W? en: 24 Agosto 2012, 17:04 pm
Puedo conectar esta tarjeta grafica si tengo una fuente de solo 250W? es solo para hacer la prueba de si lo que falla en mi ordenador es la grafica
Un saludo
7  Programación / Programación C/C++ / Perfeccionar código escrito en C en: 22 Agosto 2012, 21:59 pm
Hola buenas, acabo de aprender el manejo de estructuras en lenguaje C, y me gustaría que me dierais vuestra opinión sobre un código
La función de esto seria saber que cosas hago y no debería hacer, o que no hago y debería de hacer, mas que nada para  no ir cogiendo vicios que no sean adecuados
Muchas gracias a todos.

Acabo de ver el post http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html tendre que echarle un ojo jeje
Código
  1. #include<stdio.h>
  2.  
  3. //Estructuras para los datos personales
  4. struct nombre_completo{
  5.    //Datos personales: Nombre Apellido Apellido
  6.    char nombre[40], apellido1[40], apellido2[40];
  7. };
  8.  
  9. struct fecha_nacimiento{
  10.    int dia, mes, año;
  11. };
  12.  
  13. //Estructura en la que se almacenaran todos los datos de una persona
  14. struct datos{
  15.    //Datos personales (estructura externa)
  16.    struct nombre_completo persona;
  17.    //Fecha de nacimiento (estructura externa)
  18.    struct fecha_nacimiento nacimiento;
  19.    long telefono;
  20.  
  21. };
  22.  
  23. //Funciones de asignacion de datos
  24. struct nombre_completo nuevo_nombre(){
  25.    struct nombre_completo nombre1;
  26.  
  27.    printf("Datos personales\n");
  28.    printf("Dime tu nombre: ");
  29.    fflush(stdin);
  30.    gets(nombre1.nombre);
  31.    printf("Primer apellido: ");
  32.    fflush(stdin);
  33.    gets(nombre1.apellido1);
  34.    printf("Segundo apellido: ");
  35.    fflush(stdin);
  36.    gets(nombre1.apellido2);
  37.  
  38.  
  39.    return nombre1;
  40. }
  41.  
  42. struct fecha_nacimiento nueva_fecha(){
  43.    struct fecha_nacimiento fecha1;
  44.  
  45.    printf("\nFecha de nacimiento\n");
  46.    printf("Dia: ");
  47.    fflush(stdin);
  48.    scanf("%d", &fecha1.dia);
  49.    printf("Mes: ");
  50.    fflush(stdin);
  51.    scanf("%d", &fecha1.mes);
  52.    printf("Año: ");
  53.    fflush(stdin);
  54.    scanf("%d", &fecha1.año);
  55.  
  56.    return fecha1;
  57. }
  58.  
  59. //Funcion que asigna todos los datos personales por medio de llamadas a las otras funciones
  60. struct datos nuevos_datos(){
  61.    struct datos usuario;
  62.  
  63.    //Llamada a la funcion que asigna Nombre y apellidos
  64.    usuario.persona=nuevo_nombre();
  65.  
  66.    //Llamada a la funcion que asigna la fecha de nacimiento
  67.    usuario.nacimiento=nueva_fecha();
  68.  
  69.    //Peticion del telefono al usuario
  70.    printf("\nTelefono: ");
  71.    fflush(stdin);
  72.    scanf("%d",&usuario.telefono);
  73.  
  74.    return usuario;
  75. }
  76.  
  77. //Funcion que imprime por pantalla los datos
  78. void mostrar_datos(struct datos asignado){
  79.    printf("\n\nLos datos que se han introducido son los siguientes:");
  80.    printf("\n----------------------------------------------------\n");
  81.    printf("Nombre completo: %s %s %s\n", asignado.persona.nombre, asignado.persona.apellido1, asignado.persona.apellido2);
  82.    printf("Fecha de nacimiento: %d/%d/%d\n", asignado.nacimiento.dia, asignado.nacimiento.mes, asignado.nacimiento.año);
  83.    printf("Numero de telefono: %d", asignado.telefono);
  84.  
  85. }
  86.  
  87.  
  88. int main(){
  89.    struct datos persona1;
  90.  
  91.    //Asignacion de datos a persona1
  92.    persona1=nuevos_datos();
  93.  
  94.    //LLamada a la funcion que muestra los datos por pantalla
  95.    mostrar_datos(persona1);
  96.  
  97.    return 0;
  98. }
  99.  
8  Comunicaciones / Dispositivos Móviles (PDA's, Smartphones, Tablets) / Formatear Nokia C6 en: 31 Julio 2012, 14:55 pm
Hola a todos, me gustaría formatear mi nokia C6, ya que con las aplicaciones que tengo y todo tengo la memoria muy llena, y ademas no me conecta al wifi de casa.

He leído que se puede hacer de 3 maneras.
- Hard reset (borrado completo del movil). Codigo: *#7370#
- Soft reset (no borra nada). Codigo *#7780#
- Mediante programa Nokia Qt SDK

Pero segun he leido se me borra la tienda ovi, y luego es complicado recuperarla. Ademas no se si se me quitara la liberacion que le he hecho al terminal
¿Alguien me puede explicar un poco el tema?
9  Programación / Programación C/C++ / Duda con "cast" en C en: 18 Febrero 2012, 17:08 pm
Me parece que no entendi bien del todo eso del cast, ilustro mi idea con codigo a ver si alguien me puede corregir

Citar
Código:
#include<stdio.h>

main()
{
      float numero=12.5, numero2=1.2;
      int division;
     
      division=(int)numero/numero2;
     
      printf("El valor de la division es %d\n", division);
     
      system("pause");
      return 0;
}

Cuando ejecuto este código, la idea que tengo yo es, que antes de realizar la división numero/numero2, lo que realiza es convertir numero a un entero de valor 12, y numero2 a un entero de valor 1, por lo tanto al dividirlos se almacenaria el resultado, 12, en la variable división, pero sin embargo el programa me muestra como resultado 9.
A ver is alguien puede ayudarme
10  Programación / Programación C/C++ / Llamar a una funcion con una cadena en: 7 Junio 2011, 16:21 pm
Hola.
Me gustaría saber si puedo crear una función cuya entrada sea una cadena de caracteres. En caso de que la respuesta sea que si, como haría la llamada
pongo un ejemplo que supongo que estará mas claro

Código:
//Programa que llama a una funcion con una cadena
#include<iostream>
using namespace std;
bool Analiza(char);

int main()
{
    // Almacenamos la cadena en la variable cifras[]
    char cifras[9];

    //Pedimos la cadena por pantalla
    cout<<"Introduce 9 caracteres: ";
    for(int i=0; i<9; i++) cin>>cifras[i];

    //Llamamos a la funcion con nuestros caracteres
    Analiza(cifras[9]); //Se que esta linea no funciona, y es en la que tengo dudas

    return 0;
}

//Funcion que analiza la cadena de caracteres
bool Analiza (char Letras[10])
{

}
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines