<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>