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

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19 20
91  Programación / Java / Re: arreglos de cadenas en: 4 Agosto 2011, 15:31 pm
No olvides que java es orientado a objetos, acostumbrate plantear las soluciones de esa manera

Así:

Código
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4.  
  5.  
  6. class Cliente{
  7. private BufferedReader en = null;
  8. //contador de objetos creados
  9. private static int numeroDeCliente = 0;
  10. private String nombre;    
  11. private String fechaIngreso;    
  12. private String fechaRetiro;    
  13. private String tipoHabitacion;    
  14.  
  15. public Cliente(BufferedReader en){
  16. //has de agregar validación para el objeto en
  17. this.en = en;
  18. //por cada objeto creado sumamos una al contador
  19. numeroDeCliente++;
  20. }
  21.  
  22. public void leerCliente()throws IOException{
  23. System.out.println("Introduzca el nombre y primer apellido del cliente numero " + Cliente.numeroDeCliente + ":");
  24. System.out.flush();    
  25. this.setNombre(en.readLine());
  26. }
  27.  
  28. public void leerFechaIngreso()throws IOException{  
  29. System.out.println("Introduzca la fecha de ingreso del cliente numero " + Cliente.numeroDeCliente + ":");  
  30. System.out.flush();  
  31. this.setFechaIngreso(en.readLine());  
  32. }
  33.  
  34.  
  35. public void leerFechaRetiro()throws IOException{  
  36. System.out.println("Introduzca la fecha de retiro del cliente numero " + Cliente.numeroDeCliente + ":");  
  37. System.out.flush();  
  38. this.setFechaRetiro(en.readLine());    
  39. }
  40.  
  41. public void leerTipoHabitacion()throws IOException{  
  42. System.out.println("Introduzca el tipo de habitacion numero " + Cliente.numeroDeCliente + ":");  
  43. System.out.flush();    
  44. this.setTipoHabitacion(en.readLine());
  45. }
  46.  
  47. public void leerDatosCliente()throws IOException{
  48. leerCliente();
  49. leerFechaIngreso();
  50. leerFechaRetiro();
  51. leerTipoHabitacion();
  52. }
  53.  
  54. /**
  55. * Retorna la información que nos interesa del cliente
  56. */
  57. public String toString(){
  58. StringBuffer buffer = new StringBuffer();
  59. buffer.append("Cliente :"+ this.getNombre());
  60. buffer.append("\n");
  61.  
  62. buffer.append("FechaIngreso :"+ this.getFechaIngreso());
  63. buffer.append("\n");
  64.  
  65. buffer.append("Fecha Retiro :"+ this.getFechaRetiro());
  66. buffer.append("\n");
  67.  
  68. buffer.append("Tipo Habitación :"+ this.getTipoHabitacion());
  69. buffer.append("\n");
  70.  
  71. return buffer.toString();
  72. }
  73.  
  74.  
  75.  
  76. public String getFechaIngreso() {
  77. return fechaIngreso;
  78. }
  79.  
  80. public void setFechaIngreso(String fechaIngreso) {
  81. this.fechaIngreso = fechaIngreso;
  82. }
  83.  
  84. public String getFechaRetiro() {
  85. return fechaRetiro;
  86. }
  87.  
  88. public void setFechaRetiro(String fechaRetiro) {
  89. this.fechaRetiro = fechaRetiro;
  90. }
  91.  
  92. public String getNombre() {
  93. return nombre;
  94. }
  95.  
  96. public void setNombre(String nombre) {
  97. this.nombre = nombre;
  98. }
  99.  
  100. public String getTipoHabitacion() {
  101. return tipoHabitacion;
  102. }
  103.  
  104. public void setTipoHabitacion(String tipoHabitacion) {
  105. this.tipoHabitacion = tipoHabitacion;
  106. }
  107. }
  108.  
  109. public class prueba {
  110.  
  111. public static void main(String[] args){  
  112. //Declaramos el buffer de lectura para leer de teclado    
  113.  
  114. Cliente [] clientes = new Cliente[10];
  115.  
  116. try{
  117. //por cada cliente en el array , utilizamos el bucle for mejorado
  118. for(Cliente cli : clientes){  
  119. cli = new Cliente(br);
  120. cli.leerDatosCliente();
  121. System.out.println(cli.toString());  
  122. }  
  123.  
  124.  
  125. }catch(IOException error){
  126. error.printStackTrace();
  127. }
  128.  
  129. }
  130. }
  131.  
  132.  
92  Programación / Java / Re: ejemplo de String en: 26 Julio 2011, 17:03 pm
De nada .  ::)
93  Programación / Java / Re: ejemplo de String en: 24 Julio 2011, 16:07 pm
Te has preguntado lo que sucede si veces es mayor a palabra.length() , pues esto

Código
  1. Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
  2. at java.lang.String.charAt(String.java:694)
  3. at PruebaString.traslacion(PruebaString.java:12)
  4. at PruebaString.main(PruebaString.java:24)
  5.  

en lugar de usar String, usa StringBuffer, por temas de eficiencia más que nada

Código
  1. public String traslacion(String palabra, int veces){
  2.    StringBuffer nuevo = new StringBuffer();
  3.    int tam = palabra.length() - 1;
  4.  
  5.            if(veces > palabra.length()){
  6. veces = tam;
  7.            }
  8.  
  9.    while(veces > 0){    
  10.    nuevo.append(palabra.charAt(tam--));
  11.    veces--;
  12.        }
  13.  
  14.    nuevo.append(palabra.substring(0,(tam-veces)+1));
  15.    return nuevo.toString();
  16.    }
  17.  
94  Programación / Scripting / Re: Problemas con paréntesis y espacios en nombres de fichero en: 17 Julio 2011, 19:56 pm
Perfecto , me ha funcionado a la perfección, muchas gracias , dejo el script completo por si alguien le sirve, este script debe ubicarse en la ruta de scripts de nautilus para que aparezca el menu contextual y pueda ser llamado dando al botón derecho dentro de cualquier directorio, creará una carpeta llamada renombrados donde dejará los archivos tal y como estaban antes de renombrarlos.
Código
  1. /home/diego/.gnome2/nautilus-scripts

Se puede mejorar ...

renombra.sh
Código
  1. #!/bin/bash
  2. #
  3. #description : Renombra los ficheros del directorio actual y los deja en la carpeta de renombrados
  4. #autor = didacso  for i in $( ls ); do
  5.  
  6. carpetaNueva="renombrados"
  7. extension="jpg"
  8. AQUI=$( pwd )
  9. RENOMBRADOS="$AQUI"/$carpetaNueva
  10. let ELEMENTOS=0
  11.  
  12. mkdir "$RENOMBRADOS"
  13. ls -1 | while read i ; do
  14. NOW=$(date +"%m-%d-%y")-$(date +"%N")
  15. echo  "$AQUI/$NOW.$extension" >> "$RENOMBRADOS/estadisticas.txt"
  16. cp "$i" "$AQUI/$NOW.$extension"
  17. mv "$i" "$RENOMBRADOS/$i"
  18. let ELEMENTOS=ELEMENTOS+1
  19. done
  20.  
  21.  
  22. gxmessage -center -title "Operación completada" $ELEMENTOS " elementos procesados"
  23.  
  24. echo $ELEMENTOS " elementos procesados" >> "$RENOMBRADOS/estadisticas.txt"
  25.  
95  Programación / Scripting / Re: Problemas con paréntesis y espacios en nombres de fichero en: 17 Julio 2011, 18:59 pm
Hola Leo , gracias por contestar, tu código funciona bien, pero estaba intentando hacerlo sin necesidad de un fichero , en mi código me había dado cuenta de que los nombres de fichero que contienen espacios los divide en dos , por ejemplo
foto 1.jpg
al hacer el ls i guardar el nombre del fichero en i , si hago un printf de i me pondría
foto
1.jpg
la verdad es que me gustaría arreglarlo para que me lo pille de esa manera, el problema esta en
Código
  1. for i in $( ls -1 ); do
  2.  

se te ocurre algo ?
96  Programación / Scripting / [Bash] Problemas con paréntesis y espacios en nombres de fichero [Solucionado] en: 17 Julio 2011, 16:15 pm
Hola a todos , estoy creando un script para renombrar ficheros, con nombres de ficheros normales ya funciona , pero cuando tengo nombres de fichero con espacios o paréntesis no va bien , alguna idea?
El script:
Código
  1. #!/bin/bash
  2. #
  3. #description : Renombra los ficheros del directorio actual y los deja en la carpeta de renombrados
  4. #autor = didacso
  5.  
  6. carpetaNueva="renombrados"
  7. extension="jpg"
  8. AQUI=$( pwd )
  9. RENOMBRADOS="$AQUI"/$carpetaNueva
  10. ELEMENTOS=0
  11.  
  12. mkdir "$RENOMBRADOS"
  13. for i in $( ls ); do
  14. NOW=$(date +"%m-%d-%y")-$(date +"%N")
  15. echo  "$AQUI/$NOW.$extension" >> "$RENOMBRADOS/estadisticas.txt"
  16. echo "problema con " "$i"
  17. cp "$i" "$AQUI/$NOW.$extension"
  18. mv "$i" "$RENOMBRADOS/$i"
  19. let ELEMENTOS=ELEMENTOS+1
  20. done
  21.  
  22.  
  23. gxmessage -center -title "Operación completada" $ELEMENTOS " elementos procesados"
  24.  
  25. echo $ELEMENTOS " elementos procesados" >> "$RENOMBRADOS/estadisticas.txt"
  26.  
la salida del comando es la siguiente
Código
  1. cp: no se puede efectuar `stat' sobre «0g3nG3iJN4FaUzY0H4KvcdJZGFY»: No existe el fichero o el directorio
  2. mv: no se puede efectuar `stat' sobre «0g3nG3iJN4FaUzY0H4KvcdJZGFY»: No existe el fichero o el directorio
  3. cp: no se puede efectuar `stat' sobre «(1)»: No existe el fichero o el directorio
  4. mv: no se puede efectuar `stat' sobre «(1)»: No existe el fichero o el directorio
  5. cp: no se puede efectuar `stat' sobre «0g3nG3iJN4FaUzY0H4KvcdJZGFY»: No existe el fichero o el directorio
  6. mv: no se puede efectuar `stat' sobre «0g3nG3iJN4FaUzY0H4KvcdJZGFY»: No existe el fichero o el directorio
  7. cp: no se puede efectuar `stat' sobre «(10).jpg»: No existe el fichero o el directorio
  8. mv: no se puede efectuar `stat' sobre «(10).jpg»: No existe el fichero o el directorio
  9. cp: no se puede efectuar `stat' sobre «0g3nG3iJN4FaUzY0H4KvcdJZGFY»: No existe el fichero o el directorio
  10. mv: no se puede efectuar `stat' sobre «0g3nG3iJN4FaUzY0H4KvcdJZGFY»: No existe el fichero o el directorio
  11. cp: no se puede efectuar `stat' sobre «(2)»: No existe el fichero o el directorio
  12. mv: no se puede efectuar `stat' sobre «(2)»: No existe el fichero o el directorio
  13. cp: no se puede efectuar `stat' sobre «0g3nG3iJN4FaUzY0H4KvcdJZGFY»: No existe el fichero o el directorio
  14. mv: no se puede efectuar `stat' sobre «0g3nG3iJN4FaUzY0H4KvcdJZGFY»: No existe el fichero o el directorio
  15. cp: no se puede efectuar `stat' sobre «(4)»: No existe el fichero o el directorio
  16. mv: no se puede efectuar `stat' sobre «(4)»: No existe el fichero o el directorio
  17. cp: no se puede efectuar `stat' sobre «0g3nG3iJN4FaUzY0H4KvcdJZGFY»: No existe el fichero o el directorio
  18. mv: no se puede efectuar `stat' sobre «0g3nG3iJN4FaUzY0H4KvcdJZGFY»: No existe el fichero o el directorio
  19. cp: no se puede efectuar `stat' sobre «(5).jpg»: No existe el fichero o el directorio
  20. mv: no se puede efectuar `stat' sobre «(5).jpg»: No existe el fichero o el directorio
  21.  
  22.  

los nombres de los ficheros son los siguientes:

Código
  1. 0g3nG3iJN4FaUzY0H4KvcdJZGFY (1)       0g3nG3iJN4FaUzY0H4KvcdJZGFY (2)  0g3nG3iJN4FaUzY0H4KvcdJZGFY (5).jpg  0g3nG3iJN4FaUzY0H4KvcdJZGFY (9).jpg
  2. 0g3nG3iJN4FaUzY0H4KvcdJZGFY (10).jpg  0g3nG3iJN4FaUzY0H4KvcdJZGFY (4)  0g3nG3iJN4FaUzY0H4KvcdJZGFY (8).jpg  
  3.  
no se si el problema es por el espacio o por el paréntesis
97  Programación / Programación C/C++ / Re: martiz de char doble puntero en: 14 Julio 2011, 21:49 pm
A mi me funciona así ..

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main()
  6. {
  7.     int filas = 5;
  8.     int columnas = 30;
  9.     int i = 0;
  10.     char **listaPalabras = NULL;
  11.  
  12.     listaPalabras  = (char**) malloc(sizeof(char*) * filas * columnas);
  13.  
  14.  
  15.     for (; i < filas ; i++){
  16. listaPalabras[i] = (char*)malloc(sizeof(char) * columnas);
  17. strcpy (listaPalabras[i] , "TEXTO PRUEBA\n");
  18.     }
  19.  
  20.     for (i = 0; i < filas ; i++){
  21. printf("%s ", listaPalabras[i]);
  22.     }
  23.  
  24.     free(listaPalabras);
  25.  
  26.      return 0;
  27. }
  28.  
98  Programación / Programación C/C++ / Re: Uso de listas y ficheros en C. en: 24 Junio 2011, 22:54 pm
Te ayudo con una parte compañero , tenias muchos pero que muchos fallos
El siguiente código funciona a medias ..
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <malloc.h>
  5.  
  6. #define limpiaBuffer while(getchar() != '\n')
  7.  
  8. typedef struct{
  9.        void *sig;
  10.        float sueldo;
  11.        char nombre[50];
  12. }Datos;
  13.  
  14. float presupuesto = 5000;
  15. float restante = 5000 ;
  16.  
  17.  
  18. void insertar( Datos **listafutbolistasdisponibles){
  19. Datos *nuevo;
  20. char aux[50];
  21. float sueldo;
  22. do{
  23.      nuevo = (Datos*) malloc(sizeof(Datos));
  24.      puts("Introduzca el nombre del futbolista:");
  25.      fgets(aux , 50 ,stdin);
  26.      strcpy(nuevo->nombre , aux);
  27.      limpiaBuffer;
  28.  
  29.      puts("Introduzca el sueldo del futbolista:");      
  30.  
  31.      fscanf(stdin , "%f", &sueldo);
  32.      nuevo->sueldo = sueldo;
  33.  
  34.      limpiaBuffer;      
  35.  
  36.              if(*listafutbolistasdisponibles == NULL){
  37.         *listafutbolistasdisponibles = nuevo;
  38.      }else{
  39.        nuevo->sig = *listafutbolistasdisponibles;
  40. *listafutbolistasdisponibles =  nuevo;
  41.     }
  42.  
  43. }while(nuevo->nombre == "");
  44. }
  45.  
  46. void Mostrar_datos(Datos listafutbolistasdisponibles){
  47.        int i=0;
  48.  
  49. Datos *aux = NULL;
  50. aux = &listafutbolistasdisponibles;
  51.  
  52.  
  53.  
  54. while(aux){
  55.   restante = restante - aux->sueldo;
  56.   i++;
  57.   printf("Presupuesto: %f / Queda: %f \n", presupuesto, restante);
  58.   printf("Jugadores \t\t Equipo \n");
  59.   printf("------------------------------------------------ \n");
  60.   printf("%s ( %.2f )\n", aux->nombre, aux->sueldo);
  61.   printf("\t\t Gasto\n");
  62.   aux = aux->sig;
  63. }
  64. }
  65. /*
  66.  
  67. void ElegiryCopiar(Datos listafutbolistasdisponibles, Datos *listafutbolistaselegidos){
  68. NODO aux, sig, nodo, nodo2;
  69. int enc,ok; char objetivo[50];
  70. do{
  71. enc=0;
  72. puts("¿Que jugador quiere fichar?\n");
  73. limpiaBuffer;
  74.  
  75. fgets(objetivo,50-1,stdin);
  76. aux = listafutbolistasdisponibles;
  77.        while (aux && !enc){
  78.                if (aux->nombre==objetivo){
  79.                        enc=1;
  80.                        while(nodo){
  81.                        strcpy(objetivo,nodo->nombre);
  82.                        nodo2 = (NODO) malloc(sizeof(Datos));
  83.  
  84.                        strcpy(objetivo,nodo->nombre);
  85.                        nodo2->sig = *listafutbolistaselegidos;
  86.                        *listafutbolistaselegidos = nodo2;
  87.                        nodo = nodo->sig;
  88.                         }
  89.                         aux=aux->sig;
  90.                 } //fin del if
  91.         }//fin del primer while
  92.  
  93. if(enc==0)
  94. puts("Error");
  95. puts("¿Quiere fichar de nuevo?(0-no/ 1-si)\n");
  96. ok=validar(0,1);
  97. }while(ok==1);
  98. }//fin de ElegiryCopiar*/
  99.  
  100.  
  101.  
  102.  
  103. int main(){
  104. char opcion = ' ';
  105. int opciones;
  106.  
  107. Datos *listafutbolistasdisponibles = NULL;
  108. Datos *listafutbolistaselegidos = NULL;
  109.  
  110. insertar(&listafutbolistasdisponibles);
  111. printf("%s" , listafutbolistasdisponibles->nombre);
  112.  
  113. Mostrar_datos(*listafutbolistasdisponibles);
  114.  
  115.        do{
  116.  printf("(E)legir \t (Q)uitar jugador\t (S)alir\n");
  117.  
  118.  
  119.  opcion = (char) getchar();
  120.  
  121.  switch(opcion){
  122.      case 'e' : case 'E' :
  123.          printf("Ha elegido Elegir \n") ;
  124.  
  125.  // ElegiryCopiar(*listafutbolistasdisponibles , listafutbolistaselegidos);
  126.   break;
  127.      case 'q' : case 'Q' :
  128.           printf("Ha elegido quitar \n") ;
  129.           break;
  130.              default:
  131.                   break;
  132.         }
  133.  
  134. }while(opcion != 'S' & opcion != 's');
  135.  
  136. return 0;
  137. }
  138.  
  139.  
  140.  
99  Programación / Programación C/C++ / Re: Sistema Operativo propio en: 19 Junio 2011, 13:46 pm
Podrías empezar por aquí

http://wiki.osdev.org/Main_Page
100  Programación / Programación C/C++ / Re: En donde encuentro esta libreria. en: 11 Junio 2011, 11:09 am
Igual te sirve alguna de estas
http://www.google.com/search?client=ubuntu&channel=fs&q=difcn+filetype%3Ah&ie=utf-8&oe=utf-8#sclient=psy&hl=es&client=ubuntu&hs=25K&channel=fs&source=hp&q=dlfcn+filetype:h&aq=f&aqi=&aql=&oq=&pbx=1&bav=on.2,or.r_gc.r_pw.&fp=aee70eb115de80e6&biw=1440&bih=685
Páginas: 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19 20
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines