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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C++] Uso de <vector>
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [C++] Uso de <vector>  (Leído 6,230 veces)
MeCraniDOS


Desconectado Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
[C++] Uso de <vector>
« en: 22 Junio 2013, 19:16 pm »

Buenas, tengo este código...

Código
  1. #include <stdio.h>
  2. #include <io.h>
  3.  
  4. int main()
  5. {
  6.    struct _finddata_t arch;
  7.    long result;
  8.    int n;
  9.  
  10.    if ( (result = _findfirst("*.txt", &arch)) == -1 )
  11.    {
  12.        printf("\n ~ No hay Archivos ~\n\n");
  13.    }
  14.    else
  15.    {
  16.  
  17.        printf("\n ~ Seleccion de Archivos ~\n\n");
  18.  
  19.        n = 1;
  20.  
  21.        do
  22.        {
  23.            printf(" %d.- %s\n", n, arch.name);
  24.            n+=1;
  25.  
  26.        } while ( _findnext(result, &arch) == 0 );
  27.  
  28.        _findclose(result);
  29.  
  30.  
  31.    }
  32.  
  33.    printf("\n Que archivo quieres abrir?");
  34.  
  35.    getchar();
  36.  
  37.  
  38. }

Quiero modificarlo de manera que en vez de escribir el nombre del archivo para abrirlo, solo ponga el numero que lleva delante, es decir, que ponga 1, y se abra el primer archivo..  :silbar:

Creo que se hace con <vector> pero no se como usarlo, espero que puedan ayudarme  ;-)

Saludos


En línea

"La física es el sistema operativo del Universo"
     -- Steven R Garman
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: [C++] Uso de <vector>
« Respuesta #1 en: 22 Junio 2013, 20:34 pm »

Tú lo que quieres es algo parecido a mi Rar File Missing.

Consulta mi código, no obstante es bastante sencillo (vas guardando los nombres en un vector, después le pides al usuario un número y accedes a ese elemento del vector).


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
MeCraniDOS


Desconectado Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
Re: [C++] Uso de <vector>
« Respuesta #2 en: 22 Junio 2013, 20:37 pm »

Tú lo que quieres es algo parecido a mi Rar File Missing.

Siii, es exactamente lo que quiero  :rolleyes: :rolleyes:

Mire tu código pero no te voy a decir la que lié...  :¬¬ :¬¬

No se como guardar lo nombres en un vector  :-\

Editado

He mirado tu codigo y se queda trabado en "Buscando archivos Rar en la carpeta..." :-\
« Última modificación: 22 Junio 2013, 21:28 pm por MeCraniDOS » En línea

"La física es el sistema operativo del Universo"
     -- Steven R Garman
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: [C++] Uso de <vector>
« Respuesta #3 en: 23 Junio 2013, 00:29 am »

No se como guardar lo nombres en un vector  :-\
Pues si no sabemos ni siquiera usar un vector vamos mal  :silbar:

Mírate este vídeo:
http://www.youtube.com/watch?feature=player_embedded&v=ySZ60lvuoo4
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
MeCraniDOS


Desconectado Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
Re: [C++] Uso de <vector>
« Respuesta #4 en: 23 Junio 2013, 00:43 am »

Pues si no sabemos ni siquiera usar un vector vamos mal  :silbar:

Ahora ya si que funciona, pero es lo que te digo, se me queda trabado en el "Buscando archivos Rar en la carpeta..." y no pasa de ahí...
En línea

"La física es el sistema operativo del Universo"
     -- Steven R Garman
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: [C++] Uso de <vector>
« Respuesta #5 en: 23 Junio 2013, 11:48 am »

¿Pero no estabas usando archivos .txt?

Borra todo lo que tengas y vuelve al código inicial. Después mirate el vídeo que te pasé.
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
MeCraniDOS


Desconectado Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
Re: [C++] Uso de <vector>
« Respuesta #6 en: 23 Junio 2013, 14:13 pm »

¿Pero no estabas usando archivos .txt?

En la función ExtensionRar, cambie el "rar" por "txt", ya lo adapte a lo que quería y no me daba fallos, pero como no funcionaba intente compilar tu proyecto, y también se quedaba trabado en esa linea, del tuyo no modifique nada...  :-\ :-\
En línea

"La física es el sistema operativo del Universo"
     -- Steven R Garman
ecfisa

Desconectado Desconectado

Mensajes: 114


Ver Perfil
Re: [C++] Uso de <vector>
« Respuesta #7 en: 23 Junio 2013, 22:11 pm »

Hola MeCraniDOS.

Citar
Quiero modificarlo de manera que en vez de escribir el nombre del archivo para abrirlo, solo ponga el numero que lleva delante, es decir, que ponga 1, y se abra el primer archivo..  :silbar:

Creo que se hace con <vector> pero no se como usarlo, espero que puedan ayudarme  ;-)

Tal vez este código muy básico te pueda servir de guía:
Código
  1. #include<iostream>
  2. #include <vector>
  3. #include <string>
  4. #include <windows.h>
  5.  
  6. using namespace std;
  7.  
  8. typedef vector <string> vFileNames;
  9.  
  10. bool GetFileNames(string , string , vFileNames*);
  11. void ShowFileNames(vFileNames);
  12.  
  13. int main()
  14. {
  15.  vFileNames FileNames;
  16.  string rta, ext;
  17.  int opt;
  18.  
  19.  cout << "Unidad + ruta (Ej: C:\\\\CARPETA\\\\): ";
  20.  cin >> rta;
  21.  cout << endl << "Extension del archivo (Ej: *.TXT): ";
  22.  cin >> ext;
  23.  if (GetFileNames(rta, ext, &FileNames))
  24.    do {
  25.      ShowFileNames(FileNames);
  26.      cout << "Seleccione un numero 0-" << FileNames.size()-1 <<" (-1 termina)";
  27.      cin >> opt;
  28.      if (opt > -1)
  29.      cout << endl << "Su eleccion: " << FileNames[opt] << endl << endl;
  30.    } while (opt != -1);
  31.  else
  32.    cout << "No se encontraron archivos";
  33.  return 0;
  34. }
  35.  
  36. bool GetFileNames(string Ruta, string Ext, vFileNames *v)
  37. {
  38.  WIN32_FIND_DATA FindFileData;
  39.  HANDLE hFind = FindFirstFile(((string)Ruta+Ext).c_str(), &FindFileData);
  40.  
  41.  if (hFind == INVALID_HANDLE_VALUE)
  42.    return false;
  43.  do
  44.    (*v).push_back(FindFileData.cFileName);
  45.  while (FindNextFile(hFind, &FindFileData));
  46.  FindClose(hFind);
  47.  return true;
  48. }
  49.  
  50. void ShowFileNames(vFileNames v) {
  51.  for(unsigned i = 0; i < v.size(); i++)
  52.    cout << i << ".- " << v[i] << endl;
  53. }
  54.  


Saludos :)
« Última modificación: 23 Junio 2013, 22:39 pm por ecfisa » En línea

MeCraniDOS


Desconectado Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
Re: [C++] Uso de <vector>
« Respuesta #8 en: 24 Junio 2013, 22:59 pm »

Tal vez este código muy básico te pueda servir de guía:

Si, me sirve de mucho, gracias por molestarte  ;-) ;-)

Saludos


Editado

Otra cosa, he adaptado tu código a lo que necesitaba, me ha quedado algo así


Código
  1. bool Listar_Archivos()
  2. {
  3.  
  4.    vFileNames FileNames;
  5.    string rta, ext;
  6.    int opt;
  7.  
  8.    rta = "";
  9.  
  10.    ext = "*.txt";
  11.  
  12.    if (GetFileNames(rta, ext, &FileNames))
  13.    {
  14.        ShowFileNames(FileNames);
  15.  
  16.        cout << "\n Selecciona un archivo (0-" << FileNames.size()-1 << ") ";
  17.  
  18.        cin >> opt;
  19.  
  20.        cout << endl << " Procesando " << FileNames[opt] << endl;
  21.  
  22.        return true;
  23.  
  24.    }
  25.  
  26.    else
  27.  
  28.    {
  29.        return false;
  30.    }
  31.  
  32. }

Pero tengo este problema, tengo este otro código

Código
  1.  
  2. #include <iostream>
  3. #include <fstream>
  4. #include <string>
  5. #include <cctype>
  6. #include <io.h>
  7. #include <vector>
  8.  
  9. #include <windows.h>
  10.  
  11.  
  12. using namespace std;
  13.  
  14.  
  15. typedef vector <string> vFileNames;
  16.  
  17. bool GetFileNames(string , string , vFileNames*);
  18. void ShowFileNames(vFileNames);
  19.  
  20. bool Listar_Archivos();
  21. bool Leer_Archivo(string Nombre);
  22.  
  23. int main()
  24. {
  25.        char Letra;
  26.        string Nombre_Archivo_Vacio; //Variable para el archivo a leer
  27.  
  28. if (!Listar_Archivos())
  29.       {
  30. cout<<" No se encontraron archivos!";
  31. cin.get(); // Pausa
  32. return -1; // Finaliza el programa con error
  33. }
  34.  
  35. if(!Leer_Archivo(Nombre_Archivo_Vacio)) //Se envia la variable "Nombre_Archivo_Vacio" a la funcion "Leer_Archivo"
  36.               {
  37.                         printf("\n [+] Desea intentar repetir la operacion? (S/N) ");
  38.                         cin>>Letra;
  39.               }
  40.  
  41.      [...]
  42. }

Lo que quiero es usar el archivo seleccionado de la función Listar_Archivos en la función Leer_Archivo, pero no se como pasar ese dato de una función a otra :-\ :-\

Saludos

« Última modificación: 25 Junio 2013, 02:38 am por MeCraniDOS » En línea

"La física es el sistema operativo del Universo"
     -- Steven R Garman
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: [C++] Uso de <vector>
« Respuesta #9 en: 25 Junio 2013, 15:57 pm »

Lo que quiero es usar el archivo seleccionado de la función Listar_Archivos en la función Leer_Archivo, pero no se como pasar ese dato de una función a otra :-\ :-\

Saludos


Simplemente pasa ese nombre:

Código
  1. cout << endl << " Procesando " << FileNames[opt] << endl;
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
vector < vector<int> > ?
Programación C/C++
bemone 3 2,748 Último mensaje 24 Agosto 2012, 05:50 am
por BlackZeroX
Vector i*8+j
Programación C/C++
JohnMcb 1 1,779 Último mensaje 3 Mayo 2013, 17:56 pm
por rir3760
ejercicio de vector c++
Programación C/C++
eterno21 8 2,904 Último mensaje 7 Agosto 2013, 17:55 pm
por eterno21
[Consulta] Vector de objectos
Programación C/C++
bemone 1 1,840 Último mensaje 9 Agosto 2013, 08:19 am
por eferion
DUDA OCZ VECTOR
Hardware
Annubiis 7 4,211 Último mensaje 17 Septiembre 2013, 13:00 pm
por topomanuel
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines