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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Archivos, traducir recorrido
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Archivos, traducir recorrido  (Leído 2,081 veces)
Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Archivos, traducir recorrido
« en: 5 Octubre 2018, 07:57 am »

El otro dia llegue a entenderlo pero hoy me olvide, se me hace algo confuso ese signo de exclamacion  :huh:
Código
  1. while consulta(file archivo, int codigo)
  2. {
  3. ...
  4. bool existe=false;
  5. if(archivo==NULL){
  6. ...
  7. }
  8. else{
  9. while(!feof(archivo) && !existe){// En castellano como seria este recorrido? Mientras no sea final del archivo y ...?
  10. ...
  11. }
  12. }
  13. }
  14.  


En línea

7w7
OmarHack


Desconectado Desconectado

Mensajes: 1.268


Ver Perfil
Re: Archivos, traducir recorrido
« Respuesta #1 en: 5 Octubre 2018, 09:08 am »

Te falta parte del código para saber que hace la variable bool existe. En el codigo fuente original esa variable se usaba para determinar si se había encontrado un carácter.

El signo ! significa NO.

En español esa linea dice:
Mientras NO esté marcado el final del archivo y a su vez NO exite un carácter en la posición,
haz lo siguiente.
{Contenido del bucle}

Esta condición hace que se ejecute lo que hay dentro del bucle while mientras NO se llegue al final del archivo y NO se encuentren más carácteres en el archivo.







En línea

I like to test things.
Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Re: Archivos, traducir recorrido
« Respuesta #2 en: 5 Octubre 2018, 09:21 am »

Pero bool existe estaba inicializado en false, no seria NO(false)? me siento confudidisima  :huh:
« Última modificación: 5 Octubre 2018, 09:24 am por Beginner Web » En línea

7w7
Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Re: Archivos, traducir recorrido
« Respuesta #3 en: 5 Octubre 2018, 09:36 am »

Te paso todo el codigo mejor, de esta forma no lo entiendo
Código
  1. bool existe(parchivo alumnos, int codigo)
  2. {
  3. talumno a;
  4. bool existe=false;
  5. alumnos=fopen("alumnos.txt","rb");
  6. if(alumnos!=NULL){
  7. while(!feof(alumnos) && !existe){
  8. fread(&a,sizeof(a),1,alumnos);
  9. if(a.libreta==codigo){
  10. existe=true;
  11. }
  12. }
  13. }
  14. fclose(alumnos);
  15. return existe;
  16. }
Pero de esta forma si
Código
  1. bool existe(parchivo alumnos, int codigo)
  2. {
  3. talumno a;
  4. bool existe=false;
  5. alumnos=fopen("alumnos.txt","rb");
  6. if(alumnos!=NULL){
  7. while(!feof(alumnos) && existe==false){
  8. fread(&a,sizeof(a),1,alumnos);
  9. if(a.libreta==codigo){
  10. existe=true;
  11. }
  12. }
  13. }
  14. fclose(alumnos);
  15. return existe;
  16. }
En línea

7w7
OmarHack


Desconectado Desconectado

Mensajes: 1.268


Ver Perfil
Re: Archivos, traducir recorrido
« Respuesta #4 en: 5 Octubre 2018, 10:17 am »

No entiendo que es lo que tu no entiendes.  :-\

 Bucle dice:
  while            (!                                feof                                   (alumnos)              &&                !           existe)
Mientras      No         se alcance el final del archivo           alumnos.txt      y a su vez      No      sea == a No


Ahí tenemos 2 condiciones. Y ambas deben cumplirse para que el bucle se detenga.
Estas condiciones en el bucle while dicen:
-Mientras no se lea todo el archivo hasta el final.
&&
-Mientras la variable exista no tenga el valor contrario a false.  
Se ejecutará el contenido del bucle.

Esta comparación es posible porque la propia funcion feof devuelve falso o verdadero.

Lo que dice ese condicional al final es que, se ejecute el bucle hasta que feof devuelva true y existe valga true. Es decir, que ambos devuelvan true.

El programa lo que hace es que mientras no se llegue al final del archivo, y no le cambies el valor a existe, se siga buscando en el archivo alumnos.txt

« Última modificación: 5 Octubre 2018, 10:19 am por OmarHack » En línea

I like to test things.
Beginner Web


Desconectado Desconectado

Mensajes: 634


youtu.be/0YhflLRE-DA


Ver Perfil
Re: Archivos, traducir recorrido
« Respuesta #5 en: 5 Octubre 2018, 10:46 am »

Emm si entiendo lo de !feof(archivo)  ahi en el codigo lo puse , no se porque me lo explicas una y otra vez , ahh con que era MIENTRAS NO LE CAMBIE EL VALOR A EXISTE, ahi estaba el chiste  ;-)
« Última modificación: 5 Octubre 2018, 10:51 am por Beginner Web » En línea

7w7
Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


Ver Perfil
Re: Archivos, traducir recorrido
« Respuesta #6 en: 5 Octubre 2018, 15:59 pm »

Emm si entiendo lo de !feof(archivo)  ahi en el codigo lo puse , no se porque me lo explicas una y otra vez , ahh con que era MIENTRAS NO LE CAMBIE EL VALOR A EXISTE, ahi estaba el chiste  ;-)

Exacto... 'existe' es un bulenao, puesto ahí para poder salir del bucle en algún momento anterior al final... por ejemplo por que estás buscando un contenido específico... si lo encuentras marcas 'existe==true', y saldrá del bucle aunque no se haya alcanzado el final del fichero...
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Decrypter online para traducir contraseñas de archivos cifrados
Hacking
javichio09 3 8,000 Último mensaje 14 Diciembre 2010, 16:32 pm
por 77seba77
recorrido de una matriz de forma recursiva
Programación General
dark_headhunter 4 17,588 Último mensaje 10 Junio 2011, 23:39 pm
por Khronos14
Recorrido de una Matriz
Java
Fabi0lo 3 4,143 Último mensaje 26 Octubre 2011, 00:46 am
por s00rk
problema recorrido de arreglo
Programación C/C++
marchiali 0 1,485 Último mensaje 24 Julio 2014, 21:34 pm
por marchiali
Traducir archivos exe y dll.
Ingeniería Inversa
amt1963 3 3,918 Último mensaje 13 Noviembre 2014, 23:01 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines