• Jueves 2 de Abril de 2026, 01:18

Mostrar Mensajes

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


Mensajes - kurtjavier

Páginas: [1]
1
PHP / Re: Leer Atributos de Archivos
« en: Sábado 23 de Octubre de 2010, 20:34 »
ya consegui la respuesta muchachos, en esta pagina hay ejemplos para todo, aqui se las dejo

java2s.com/Code/Php/File-Directory/File-Property.htm

pongan el "w w w" alante

2
PHP / Leer Atributos de Archivos
« en: Sábado 23 de Octubre de 2010, 20:04 »
Hola gente tiempo sin escribir en el foro, andaba de vacaciones y andaba perdido de todo xD......... bueno les traigo aqui una duda a ver quien me echa una mano.

En una materia que estoy viendo (BDD para el web) mandaron a ahcer la siguiente aplicacion en php:
Citar
Realice una aplicacion en php con mysql el cual busque los archivos pdf,doc, imagenes alojados en un servidor que corre una distribucion linux, o que sean cargados remotamente, la cual por cada archivo encontrado, o cargado al servidor, se lean todos sus atributos, fecha ultima modificacion, fecha creacion, nombre, tamaño, propietario y permisos y sea guardado en una base de datos.

ok la busqueda de archivos en el servidor o la carga de archivos eso no hay problema, mi problema viene al saber los atributos de los archivos, como puedo saber los atributos de un archivo, fecha ultima modificacion, fecha creacion, nombre, tamaño, propietario y permisos ??

bueno gracias a todos.......

3
PHP / Re: Empezando en PHP, ¿ Archivos ?
« en: Sábado 22 de Mayo de 2010, 22:36 »
Ey gracias por tu respuesta hermano, implemente y tenia algunos problemas asi que me fui de una al manual oficial de php y pude solucionar de la siguiente forma:

este es el form:
Código: Text
  1.  
  2. <form enctype="multipart/form-data" action="principal.php" method="post">
  3. <input type="hidden" name="MAX_FILE_SIZE" value="1000">
  4. Archivo A Cargar: <input name="file" type="file">
  5. <input type="submit" value="Enviar">
  6.  
  7.  

y en el archivo php tengo este codigo:
Código: PHP
  1.  
  2. $nombre_archivo = $HTTP_POST_FILES['file']['name'];
  3.  
  4.     if (move_uploaded_file($HTTP_POST_FILES['file']['tmp_name'],$nombre_archivo))
  5.     {
  6.         echo "El archivo "$nombre_archivo" ha sido cargado correctamente<br>";
  7.         cargar();
  8.         repite();
  9.         mostrar();
  10.     }
  11.     else
  12.     {
  13.         echo "Ocurrió algún error al subir el fichero. No pudo guardarse<br>";
  14.     }
  15.  
  16.  

El problema que tenia que no me ejaba utilizar ninguna funcion ni COPY ni MOVE_UPLOADED_FILE.... el problema era que tenia que darle permisos a la carpeta y a los archivos para poder escribir ¬¬ ........mas facil imposible, y yo dandome mala vida ah....... gracias igual men siempre se puede contar con gente de este foro ;)

4
PHP / Empezando en PHP, ¿ Archivos ?
« en: Viernes 21 de Mayo de 2010, 03:50 »
Como estan toos, espero que muy bien.... Bueno directo al grano. Estoy empezando a aprender PHP y he leido un poco sobre todo el manual oficial, pero no hay nada como hacer programas e ir llevando golpes, el hecho es que pase un programa super sencillo que tenia en C a PHP pero tengo un pequeño problema relacionado con archivos, explico.

En el programa tengo que cargar un archivo que contiene nombres y apellidos para hacer operaciones sobre ellos, mi problema es el siguiente, como subo el archivo al servidor y le paso la ruta al script php que me hace la accion, ese script esta en otra pagina. Aqui coloco como tengo el form.

Código: Text
  1.  
  2. <form method="POST" enctype="multipart/form-data" action="principal.php">
  3.   Archivo A Cargar:
  4.   <input type="file" name="file" id="file" value="file" />
  5.   <input type="submit" name="commit" value="Send" />
  6. </form>
  7.  
  8.  

El hecho es que ese archivo seleccionado tengo que subirlo al servidor y posteriormente enviarle la ruta a la funcion que me hace la operacion, o seria genial lo guardara en la misma carpeta que el archivo php. ¿  Como hago todo eso  ?. Hasta ahora probando en un servidor local con apache y php5 corre todo bien cuando tengo los archivos en la misma carpeta pero en otras carpetas no lo agarra, ya que el form manda solo el nombre del archivo pero no la ruta completa.

Alguna ayuda, no es una tarea ok ¬¬ siempre salta uno a decir eso, solo yo queriendo aprender y que mejor de las manos de personas que saben.

5
Java / Re: ¿ Camino mas corto en un Laberinto ?
« en: Viernes 19 de Febrero de 2010, 00:17 »
Bueno gente hace dias que ya habia terminado el programa se me habia olvidado colocarlo aqui, les dejo la solucion, bueno la que le encontre yo, un laberinto en java usando backtracking, me guarda todos los caminos en una matriz y despues solo verifico cual es el mas corto y listo.

Código: Java
  1.  
  2.  
  3. /*
  4. Realizado por Francisco Gallucci */
  5.  
  6. import java.awt.Color;
  7.  
  8. class Laberinto {
  9.  
  10.     private Casilla[][] lab,solucion;
  11.     private int n,pix,piy,pfx,pfy,id_Solucion,max;
  12.  
  13.     Laberinto(Casilla[][] lab2, int x)
  14.     {
  15.         this.n=x;
  16.         max=n*n;
  17.         lab=new Casilla[x][x];
  18.         solucion=new Casilla[max][max];
  19.         lab=lab2;
  20.         id_Solucion=0;
  21.         pix=piy=pfx=pfy=0;
  22.     }
  23.  
  24.     public int getCaminoMasCorto()
  25.     {
  26.         int[] cantidad=new int[id_Solucion];
  27.         for(int i=0; i < id_Solucion ; i++)
  28.         {
  29.             cantidad[i]=0;
  30.             for(int j=0; solucion[i][j]!=null ;j++)
  31.                 cantidad[i]++;
  32.         }
  33.         int menor=0;
  34.         for(int j=0; j < id_Solucion;j++)
  35.             if( cantidad[j] < cantidad[menor])
  36.                 menor=j;
  37.         return menor;
  38.     }
  39.        
  40.     boolean solucionar(Casilla posicion, Casilla fin, int fila, int columna,int y_Sol)
  41.     {
  42.         if(posicion==fin)
  43.         {
  44.             lab[fila][columna].setRecorrida(false);
  45.             id_Solucion++;
  46.             return true;
  47.         }
  48.         lab[fila][columna].setRecorrida(true);
  49.         boolean encontrado=false;
  50.         //abajo
  51.         if(fila+1 < n && id_Solucion < max)
  52.         {
  53.             if(!lab[fila+1][columna].getRecorrida() && lab[fila+1][columna].getTipo()!='#')
  54.             {
  55.                 solucion[id_Solucion][y_Sol]=lab[fila][columna];
  56.                 encontrado=solucionar(lab[fila+1][columna],fin,fila+1,columna,y_Sol+1);
  57.                 if(encontrado)
  58.                 {
  59.                     if(id_Solucion < max-1)
  60.                     {
  61.                         int i=0;
  62.                         while(solucion[id_Solucion-1][i] != null )
  63.                         {
  64.                             solucion[id_Solucion][i]=solucion[id_Solucion-1][i];
  65.                             i++;
  66.                         }
  67.                     }
  68.                     encontrado=false;
  69.                 }
  70.                 else
  71.                 {
  72.                     solucion[id_Solucion][y_Sol+1]=null;
  73.                     lab[fila+1][columna].setRecorrida(false);
  74.                 }
  75.             }
  76.         }
  77.         //derecha
  78.         if(columna+1 < n && id_Solucion < max)
  79.         {
  80.             if(!lab[fila][columna+1].getRecorrida() && lab[fila][columna+1].getTipo()!='#')
  81.             {
  82.                 solucion[id_Solucion][y_Sol]=lab[fila][columna];
  83.                 encontrado=solucionar(lab[fila][columna+1],fin,fila,columna+1,y_Sol+1);
  84.                 if(encontrado)
  85.                 {
  86.                     if(id_Solucion < max-1)
  87.                     {
  88.                         int i=0;
  89.                         while(solucion[id_Solucion-1][i] != null )
  90.                         {
  91.                             solucion[id_Solucion][i]=solucion[id_Solucion-1][i];
  92.                             i++;
  93.                         }
  94.                     }
  95.                     encontrado=false;
  96.                 }
  97.                 else
  98.                 {
  99.                     solucion[id_Solucion][y_Sol+1]=null;
  100.                     lab[fila][columna+1].setRecorrida(false);
  101.                 }
  102.             }
  103.         }
  104.         //arriba
  105.         if(fila-1 > 0 && id_Solucion < max)
  106.         {
  107.             if(!lab[fila-1][columna].getRecorrida() && lab[fila-1][columna].getTipo()!='#')
  108.             {
  109.                 solucion[id_Solucion][y_Sol]=lab[fila][columna];
  110.                 encontrado=solucionar(lab[fila-1][columna],fin,fila-1,columna,y_Sol+1);
  111.                 if(encontrado)
  112.                 {
  113.                     if(id_Solucion < max-1)
  114.                     {
  115.                         int i=0;
  116.                         while(solucion[id_Solucion-1][i] != null )
  117.                         {
  118.                             solucion[id_Solucion][i]=solucion[id_Solucion-1][i];
  119.                             i++;
  120.                         }
  121.                     }
  122.                     encontrado=false;
  123.                 }
  124.                 else
  125.                 {
  126.                     solucion[id_Solucion][y_Sol+1]=null;
  127.                     lab[fila-1][columna].setRecorrida(false);
  128.                 }
  129.             }
  130.         }
  131.         //izquierda
  132.         if(columna-1 > 0 && id_Solucion < max)
  133.         {
  134.             if(!lab[fila][columna-1].getRecorrida() && lab[fila][columna-1].getTipo()!='#')
  135.             {
  136.                 solucion[id_Solucion][y_Sol]=lab[fila][columna];
  137.                 encontrado=solucionar(lab[fila][columna-1],fin,fila,columna-1,y_Sol+1);
  138.                 if(encontrado)
  139.                 {
  140.                     if(id_Solucion < max-1)
  141.                     {
  142.                         int i=0;
  143.                         while(solucion[id_Solucion-1][i] != null )
  144.                         {
  145.                             solucion[id_Solucion][i]=solucion[id_Solucion-1][i];
  146.                             i++;
  147.                         }
  148.                     }
  149.                     encontrado=false;
  150.                 }
  151.                 else
  152.                 {
  153.                     solucion[id_Solucion][y_Sol+1]=null;
  154.                     lab[fila][columna-1].setRecorrida(false);
  155.                 }
  156.             }
  157.         }
  158.         lab[fila][columna].setRecorrida(false);
  159.         return false;
  160.     }
  161. }
  162.  
  163.  
 
Omito los metodos para los atributos privados ya saben caules son..........funciono bien con los caso prueba que utilice espero sirva de ejemplo para otros ;)
  
 :good:

6
Java / ¿ Camino mas corto en un Laberinto ?
« en: Martes 9 de Febrero de 2010, 03:13 »
Ok, explic ode una: Me mandaron a hacer un laberinto, leido desde un archivo de texto, que mostrara todos los caminos posibles desde un punto de salida hasta un punto de llegada,  y pintara todos los distintos caminos y luego señalara el camino mas corto.

¿Que es lo que he hecho?
como es con interfaz grafica tuve que hacerlo en java (aunque me inclino por el  c++ pero bueno), para cada casilla hice una clase llamada CASILLA que me hereda de JTextField, esto lo hice para pintar y representar mejor la interfaz. Tengo una clase Laberinto con mi arreglo de casillas (las dimensiones del laberinto), y en este tengo un metodo que me busca un camino, por ahoroa solo he logrado que me busque un camino, mi problema no es que me busque un camino poque ya lo hice, el problema es que necesito que ese camino sea el mas corto, como puedo hacer para determinar cual es el camino mas corto entre los dos puntos. El laberinto es cargado desde un archivo de texto donde * representa camino y # pared, cuando leo el archivo cargo las dimensiones inicializo mi arreglo de casillas pinto la interfaz y el usuario señala los putos de partida y llegada con el mouse, cuando le da a un boton llamo al metodo SOLUCIONAR q me busca el camino.

Como ya dije solucione que encontrara un camino, de hecho puedo conseguir todos los caminos ya que camino recorrido es marcado para q no sea recorrido nuevamente por otro camino nuevo que se vaya a hacer, pero quisiera que el primer camino que me mostrara fuera el mas corto, mi pregunta es como hago para saber cual es el camino mas corto. Aqui dejo la clase CASILLA, LABERINTO.

Clase casilla
Código: Java
  1.  
  2.  
  3. import javax.swing.JTextField;
  4. import java.awt.Color;
  5.  
  6. public class casilla extends JTextField
  7. {
  8.  
  9.     private char tipo;
  10.     private boolean recorrida,norecorrida;
  11.     private short id_Unico;
  12.  
  13.     casilla()
  14.     {
  15.         super();
  16.         tipo='-';
  17.         recorrida=false;
  18.         norecorrida=false;
  19.         id_Unico=0;
  20.         this.setEditable(false);
  21.         this.setBackground(Color.WHITE);
  22.     }
  23.  
  24.     casilla(short ii)
  25.     {
  26.         super();
  27.         tipo='*';
  28.         recorrida=false;
  29.         norecorrida=false;
  30.         id_Unico=ii;
  31.         this.setEditable(false);
  32.         this.setBackground(Color.WHITE);
  33.     }
  34.  
  35.     casilla(char t)
  36.     {
  37.         tipo=t;
  38.         recorrida=false;
  39.         norecorrida=false;
  40.         id_Unico=0;
  41.         this.setEditable(false);
  42.         this.setBackground(Color.WHITE);
  43.     }
  44.  
  45.     public void setTipo(char t){    tipo=t; }
  46.     public void setRecorrida(boolean r){    recorrida=r;    }
  47.     public void setNoRecorrida(boolean r){  norecorrida=r;  }
  48.     public void setID(short id){    id_Unico=id;    }
  49.    
  50.     public char getTipo(){  return tipo;    }
  51.     public boolean getRecorrida(){  return recorrida;   }
  52.     public boolean getNoRecorrida(){    return norecorrida; }
  53.     public short getID(){   return id_Unico;    }
  54. }
  55.  
  56.  
  57.  


Clase Laberinto
Código: Java
  1.  
  2.  
  3. import java.awt.Color;
  4.  
  5. class laberinto {
  6.  
  7.     private casilla[][] lab;
  8.     private int n;
  9.  
  10.     laberinto(int x)
  11.     {
  12.         this.n=x;
  13.         lab=new casilla[x][x];
  14.     }
  15.  
  16.     public casilla[][] getLaberinto(){  return lab; }
  17.     public casilla getCasilla(int i, int j){    return lab[i][j];   }
  18.  
  19.     public void setLaberinto(casilla[][] lab2){ lab=lab2;   }
  20.     public void setCasilla(casilla c,int x, int y){ lab[x][y]=c;    }
  21.    
  22.     public void setFalso(casilla inicio, casilla fin)
  23.     {
  24.         for(int i=1;i<n;i++)
  25.         {
  26.             for (int j=1;j<n;j++)
  27.             {
  28.                 lab[i][j].setRecorrida(false);
  29.                 lab[i][j].setNoRecorrida(false);
  30.                 if(lab[i][j]!=inicio && lab[i][j]!=fin)
  31.                     lab[i][j].setBackground(Color.WHITE);
  32.             }                  
  33.         }
  34.     }
  35.    
  36.     boolean solucionar(casilla posicion, casilla anterior, casilla fin, int fila, int columna)
  37.     {
  38.         lab[fila][columna].setRecorrida(true);
  39.         lab[fila][columna].setNoRecorrida(true);
  40.         if(posicion==fin)
  41.             return true;
  42.         boolean encontrado=false;
  43.         //abajo
  44.         if(fila+1 < n)
  45.         {
  46.             if(!lab[fila+1][columna].getNoRecorrida() && lab[fila+1][columna]!=anterior && lab[fila+1][columna].getTipo()!='#')
  47.             {
  48.                 encontrado=solucionar(lab[fila+1][columna],lab[fila][columna],fin,fila+1,columna);
  49.                 if(encontrado)
  50.                 {
  51.                     return true;
  52.                 }
  53.                 lab[fila+1][columna].setNoRecorrida(true);
  54.                 lab[fila+1][columna].setRecorrida(false);
  55.             }
  56.         }
  57.         //derecha
  58.         if(columna+1 < n)
  59.         {
  60.             if(!lab[fila][columna+1].getNoRecorrida() && lab[fila][columna+1]!=anterior && lab[fila][columna+1].getTipo()!='#')
  61.             {
  62.                 encontrado=solucionar(lab[fila][columna+1],lab[fila][columna],fin,fila,columna+1);
  63.                 if(encontrado)
  64.                 {
  65.                     return true;
  66.                 }
  67.                 lab[fila][columna+1].setNoRecorrida(true);
  68.                 lab[fila][columna+1].setRecorrida(false);
  69.             }
  70.         }
  71.         //arriba
  72.         if(fila-1 > 0)
  73.         {
  74.             if(!lab[fila-1][columna].getNoRecorrida() && lab[fila-1][columna]!=anterior && lab[fila-1][columna].getTipo()!='#')
  75.             {
  76.                 encontrado=solucionar(lab[fila-1][columna],lab[fila][columna],fin,fila-1,columna);
  77.                 if(encontrado)
  78.                 {
  79.                     return true;
  80.                 }
  81.                 lab[fila-1][columna].setNoRecorrida(true);
  82.                 lab[fila-1][columna].setRecorrida(false);
  83.             }
  84.         }
  85.         //izquierda
  86.         if(columna-1 > 0)
  87.         {
  88.             if(!lab[fila][columna-1].getNoRecorrida() && lab[fila][columna-1]!=anterior && lab[fila][columna-1].getTipo()!='#')
  89.             {
  90.                 encontrado=solucionar(lab[fila][columna-1],lab[fila][columna],fin,fila,columna-1);
  91.                 if(encontrado)
  92.                 {
  93.                     return true;
  94.                 }
  95.                 lab[fila][columna-1].setNoRecorrida(true);
  96.                 lab[fila][columna-1].setRecorrida(false);
  97.             }
  98.         }
  99.         lab[fila][columna].setRecorrida(false);
  100.         return false;
  101.     }
  102. }
  103.  
  104.  


Ayuda por fa, esto es para el miercoles ya hoy es lunes tengo ya 4 dias dando golpes aqui y q va no me da mas el cerebro por mi cuenta necesito ayuda definitivamente jaja......

7
Visual C++ / ¿ Alguna buena pagina donde conseguir ejercicios ?
« en: Viernes 29 de Enero de 2010, 00:19 »
Hola a todos, no sabia donde colocar este tema no vi ningun foro asi para asuntos generales de cualquier tipo todo es especifico, eso es bueno, asi que como es sobre visual c++ lo coloque aqui.

Estoy buscano ejercicios propuestos o resueltos no importa, pero ejercicios buenos sobre EDD, archivos y mas en visual c++  o  c++, nada con la parte de las interfaces o la API de windows, programas en consola pero no tan sencilos, para practicar bastante y no quedarme en la luna ven. Y no he conseguido ninguna pagina donde hayan buenos ejercicios propuestos o resueltos y poder hacerlos, los que consigo son ejercicios sencillos y no busco eso, me dijeron que en la pagina de la ACM podia bajar los programas que mandan en los Maratones de Programacion, el evento internacional, pero no consegui en la pagina donde bajarlos, si alguien sabe y puede decirme como seria genial, creo que alli deben tener programas muy buenos para hacer, ya que ellos organizan eso.

Bueno si tienen algun dato por alli guardado sueltenlo xD..... gracias y adios

EDICION:
Busno buscando sobre algoritmos di con una pagian que tiene unos cuatnos ejercicos para practicar varias cosas interesantes, es algoritmia.net  si tienen otra por alli diganala

8
Visual C++ / Re: Comparar Bit a Bit
« en: Viernes 2 de Octubre de 2009, 21:48 »
eyyy ya va , depurando el programa y guardando el resultado de la coparacion en un aux para ver que contenia me di cuenta de algo:

Código: C++
  1.  
  2. #include<iostream>
  3. using namespace std;
  4.  
  5. void main()
  6. {
  7.     int i,aux;
  8.     i=90;
  9.     for(int j=128;j>=1;j=j/2)
  10.     {
  11.         aux=(i&j);
  12.         if(aux==j)
  13.             cout<<"Bit "<<j<<": 1"<<endl;
  14.         else
  15.             cout<<"Bit "<<j<<": 0"<<endl;
  16.     }
  17.     cin.get();
  18.     return;
  19. }
  20.  
  21.  

resulta que si el bit esta encendido no me guarda uno sino que me guarda el valor del bit, x ejemplo el bit 64 eta encendido (recordando i=90 y en memoria es 01011010) entonces en aux me guarda 64, igual pasa con el 16 y los otros, entonces la cosa es que guarda el valor del bit si esta encendido sino guarda 0...... Bueno igual si conocen alguna mejor forma o tienen sugerencias diganlas sigo aqui practicando, suerte

disculpen si postie inneceariamente, no se me habia ocurrido hacer eso antes de haber postiado el mensaje.

9
Visual C++ / Comparar Bit a Bit
« en: Viernes 2 de Octubre de 2009, 21:44 »
Que tal todos, otra ves con una pequela duda.

Toy viendo unamateria se llama estructura de datos, donde en el taller varias veces el profesor nos ha mandado ha comparar bit a bit por ejemplo un entero (int), uno de los primeros talleres fue hacer eso y que imprimiera q dodne estuviera encendido (1) y * donde estuviera apagado el bit (0), la cuestion es que ni idea de como es la comparacion bit a bit, y ya tenemos como 4 meses con esa duda y bueno ayer me arme de valor jaja para preguntarle al profesor nadie habia querido porqu el profesor es algo exigente, y bueno me expico algo de comparar con and ( & )  mediante un for de la siguiente forma, coloco aqui un ejemplo sencillo como referencia:

Código: C++
  1.  
  2. #include<iostream>
  3. using namespace std;
  4.  
  5. void main()
  6. {
  7.     int i;
  8.     i=90;
  9.     for(int j=128;j>=1;j=j/2)
  10.     {
  11.         if((i&j)==1)
  12.             cout<<"Bit "<<j<<": 1"<<endl;
  13.         else
  14.             cout<<"Bit "<<j<<": 0"<<endl;
  15.     }
  16.     cin.get();
  17.     return;
  18. }
  19.  
  20.  

comienzo j en 128 para que vaya comparando el bit 128 para abajo con i, en la linea 11 hago la comparacion con el operador and verdad, si el bit 128 (la primera pasada) esta encendido el resultado de la evaluacion me devuelve 1 sino devuelve 0, la primera pasada esta bien pero la segunda pasada con j=64 deberia estar encendido ya que en i estoy guardando el valor 90 que seria 01011010 en memoria, pero dice que es 0 , segun lo que le entendi al profesor es asi como hago la comparacion pero no me da alguien me puede ayudar?, esto lo necesito porque horita hemos visto unos 3 talleres en relacion a esto y como no he sabido nada no he hecho mucho, y ya el ultimo taller nos toco compresion de archivos y no pude hacerlo tampoco, esta semana nos toca tabla hash y dijo que mandaria algo parecido y bueno creo ya es hora que busque y aprenda bien como es esto. Espero respuestas  :good:   gracias

10
C/C++ / Re: validar entero para seleccion de un menu
« en: Domingo 27 de Septiembre de 2009, 18:56 »
mmm mejor todavia asi no tengo que importar la limits.

11
C/C++ / Re: como trabajar con excepciones
« en: Domingo 27 de Septiembre de 2009, 16:53 »
Cita de: "Eternal Idol"
Bueno, como ya viste esto no tiene nada que ver con las excepciones, no se produce ninguna. Si llamas a clear ANTES del ignore te va a funcionar bien tambien con letras, sino ya esta puesto el flag failbit en el stream (por la letra) y entonces ignore no hace nada.

si como en java se maneja como excepcion asi lo estaba buscando para c++ y bueno ya vi como hacerlo mmm de una manera digamos que funciona pero no se si es la mas correcta:

Código: C++
  1.  
  2. int menu()
  3. {
  4.     int opc=0;
  5.     system ("cls");
  6.     do
  7.     {
  8.         cout<<"nn1.Agregar contacton2.Eliminar contacton3.Buscar contacton4.Buscar multiples contactosn5.Listar todon6.Cargar agenda desde archivon7.Guardar agenda a archivon8.Salir"<<endl;
  9.         while(!(cin>>opc))
  10.         {
  11.             cout<<"nNo valido"<<endl;
  12.             cin.clear();
  13.             cin.ignore(numeric_limits<streamsize>::max(), 'n');
  14.         }
  15.         if(opc>0&&opc<9)
  16.             return opc;
  17.         else
  18.             cout<<"nOpcion invalida"<<endl;
  19.     }while(true);
  20.     return 8;
  21. }
  22.  
  23.  

Con la condicion del while anidado dentro del do-while  si la entrada no fue correcta  "if(!(cin>>opc))" llamamos al clear para que limpie, quitamos de la entrada lo que se leyo para que no siga causando problemas, en este caso no le especifico que es de tamañ ode un entero sino que tome todo el tamaño de lo que esta en la entrada "cin.ignore(numeric_limits<streamsize>::max(), 'n');" y vuelve a esperar la nueva lectura, de ese modo cunado se lea el entero si seguira sin problemas.

saque la informacion de aqui  " augustcouncil.com/~tgibson/tutorial/iotips.html "  esta buena la pagina ...

12
C/C++ / Re: como trabajar con excepciones
« en: Domingo 27 de Septiembre de 2009, 06:58 »
ok buscando y buscando encontre que taba buscando mal debi bucar sobre validacion de un entero, y bueno buscando sobre eso encontre como manejar el error cuando se introduce un simbolo:

Código: C++
  1.  
  2. int menu()
  3. {
  4.     int opc=0;
  5.     system ("cls");
  6.     do
  7.     {
  8.         cout<<"nn1.Agregar contacton2.Eliminar contacton3.Buscar contacton4.Buscar multiples contactosn5.Listar todon6.Cargar agenda desde archivon7.Guardar agenda a archivon8.Salir"<<endl;
  9.         cin>>opc;
  10.         cin.ignore(numeric_limits<int>::max(), 'n');
  11.         if (!cin || cin.gcount() != 1)
  12.         {
  13.             cout<<"nNo valido"<<endl;
  14.             cin.clear();
  15.             opc=0;
  16.         }
  17.         if(opc>0&&opc<9)
  18.             return opc;
  19.         else
  20.             cout<<"nOpcion invalida"<<endl;
  21.     }while(true);
  22.     return 8;
  23. }
  24.  
  25.  

si no lee un entero muetra el mensaje NO VALIDO limpia hago opc=0 y sigo el while se ejecuta nuevamente por el true esta bien, y muestra el menu y se para para que el usuario ingrese otra opcion, pero si introduzco una letra se muestra en mensaje de error igual se limpia pero no se para siguemostrando el menu y com osi estuviera leyendo la letra otra ves indefinidamente, porque pasa esto con ua letra y no con un simbolo como seria la forma correcta de manejar ese error sea lo que sea que se introduzca mientras no sea un entero :S

13
C/C++ / Re: problema en c++
« en: Domingo 27 de Septiembre de 2009, 01:42 »
clubdesarrolladores.com/articulos/mostrar/70-cpp-string-class-clase-cpp-para-cadenas-de-caracteres ....bueno, si te registras puedes bajar todo el manual completo

conclase.net/librerias/libreria.php?lib=string
pintucoperu.wordpress.com/2007/12/07/introduccion-a-la-stl-string-en-c-conversion-entre-char-y-string/
programacionfacil.com/cpp/string

Goglea un rato mas nada.

14
Java / Re: tarea con netbeans
« en: Domingo 27 de Septiembre de 2009, 01:30 »
mmm bueno lo de la pelota no es gran cosa solo tienes que comparar la posicion de la pelota con los limites del que representa la cancha de tenis ya sea una imagen o un rectangulo lo que vayas a usar, ahora para saber lo otro no se me ocurre nada ahora, pero imagino sabes trabajar bien con graficos no o estas nuevo en eso?

15
C/C++ / validar entero para seleccion de un menu
« en: Domingo 27 de Septiembre de 2009, 00:54 »
Hola como estan todos, soy nuevo aqui en el foro, estuve buscando algun foro de programacion en c++ y me tope con este....vamos a ver que tal me va por aca.

El hecho es que no se nada de excepciones en c++, tengo el libro de Programacion en c++ 2da edicion de joyanes donde hablan del tema pero no entiendo mucho. Bueno lo que estoy buscando por ahora es muy sencillo, practicando listas doblemente enlazadas he creado un programa para manejar una agenda telefonica, con la posibilidad de cargar la agenda desde un archivo a la lista y tambien guardar la agenda a un archivo desde la lista enlazada.

En el programa tengo varios menu donde el usuario selecciona una opcion leo el entero y ejecuto lo que el usuario ingresa, el problema viene cuando el usuario no ingresa un numero sino que ingresa una letra o un simbolo o un valor mayor a la capacidad de un entero, provocando un error, mi menu simplemente dice opcion invalida pero se ejecuta infinitamente por la misma condicion de un while que tengo no se para, por lo menos en java se como tratar estos problemas con excepciones, pero en c++ no tengo ni idea, si alguien puede darme una mano. aqui les dejo codigo del primer menu nada mas.

Código: C++
  1.  
  2. int menu()
  3. {
  4.     int opc=0;
  5.     system ("cls");
  6.     do
  7.     {
  8.         cout<<"nn1.Agregar contacton2.Eliminar contacton3.Buscar contacton4.Buscar multiples contactosn5.Listar todon6.Cargar agenda desde archivon7.Guardar agenda a archivon8.Salir"<<endl;
  9.         cin>>opc;
  10.         if(opc>0&&opc<9)
  11.             return opc;
  12.         else
  13.             cout<<"nOpcion invalida"<<endl;
  14.     }while(true);
  15.     return 8;
  16. }
  17.  
  18.  

cuando lee mal repite el do por la misma condicion del while pero no se para en el menu para leer la opcion sino que sigue sin pararse. Por lo menos en java manejo la excepcion en un bloque try y catch facil, pero c++ trato de hacerlo igual que he leido se puede hacer y no funciona, si ingreso una letra o un simbolo dice opcion invalida pero el menu se ejecuta infinitamente por el true del while. Trato limpiando el buffer de entrada pero tampoco. Bueno espero alguien me eche una mano por aca saludos

Páginas: [1]