FoxPro/Visual FoxPro - como copiar imágenes desde una lista de txt

   
Vista:

como copiar imágenes desde una lista de txt

Publicado por adriana guzman (3 intervenciones) el 03/02/2016 20:42:29
Hola, no soy experta en programación hasta ahora estoy dando unos pasos,
me gustaría saber si puedo generar un método que realice la siguiente función
(tratare de explicarme lo mas fácil)
tengo 2000 imágenes en una carpeta en formato TIFF, que tiene nombres como código
ejem: 6555212.TIFF , 6543458.TIFF
y de esas 2000 imágenes debo seleccionar solo 850 y sacarlas aparte para otro proceso,
tengo un archivo de bloc de notas donde están los nombres de las imágenes que debo
sacar en forma de un listado ejm:
655328.TIFF
688955.TIFF
acudo a utds para ver si puedo crear un pequeño aplicativo que me deje cargar el txt y me copie
en otra ruta o carpeta las imágenes que necesito, pues buscar una por una es muy tedioso!
:(
muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

como copiar imágenes desde una lista de txt

Publicado por Fidel José (321 intervenciones) el 03/02/2016 22:11:26
Adriana:
Pongo aquí una solución basada en Scripting.FileSystemObject
La porción "*<Genera_escenario_de_prueba>" la hice solamente para crear un banco de prueba. Se supone que ya tienes ese archivo txt o que es suministrado por otro módulo (también puede venir en una cadena xml o txt con delimitadores.

Fijate que lo que resuelve el tema del archivo es la combinación ALINES() con FILETOSTR().

Scripting.FileSystemObject se utliza aquí para crear una carpeta si no existe y para copiar los archivos.
También se puede utilizar para comparar las fechas de los archivos, o el tamaño.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
LOCAL lcRoot,;
	lcFilePict,;
	lcString,;
	i,;
	lnCount,;
	lcTargetFolder,;
	lnFilesCopy,;
	loFso as Object
 
LOCAL ARRAY lafiles(1)
 
* Estos valores seguramente serán parámetros
* o valores alojados en alguna parte.
 
lcRoot = "c:\theodore\graphics"
lcfilePict = ADDBS(lcRoot)+"MyFilePict.txt"
lcTargetFolder = "c:\theodore\graphics\jpg"
 
lnCount = 0
 
*<Genera_escenario_de_prueba>
	* El archivo txt ya estará generado en producción.
	lcString = ""
	lnFiles = ADIR(laFiles,ADDBS(lcRoot)+"*.jpg","",1)
	FOR i= 1 TO lnFiles
		lcSTring = m.lcSTring ;
			+ laFiles[i,1] + CHR(13)+CHR(10)
	NEXT
	STRTOFILE(m.lcSTring, m.lcFilePict)
*</Genera_escenario_de_prueba>
 
*<Funcionamiento>
	* Crea objeto FileSystem
	loFso = NEWOBJECT("Scripting.FileSystemObject")
	* Comprueba Existencia de Carpeta
	IF !loFso.FolderExists(m.lcTargetFolder)
		loFso.CreateFolder(m.lcTargetFolder)
	ENDIF
 
	* Crea un array (laFiles) con el contenido del archivo de texto m.lcFilePict
 
	lnFilesCopy = ALINES(laFiles,FILETOSTR(m.lcFilePict),1+4,CHR(9),CHR(10),CHR(13))
 
	* Copia lo que se necesario
	FOR i = 1 TO m.lnfilesCopy
 
		lcSourceFile = ADDBS(lcRoot)+lafiles[i]
		lcTargetFile = ADDBS(lcTargetFolder) + laFiles[i]
 
		* Comprueba que exista el archivo Source
		* Comprueba que no exista ya en destino
 
		* Esto se puede mejorar comparando la antigüedad para
		* el caso en que exista en ambas carpetas.
		* Pero para ello conviene hacer una función o método separado.
 
		IF loFso.FileExists(m.lcSourceFile) AND ;
			!loFso.FileExists(m.lcTargetFile)
			loFso.CopyFile(m.lcSourceFile , ADDBS(m.lcTargetFolder))
			lnCount = m.lnCount + 1
		ENDIF
 
	NEXT
 
	loFso = null
*</Funcionamiento>
 
*<Opcional>
	MESSAGEBOX(TRANSFORM(lnCount)+" Files Copyied")
*</Opcional>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como copiar imágenes desde una lista de txt

Publicado por Adriana Guzmán (3 intervenciones) el 04/02/2016 01:57:25
Hola muchas gracias por tu ayuda, agradezco de verdad por tu tiempo, fue de muy buena ayuda,
Pero no se por que al realizar el proceso sólo me encuentra 480 imágenes, cuando son 1100, :( y al buscar las que no copia, realmente si estan, no se por que sólo me copia 480! ... :( ojalá encuentre lo que pasa..
Te agradezco mucho! :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como copiar imágenes desde una lista de txt

Publicado por santiago (376 intervenciones) el 04/02/2016 02:02:49
Hola, verifica que el archivo de donde saca los nombres a buscar no tenga una linea en blanco, si es así, la rutina dará por terminado el proceso, busca en la linea 481.

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como copiar imágenes desde una lista de txt

Publicado por adriana guzman (3 intervenciones) el 04/02/2016 15:57:59
HOLA
ya revise todo las opciones posibles y realice otra prueba con una archivo de 800 imágenes, y me sigue copiando solo 480, ya revise las lineas, también si los archivos están y nada, parece que es como una limitante.. jejeje
lo haré manual jejejej :(
si se de algo te aviso, gracias por tu ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar