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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


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

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Como abrir un directorio
« en: 20 Enero 2016, 16:55 pm »

Hola buenas estoy realizando un programa que me han pedido en el cual tengo que leer de teclado el nombre de un archivo .srt, y abrir su directorio, cabe decir que todos los .srt, están en /datos/subtitulos/---.srt. Mi duda es como hacer para que esto vaya variando y como incluir el directorio, os incluyo mi función main, donde se tendría que abrir susodicho .srt:


int main(){
   bool si=true;
   const int MAX = 19;
   while(si){
      char NombreFichero[MAX];
      cout << "Un fichero de subtitulos"
      "(de practicasPROG1/datos/subtitulos): " << flush;
      cin >> NombreFichero;
      ifstream z;
      z.open(NombreFichero);
      if(contarSubtitulos(NombreFichero)>0){
         cout << "El fichero " << NombreFichero
               << " ha sido leido y contiene "
               << contarSubtitulos(NombreFichero)
               << " subtitulos que han sido leidos" << endl;
         ordenes();
         char d[10];
         char f[MAX];
         int e;
         int g;
         cout << "orden?";
         cin >> d >> f >> e >> g;
         convertir(d);
         convertir(f);
         operaciones(d, f, e, g, NombreFichero);
         if(strcmp(d,"fin")==0){
         si=false;
         }
         else if (strcmp(d,"fichero")==0){
            NombreFichero[MAX]=d[MAX];
            z.open(NombreFichero);
         }
      }
      else{
         cout << "El fichero " << NombreFichero << " no ha podido ser leido"
               << endl;
      }
   }
}
     


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Como abrir un directorio
« Respuesta #1 en: 20 Enero 2016, 19:22 pm »

Crea, mediante array de strings o en un fichero de configuración, las rutas donde tu programa tendrá que mirar si hay el .srt que busca el usuario; y después que vaya probando ruta por ruta si el archivo existe y cargue la primera aparición o le diga al usuario que no existe.

Yo lo he hecho con arrays:
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main()
  5. {
  6.    FILE *fp;
  7.    char cadena[80];
  8.    char directorio[2][80];
  9.    char archivo[80];
  10.    char ruta[165];
  11.    char const extension[] = ".txt";
  12.    int i;
  13.    int encontrado;
  14.    int caracteres;
  15.  
  16.    strcpy(directorio[0], "./prueba/");
  17.    strcpy(directorio[1], "./prueba2/");
  18.  
  19.    printf("Nombre el archivo a buscar: ");
  20.    scanf("%79s", archivo);
  21.    puts("\n");
  22.  
  23.    for(i = 0, encontrado = 0; i < 2 && !encontrado; ++i) {
  24.        ruta[0] = '\0';
  25.        strcat(ruta, directorio[i]);
  26.        strcat(ruta, archivo);
  27.        strcat(ruta, extension);
  28.        fp = fopen(ruta, "r");
  29.        if(fp)
  30.            encontrado = 1;
  31.    }
  32.  
  33.    if(encontrado) {
  34.        caracteres = printf(" Contenido de %s\n", archivo);
  35.        for(i = 0; i < caracteres; ++i)
  36.            printf("-");
  37.        puts("");
  38.        while(!feof(fp)) {
  39.            fscanf(fp, "%s", cadena);
  40.            puts(cadena);
  41.            cadena[0] = '\0';
  42.        }
  43.    }
  44.    else {
  45.        printf("El archivo %s no ha sido encontrado\n", archivo);
  46.    }
  47.    return(0);
  48. }

Así suponiendo que hay un archivo llamado prueba.txt en el directorio prueba, con texto en su interior 'prueba'; y un archivo llamado prueba2.txt en el directorio prueba2, con texto en su interior 'prueba2':

Nombre el archivo a buscar: prueba


 Contenido de prueba
---------------------
prueba




Nombre el archivo a buscar: prueba2


 Contenido de prueba2
----------------------
prueba2




Nombre el archivo a buscar: prueba3


El archivo prueba3 no ha sido encontrado



« Última modificación: 20 Enero 2016, 19:41 pm por MAFUS » En línea

comemelguevo

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Como abrir un directorio
« Respuesta #2 en: 20 Enero 2016, 20:46 pm »

Crea, mediante array de strings o en un fichero de configuración, las rutas donde tu programa tendrá que mirar si hay el .srt que busca el usuario; y después que vaya probando ruta por ruta si el archivo existe y cargue la primera aparición o le diga al usuario que no existe.

Yo lo he hecho con arrays:
Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main()
  5. {
  6.    FILE *fp;
  7.    char cadena[80];
  8.    char directorio[2][80];
  9.    char archivo[80];
  10.    char ruta[165];
  11.    char const extension[] = ".txt";
  12.    int i;
  13.    int encontrado;
  14.    int caracteres;
  15.  
  16.    strcpy(directorio[0], "./prueba/");
  17.    strcpy(directorio[1], "./prueba2/");
  18.  
  19.    printf("Nombre el archivo a buscar: ");
  20.    scanf("%79s", archivo);
  21.    puts("\n");
  22.  
  23.    for(i = 0, encontrado = 0; i < 2 && !encontrado; ++i) {
  24.        ruta[0] = '\0';
  25.        strcat(ruta, directorio[i]);
  26.        strcat(ruta, archivo);
  27.        strcat(ruta, extension);
  28.        fp = fopen(ruta, "r");
  29.        if(fp)
  30.            encontrado = 1;
  31.    }
  32.  
  33.    if(encontrado) {
  34.        caracteres = printf(" Contenido de %s\n", archivo);
  35.        for(i = 0; i < caracteres; ++i)
  36.            printf("-");
  37.        puts("");
  38.        while(!feof(fp)) {
  39.            fscanf(fp, "%s", cadena);
  40.            puts(cadena);
  41.            cadena[0] = '\0';
  42.        }
  43.    }
  44.    else {
  45.        printf("El archivo %s no ha sido encontrado\n", archivo);
  46.    }
  47.    return(0);
  48. }

Así suponiendo que hay un archivo llamado prueba.txt en el directorio prueba, con texto en su interior 'prueba'; y un archivo llamado prueba2.txt en el directorio prueba2, con texto en su interior 'prueba2':

Nombre el archivo a buscar: prueba


 Contenido de prueba
---------------------
prueba




Nombre el archivo a buscar: prueba2


 Contenido de prueba2
----------------------
prueba2




Nombre el archivo a buscar: prueba3


El archivo prueba3 no ha sido encontrado


Muchas gracias!!! :)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
(VBScript) "abrir ventana en el ultimo directorio seleccionado"
Scripting
tonilogar 3 5,419 Último mensaje 17 Diciembre 2009, 02:53 am
por Novlucker
Abrir último fichero modificado de un directorio
GNU/Linux
TheMaker 3 7,137 Último mensaje 30 Julio 2010, 23:43 pm
por [u]nsigned
Cómo ir a un directorio (universalmente)
Programación Visual Basic
oskoa 8 4,471 Último mensaje 30 Diciembre 2010, 00:58 am
por oskoa
Abrir directorio c#
.NET (C#, VB.NET, ASP)
evicar 2 7,171 Último mensaje 1 Septiembre 2011, 15:36 pm
por evicar
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines