<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Yo creo que están en el lugar equivocado. Lo que necesitas es
    contratar un freelancer en sitios como freelancer.com o workana.com
    para que te haga el script que necesitas. <br>
    <br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 13/04/16 04:04, Angel MGTech wrote:<br>
    </div>
    <blockquote
cite="mid:CAOsYTNN7aEBEgkG5BDZGjn5ptmbDap1-0tibxAqchU8uc5ze7A@mail.gmail.com"
      type="cite">
      <div dir="ltr">Buenos días, soy un sysadmin y la verdad que no
        tengo demasiada idea de programación. El tema esta que en el
        trabajo me pidieron un proceso que hiciera lo siguiente:
        <div><br>
        </div>
        <div>
          <p class="MsoNormal"><span lang="ES-TRAD">debe leer los
              nombres de ficheros de la carpeta de una carpeta por
              ejemplo
              c:\Origen la estructura de los ficheros es la siguiente
               "12345678__Pepe_Martinez__presupuesto.xls"</span></p>
          <p class="MsoNormal"><span lang="ES-TRAD">en la
              ruta c:\Destino existirán ya creadas las siguientes
              carpetas  "12345678__Pepe_Martinez"</span></p>
          <p class="MsoNormal"><span lang="ES-TRAD">el
              programa debe fijarse en los 8 primeros dígitos,
              "12345678" y mover
              dichos ficheros que tengan el mismo código, pueden ser
              .doc, .xls, etc... y
              moverlos a su carpeta correspondiente </span></p>
          <p class="MsoNormal"><span lang="ES-TRAD">"
              12345678__Pepe_Martinez" debe comparar solo los 8 dígitos
              de la carpeta y
              moverlos dentro si es el mismo codigo, en caso de que se
              produzca algun error
              como:</span></p>
          <p class="MsoNormal"><span lang="ES-TRAD">                >
               que no se encuentre la carpeta</span></p>
          <p class="MsoNormal"><span lang="ES-TRAD">                >
              el fichero no cumpla los
              requisitos, no tenga 8 digitos, sean menos o mas....  </span></p>
          <p class="MsoNormal"><span lang="ES-TRAD"><br>
            </span></p>
          <p class="MsoNormal"><span lang="ES-TRAD">Debe
              moverlo a otra carpeta por ejemplo c:\Errores.</span></p>
          <p class="MsoNormal"><span lang="ES-TRAD"><br>
            </span></p>
          <p class="MsoNormal"><span lang="ES-TRAD">Tengo un programita
              que hace algo parecido, pero no se como adaptarlo:</span></p>
          <p class="MsoNormal"><br>
          </p>
          <p class="MsoNormal"><span lang="ES-TRAD"><br>
            </span></p>
          <p class="MsoNormal">//---------------------------------------------------------------------------</p>
          <p class="MsoNormal">#include <stdio.h></p>
          <p class="MsoNormal">#include <stdlib.h></p>
          <p class="MsoNormal">#include <ctype.h></p>
          <p class="MsoNormal">#include <limits.h></p>
          <p class="MsoNormal">#include <string.h></p>
          <p class="MsoNormal">#include <dirent.h></p>
          <p class="MsoNormal">//---------------------------------------------------------------------------</p>
          <p class="MsoNormal">#define ERROR_SUCCESS 0</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal">void error(const char *s);</p>
          <p class="MsoNormal">int ObtenerLargoCodigo(char*
            nombreArchivo);</p>
          <p class="MsoNormal">int ObtenerNombreDirectorio(char*
            nombreArchivo,char* nombreDirectorio);</p>
          <p class="MsoNormal">int CrearDirectorio(char*
            nombreDirectorio,char* ruta);</p>
          <p class="MsoNormal">int MoverArchivos(char* rutaOrigen,char*
            rutaDestino);</p>
          <p class="MsoNormal">//---------------------------------------------------------------------------</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal">int main(int argc, char* argv[])</p>
          <p class="MsoNormal">{</p>
          <p class="MsoNormal">    //Cambiar las rutas por las deseadas</p>
          <p class="MsoNormal">    char rutaOrigen[]={"C:\\Origen"};</p>
          <p class="MsoNormal">    char rutaDestino[]={"C:\\Destino"};</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal">    printf("Directorio raiz de origen:
            %s\n",rutaOrigen);</p>
          <p class="MsoNormal">    printf("Directorio raiz de destino:
            %s\n",rutaDestino);</p>
          <p class="MsoNormal">   
            if(MoverArchivos(rutaOrigen,rutaDestino)!=EXIT_SUCCESS)</p>
          <p class="MsoNormal">        printf("Asegurese de que la ruta
            del directorio es correcta\n");</p>
          <p class="MsoNormal">    system("PAUSE");</p>
          <p class="MsoNormal">    return 0;</p>
          <p class="MsoNormal">}</p>
          <p class="MsoNormal">//---------------------------------------------------------------------------</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal">int MoverArchivos(char* rutaOrigen,char*
            rutaDestino)</p>
          <p class="MsoNormal">{</p>
          <p class="MsoNormal">    DIR *dirOrigen,*dirDestino;</p>
          <p class="MsoNormal">    struct dirent *ent;</p>
          <p class="MsoNormal">    int
            retval,nleidos=0,nmovidos=0,ncodigoincorrecto=0,nDirCreados=0;</p>
          <p class="MsoNormal">    int ret;</p>
          <p class="MsoNormal">    char
            auxRutaOrigen[MAX_PATH],auxRutaDestino[MAX_PATH];</p>
          <p class="MsoNormal">    char nombreDir[MAX_PATH];</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal">   
            printf("=====================================================\n");</p>
          <p class="MsoNormal">    dirOrigen=opendir(rutaOrigen);</p>
          <p class="MsoNormal">    if(dirOrigen==NULL){</p>
          <p class="MsoNormal">        error("No puedo abrir el
            directorio de origen");</p>
          <p class="MsoNormal">        retval=EXIT_FAILURE;</p>
          <p class="MsoNormal">    }else{</p>
          <p class="MsoNormal">        dirDestino=opendir(rutaDestino);</p>
          <p class="MsoNormal">        if(dirDestino==NULL){</p>
          <p class="MsoNormal">            error("No puedo abrir el
            directorio de destino");</p>
          <p class="MsoNormal">            retval=EXIT_FAILURE;</p>
          <p class="MsoNormal">        }else{</p>
          <p class="MsoNormal">            closedir(dirDestino);</p>
          <p class="MsoNormal">           
            while((ent=readdir(dirOrigen)) != NULL){</p>
          <p class="MsoNormal">               
if((strcmp(ent->d_name,".")!=0)&&(strcmp(ent->d_name,"..")!=0)){</p>
          <p class="MsoNormal">                   
            ret=ObtenerLargoCodigo(ent->d_name);</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal">                    if(ret==8){</p>
          <p class="MsoNormal">                       
            if(ObtenerNombreDirectorio(ent->d_name,nombreDir)==ERROR_SUCCESS){</p>
          <p class="MsoNormal">                           
            sprintf(auxRutaOrigen,"%s\\%s",rutaOrigen,ent->d_name);</p>
          <p class="MsoNormal">                           
            if(CrearDirectorio(nombreDir,rutaDestino)==ERROR_SUCCESS){</p>
          <p class="MsoNormal">                               
            printf("Se ha creado el directorio \"%s\"\n",nombreDir);</p>
          <p class="MsoNormal">                               
            nDirCreados++;</p>
          <p class="MsoNormal">                            }</p>
          <p class="MsoNormal">                           
sprintf(auxRutaDestino,"%s\\%s\\%s",rutaDestino,nombreDir,ent->d_name);</p>
          <p class="MsoNormal">                           
            if(rename(auxRutaOrigen,auxRutaDestino)==ERROR_SUCCESS){</p>
          <p class="MsoNormal">                               
            printf("El archivo \"%s\" se movio al directorio
            \"%s\n",ent->d_name,nombreDir);</p>
          <p class="MsoNormal">                               
            nmovidos++;</p>
          <p class="MsoNormal">                            }else{</p>
          <p class="MsoNormal">                               
            printf("Huvo algun error al mover el archivo \"%s\" al
            directorio \"%s\"\n",ent->d_name,nombreDir);</p>
          <p class="MsoNormal">                            }</p>
          <p class="MsoNormal">                        }</p>
          <p class="MsoNormal">                        nleidos++;</p>
          <p class="MsoNormal">                    }else{</p>
          <p class="MsoNormal">                       
            ncodigoincorrecto++;</p>
          <p class="MsoNormal">                    }</p>
          <p class="MsoNormal">                }</p>
          <p class="MsoNormal">            }</p>
          <p class="MsoNormal">           
            printf("=====================================================\n");</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal">            if(nleidos > 0)</p>
          <p class="MsoNormal">                printf("Se han movido %i
            de %i archivos\n",nmovidos,nleidos+ncodigoincorrecto);</p>
          <p class="MsoNormal">            else if(ncodigoincorrecto==0)</p>
          <p class="MsoNormal">                printf("No se han
            encontrado archivos\n");</p>
          <p class="MsoNormal">            if(ncodigoincorrecto > 0)</p>
          <p class="MsoNormal">                printf("Se encontraron %i
            archivos con codigo de cliente
            incorrectos\n",ncodigoincorrecto);</p>
          <p class="MsoNormal">            if(nDirCreados > 0)</p>
          <p class="MsoNormal">                printf("Se han creado %i
            directorios\n",nDirCreados);</p>
          <p class="MsoNormal">            else</p>
          <p class="MsoNormal">                printf("No se han creado
            directorios\n");</p>
          <p class="MsoNormal">            retval=EXIT_SUCCESS;</p>
          <p class="MsoNormal">        }</p>
          <p class="MsoNormal">        closedir(dirOrigen);</p>
          <p class="MsoNormal">    }</p>
          <p class="MsoNormal">    return retval;</p>
          <p class="MsoNormal">}</p>
          <p class="MsoNormal">//---------------------------------------------------------------------------</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal">int ObtenerLargoCodigo(char*
            nombreArchivo)</p>
          <p class="MsoNormal">{</p>
          <p class="MsoNormal">    char ncliente[MAX_PATH],*ptr;</p>
          <p class="MsoNormal">    int i,pos=0,retval=0;</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal">   
            memset(ncliente,'\0',sizeof(ncliente));</p>
          <p class="MsoNormal">    ptr = strstr(nombreArchivo, "__");</p>
          <p class="MsoNormal">    pos=((int)ptr)-(int)nombreArchivo;</p>
          <p class="MsoNormal">    strncpy(ncliente,nombreArchivo,pos);</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal">    for(i=0;i<strlen(ncliente);i++){</p>
          <p class="MsoNormal">        if(isdigit(ncliente[i])==1)</p>
          <p class="MsoNormal">            retval++;</p>
          <p class="MsoNormal">        else</p>
          <p class="MsoNormal">            break;</p>
          <p class="MsoNormal">    }</p>
          <p class="MsoNormal">    return retval;</p>
          <p class="MsoNormal">}</p>
          <p class="MsoNormal">//---------------------------------------------------------------------------</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal">int CrearDirectorio(char*
            nombreDirectorio,char* ruta)</p>
          <p class="MsoNormal">{</p>
          <p class="MsoNormal">   int retval;</p>
          <p class="MsoNormal">   char aux[MAX_PATH]={0};</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal"> 
             sprintf(aux,"%s\\%s",ruta,nombreDirectorio);</p>
          <p class="MsoNormal">   retval=mkdir(aux);</p>
          <p class="MsoNormal">   return retval;</p>
          <p class="MsoNormal">}</p>
          <p class="MsoNormal">//---------------------------------------------------------------------------</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal">int ObtenerNombreDirectorio(char*
            nombreArchivo,char* nombreDirectorio)</p>
          <p class="MsoNormal">{</p>
          <p class="MsoNormal">    int pos=0,retval;</p>
          <p class="MsoNormal">    char *ptr;</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal">   
            memset(nombreDirectorio,'\0',MAX_PATH);</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal">    while( (ptr =
            strstr(&nombreArchivo[pos], "__")) != NULL ){</p>
          <p class="MsoNormal">       
            pos=((int)ptr+2)-(int)nombreArchivo;</p>
          <p class="MsoNormal">    }</p>
          <p class="MsoNormal">    if(pos >= 2)</p>
          <p class="MsoNormal">        pos-=2;</p>
          <p class="MsoNormal">   
            strncpy(nombreDirectorio,nombreArchivo,pos);</p>
          <p class="MsoNormal">    if(strlen(nombreDirectorio)>0)</p>
          <p class="MsoNormal">        retval=EXIT_SUCCESS;</p>
          <p class="MsoNormal">    else</p>
          <p class="MsoNormal">        retval=EXIT_FAILURE;</p>
          <p class="MsoNormal">    return retval;</p>
          <p class="MsoNormal">}</p>
          <p class="MsoNormal">//---------------------------------------------------------------------------</p>
          <p class="MsoNormal"> </p>
          <p class="MsoNormal">void error(const char *s)</p>
          <p class="MsoNormal">{</p>
          <p class="MsoNormal">    /* perror() devuelve la cadena S y el
            error (en cadena de caracteres) que tenga errno */</p>
          <p class="MsoNormal">    perror(s);</p>
          <p class="MsoNormal">}</p>
          <p class="MsoNormal"><span lang="ES-TRAD"></span></p>
          <p class="MsoNormal">//---------------------------------------------------------------------------</p>
          <p class="MsoNormal"><span lang="ES-TRAD"><br>
            </span></p>
          <p class="MsoNormal"><span lang="ES-TRAD"><br>
            </span></p>
          <p class="MsoNormal"><span lang="ES-TRAD"><br>
            </span></p>
          <p class="MsoNormal"><span lang="ES-TRAD"><br>
            </span></p>
          <p class="MsoNormal"><span lang="ES-TRAD">Si me pudierais
              ayudar lo agradecería bastante,</span></p>
          <p class="MsoNormal"><span lang="ES-TRAD"><br>
            </span></p>
          <p class="MsoNormal"><span lang="ES-TRAD">Saludos</span></p>
          <p class="MsoNormal"><span lang="ES-TRAD"><br>
            </span></p>
          <p class="MsoNormal"><span lang="ES-TRAD"><br>
            </span></p>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Lista de correo Cconclase <a class="moz-txt-link-abbreviated" href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a>
<a class="moz-txt-link-freetext" href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a>
Bajas: <a class="moz-txt-link-freetext" href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a></pre>
    </blockquote>
    <br>
  </body>
</html>