Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Gallu

#91
Java / Re: arreglos de cadenas
4 Agosto 2011, 15:31 PM
No olvides que java es orientado a objetos, acostumbrate plantear las soluciones de esa manera

Así:

Código (java) [Seleccionar]

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


class Cliente{
private BufferedReader en = null;
//contador de objetos creados
private static int numeroDeCliente = 0;
private String nombre;   
private String fechaIngreso;   
private String fechaRetiro;   
private String tipoHabitacion;   

public Cliente(BufferedReader en){
//has de agregar validación para el objeto en
this.en = en;
//por cada objeto creado sumamos una al contador
numeroDeCliente++;
}

public void leerCliente()throws IOException{
System.out.println("Introduzca el nombre y primer apellido del cliente numero " + Cliente.numeroDeCliente + ":");
System.out.flush();   
this.setNombre(en.readLine());
}

public void leerFechaIngreso()throws IOException{ 
System.out.println("Introduzca la fecha de ingreso del cliente numero " + Cliente.numeroDeCliente + ":");   
System.out.flush();   
this.setFechaIngreso(en.readLine());   
}


public void leerFechaRetiro()throws IOException{   
System.out.println("Introduzca la fecha de retiro del cliente numero " + Cliente.numeroDeCliente + ":");   
System.out.flush();   
this.setFechaRetiro(en.readLine());   
}

public void leerTipoHabitacion()throws IOException{   
System.out.println("Introduzca el tipo de habitacion numero " + Cliente.numeroDeCliente + ":");   
System.out.flush();   
this.setTipoHabitacion(en.readLine());
}

public void leerDatosCliente()throws IOException{
leerCliente();
leerFechaIngreso();
leerFechaRetiro();
leerTipoHabitacion();
}

/**
* Retorna la información que nos interesa del cliente
*/
public String toString(){
StringBuffer buffer = new StringBuffer();
buffer.append("Cliente :"+ this.getNombre());
buffer.append("\n");

buffer.append("FechaIngreso :"+ this.getFechaIngreso());
buffer.append("\n");

buffer.append("Fecha Retiro :"+ this.getFechaRetiro());
buffer.append("\n");

buffer.append("Tipo Habitación :"+ this.getTipoHabitacion());
buffer.append("\n");

return buffer.toString();
}



public String getFechaIngreso() {
return fechaIngreso;
}

public void setFechaIngreso(String fechaIngreso) {
this.fechaIngreso = fechaIngreso;
}

public String getFechaRetiro() {
return fechaRetiro;
}

public void setFechaRetiro(String fechaRetiro) {
this.fechaRetiro = fechaRetiro;
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public String getTipoHabitacion() {
return tipoHabitacion;
}

public void setTipoHabitacion(String tipoHabitacion) {
this.tipoHabitacion = tipoHabitacion;
}
}

public class prueba {

public static void main(String[] args){   
//Declaramos el buffer de lectura para leer de teclado   
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));   

Cliente [] clientes = new Cliente[10];

try{
//por cada cliente en el array , utilizamos el bucle for mejorado
for(Cliente cli : clientes){ 
cli = new Cliente(br);
cli.leerDatosCliente();
System.out.println(cli.toString()); 
}   


}catch(IOException error){
error.printStackTrace();
}

}
}

#92
Java / Re: ejemplo de String
26 Julio 2011, 17:03 PM
De nada .  ::)
#93
Java / Re: ejemplo de String
24 Julio 2011, 16:07 PM
Te has preguntado lo que sucede si veces es mayor a palabra.length() , pues esto

Código (java) [Seleccionar]

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.charAt(String.java:694)
at PruebaString.traslacion(PruebaString.java:12)
at PruebaString.main(PruebaString.java:24)


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

Código (java) [Seleccionar]

public String traslacion(String palabra, int veces){
    StringBuffer nuevo = new StringBuffer();
    int tam = palabra.length() - 1;
   
            if(veces > palabra.length()){
veces = tam;
            }
   
    while(veces > 0){    
    nuevo.append(palabra.charAt(tam--));
    veces--;
        }
   
    nuevo.append(palabra.substring(0,(tam-veces)+1));
    return nuevo.toString();
    }
#94
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 (bash) [Seleccionar]
/home/diego/.gnome2/nautilus-scripts

Se puede mejorar ...

renombra.sh
Código (bash) [Seleccionar]

#!/bin/bash
#
#description : Renombra los ficheros del directorio actual y los deja en la carpeta de renombrados
#autor = didacso  for i in $( ls ); do

carpetaNueva="renombrados"
extension="jpg"
AQUI=$( pwd )
RENOMBRADOS="$AQUI"/$carpetaNueva
let ELEMENTOS=0

mkdir "$RENOMBRADOS"
ls -1 | while read i ; do
NOW=$(date +"%m-%d-%y")-$(date +"%N")
echo  "$AQUI/$NOW.$extension" >> "$RENOMBRADOS/estadisticas.txt"
cp "$i" "$AQUI/$NOW.$extension"
mv "$i" "$RENOMBRADOS/$i"
let ELEMENTOS=ELEMENTOS+1
done


gxmessage -center -title "Operación completada" $ELEMENTOS " elementos procesados"

echo $ELEMENTOS " elementos procesados" >> "$RENOMBRADOS/estadisticas.txt"

#95
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 (bash) [Seleccionar]

for i in $( ls -1 ); do


se te ocurre algo ?
#96
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 (bash) [Seleccionar]

#!/bin/bash
#
#description : Renombra los ficheros del directorio actual y los deja en la carpeta de renombrados
#autor = didacso

carpetaNueva="renombrados"
extension="jpg"
AQUI=$( pwd )
RENOMBRADOS="$AQUI"/$carpetaNueva
ELEMENTOS=0

mkdir "$RENOMBRADOS"
for i in $( ls ); do
NOW=$(date +"%m-%d-%y")-$(date +"%N")
echo  "$AQUI/$NOW.$extension" >> "$RENOMBRADOS/estadisticas.txt"
echo "problema con " "$i"
cp "$i" "$AQUI/$NOW.$extension"
mv "$i" "$RENOMBRADOS/$i"
let ELEMENTOS=ELEMENTOS+1
done


gxmessage -center -title "Operación completada" $ELEMENTOS " elementos procesados"

echo $ELEMENTOS " elementos procesados" >> "$RENOMBRADOS/estadisticas.txt"

la salida del comando es la siguiente
Código (bash) [Seleccionar]

cp: no se puede efectuar `stat' sobre «0g3nG3iJN4FaUzY0H4KvcdJZGFY»: No existe el fichero o el directorio
mv: no se puede efectuar `stat' sobre «0g3nG3iJN4FaUzY0H4KvcdJZGFY»: No existe el fichero o el directorio
cp: no se puede efectuar `stat' sobre «(1)»: No existe el fichero o el directorio
mv: no se puede efectuar `stat' sobre «(1)»: No existe el fichero o el directorio
cp: no se puede efectuar `stat' sobre «0g3nG3iJN4FaUzY0H4KvcdJZGFY»: No existe el fichero o el directorio
mv: no se puede efectuar `stat' sobre «0g3nG3iJN4FaUzY0H4KvcdJZGFY»: No existe el fichero o el directorio
cp: no se puede efectuar `stat' sobre «(10).jpg»: No existe el fichero o el directorio
mv: no se puede efectuar `stat' sobre «(10).jpg»: No existe el fichero o el directorio
cp: no se puede efectuar `stat' sobre «0g3nG3iJN4FaUzY0H4KvcdJZGFY»: No existe el fichero o el directorio
mv: no se puede efectuar `stat' sobre «0g3nG3iJN4FaUzY0H4KvcdJZGFY»: No existe el fichero o el directorio
cp: no se puede efectuar `stat' sobre «(2)»: No existe el fichero o el directorio
mv: no se puede efectuar `stat' sobre «(2)»: No existe el fichero o el directorio
cp: no se puede efectuar `stat' sobre «0g3nG3iJN4FaUzY0H4KvcdJZGFY»: No existe el fichero o el directorio
mv: no se puede efectuar `stat' sobre «0g3nG3iJN4FaUzY0H4KvcdJZGFY»: No existe el fichero o el directorio
cp: no se puede efectuar `stat' sobre «(4)»: No existe el fichero o el directorio
mv: no se puede efectuar `stat' sobre «(4)»: No existe el fichero o el directorio
cp: no se puede efectuar `stat' sobre «0g3nG3iJN4FaUzY0H4KvcdJZGFY»: No existe el fichero o el directorio
mv: no se puede efectuar `stat' sobre «0g3nG3iJN4FaUzY0H4KvcdJZGFY»: No existe el fichero o el directorio
cp: no se puede efectuar `stat' sobre «(5).jpg»: No existe el fichero o el directorio
mv: no se puede efectuar `stat' sobre «(5).jpg»: No existe el fichero o el directorio



los nombres de los ficheros son los siguientes:

Código (bash) [Seleccionar]

0g3nG3iJN4FaUzY0H4KvcdJZGFY (1)       0g3nG3iJN4FaUzY0H4KvcdJZGFY (2)  0g3nG3iJN4FaUzY0H4KvcdJZGFY (5).jpg  0g3nG3iJN4FaUzY0H4KvcdJZGFY (9).jpg
0g3nG3iJN4FaUzY0H4KvcdJZGFY (10).jpg  0g3nG3iJN4FaUzY0H4KvcdJZGFY (4)  0g3nG3iJN4FaUzY0H4KvcdJZGFY (8).jpg  

no se si el problema es por el espacio o por el paréntesis
#97
A mi me funciona así ..


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
     int filas = 5;
     int columnas = 30;
     int i = 0;
     char **listaPalabras = NULL;

     listaPalabras  = (char**) malloc(sizeof(char*) * filas * columnas);
   

     for (; i < filas ; i++){
listaPalabras[i] = (char*)malloc(sizeof(char) * columnas);
strcpy (listaPalabras[i] , "TEXTO PRUEBA\n");
     }
   
     for (i = 0; i < filas ; i++){
printf("%s ", listaPalabras[i]);
     }

     free(listaPalabras);

      return 0;
}
#98
Te ayudo con una parte compañero , tenias muchos pero que muchos fallos
El siguiente código funciona a medias ..

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>

#define limpiaBuffer while(getchar() != '\n')

typedef struct{
        void *sig;
        float sueldo;
        char nombre[50];
}Datos;

float presupuesto = 5000;
float restante = 5000 ;


void insertar( Datos **listafutbolistasdisponibles){
Datos *nuevo;
char aux[50];
float sueldo;
do{
      nuevo = (Datos*) malloc(sizeof(Datos));
      puts("Introduzca el nombre del futbolista:");
      fgets(aux , 50 ,stdin);
      strcpy(nuevo->nombre , aux);
      limpiaBuffer;

      puts("Introduzca el sueldo del futbolista:");      
     
      fscanf(stdin , "%f", &sueldo);
      nuevo->sueldo = sueldo;
     
      limpiaBuffer;      

              if(*listafutbolistasdisponibles == NULL){
         *listafutbolistasdisponibles = nuevo;
      }else{
        nuevo->sig = *listafutbolistasdisponibles;
*listafutbolistasdisponibles =  nuevo;
     }

}while(nuevo->nombre == "");
}

void Mostrar_datos(Datos listafutbolistasdisponibles){
        int i=0;
       
Datos *aux = NULL;
aux = &listafutbolistasdisponibles;



while(aux){
   restante = restante - aux->sueldo;
   i++;
   printf("Presupuesto: %f / Queda: %f \n", presupuesto, restante);
   printf("Jugadores \t\t Equipo \n");
   printf("------------------------------------------------ \n");
   printf("%s ( %.2f )\n", aux->nombre, aux->sueldo);
   printf("\t\t Gasto\n");
   aux = aux->sig;
}
}
/*

void ElegiryCopiar(Datos listafutbolistasdisponibles, Datos *listafutbolistaselegidos){
NODO aux, sig, nodo, nodo2;
int enc,ok; char objetivo[50];
do{
enc=0;
puts("¿Que jugador quiere fichar?\n");
limpiaBuffer;

fgets(objetivo,50-1,stdin);
aux = listafutbolistasdisponibles;
        while (aux && !enc){
                if (aux->nombre==objetivo){
                        enc=1;
                        while(nodo){
                        strcpy(objetivo,nodo->nombre);
                        nodo2 = (NODO) malloc(sizeof(Datos));

                        strcpy(objetivo,nodo->nombre);
                        nodo2->sig = *listafutbolistaselegidos;
                        *listafutbolistaselegidos = nodo2;
                        nodo = nodo->sig;
                         }
                         aux=aux->sig;
                 } //fin del if
         }//fin del primer while

if(enc==0)
puts("Error");
puts("¿Quiere fichar de nuevo?(0-no/ 1-si)\n");
ok=validar(0,1);
}while(ok==1);
}//fin de ElegiryCopiar*/




int main(){
char opcion = ' ';
int opciones;

Datos *listafutbolistasdisponibles = NULL;
Datos *listafutbolistaselegidos = NULL;

insertar(&listafutbolistasdisponibles);
printf("%s" , listafutbolistasdisponibles->nombre);

Mostrar_datos(*listafutbolistasdisponibles);

        do{
  printf("(E)legir \t (Q)uitar jugador\t (S)alir\n");


  opcion = (char) getchar();

  switch(opcion){
      case 'e' : case 'E' :
          printf("Ha elegido Elegir \n") ;

  // ElegiryCopiar(*listafutbolistasdisponibles , listafutbolistaselegidos);
   break;
      case 'q' : case 'Q' :
           printf("Ha elegido quitar \n") ;
           break;
              default:
                   break;
         }

}while(opcion != 'S' & opcion != 's');

getchar();
return 0;
}


#99
Podrías empezar por aquí

http://wiki.osdev.org/Main_Page