FoxPro/Visual FoxPro - Mayusculas / minusculas y viceversa

 
Vista:

Mayusculas / minusculas y viceversa

Publicado por SoyWilly (264 intervenciones) el 18/07/2019 21:07:57
Hola a todos.
Trabajo con VFox 9 y windows 8.1

Debo elegir una carpeta cualquiera, luego cambiar los archivos que contenga esa carpeta a mayúsculas o minúsculas, segun elija, para ello hice:
1
2
nLugar = GETDIR("*.*")     //Elijo una carpeta
nArchis = Adir(Vec1, nLugar+"*.*","A",1)      //capturo la cantidad de archivos q hay

Ahora dentro un boton (mayusculas) coloque lo siguiente:
1
2
3
4
5
FOR nCount = 1 TO nArchis
   Arr=Vec1(nCount,1)
   ArrM=UPPER(Arr)
   RENAME (Arr) TO (ArrM)
ENDFOR

Pero no cambia, sigue todo igual.
Ayuda por favor cambiar a mayúsculas los nombres de los archivos
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
Imágen de perfil de Leonardo Daniel A.
Val: 1.115
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mayusculas / minusculas y viceversa

Publicado por Leonardo Daniel A. (497 intervenciones) el 18/07/2019 22:50:44
No se puede directamente con Rename.... algunos usan ShellExecute para ejecutar un proceso externo, en este caso podria ser el comando RENAME de DOS .. ahi si haces la prueba en una ventana de comandos si lo cambia... tendrias que investigar sobre ese tema... y probar
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
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mayusculas / minusculas y viceversa

Publicado por Fidel José (657 intervenciones) el 20/07/2019 00:53:16
Fijate en estas funciones.

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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
PROCEDURE getfolder_toRename
*---------------------------
* Seleccionar una carpeta
* para renombrar archivos
* según el valor de tnFlag
* tnFlag:	0= no modifica  1=lower	2=Upper 3=Proper
* -----------------------------------------------------
LPARAMETERS tnFlag,tcExtension
 
TRY
 
	LOCAL LOEX AS EXCEPTION,;
		lcFolder,;
		LCMESSAGE
 
	lcFolder = GETDIR(FULLPATH(""),"Carpeta","Seleccione Carpeta",64)
	IF !EMPTY(m.lcFolder)
		Rename_Folder(m.lcFolder,m.tnFlag,m.tcExtension)
	ENDIF
CATCH TO LOEX
	LOEX.USERVALUE = PROGRAM()
	gSHOWERROR(LOEX)
 
FINALLY
 
ENDTRY
ENDPROC
 
 
 
 
PROCEDURE Rename_Folder
*--------------------------------------------------------
* tcFolder:	Carpeta
* tnFlag:	0= no modifica  1=lower	2=Upper 3=Proper
* tcExtension: Extensiones a seleeccionar (Default=todos)
*--------------------------------------------------------
LPARAMETERS tcFolder,tnFlag,tcExtension
TRY
	LOCAL LOEX AS EXCEPTION,;
		loFso as Object,;
		LCMESSAGE,;
		lnFiles,;
		i,;
		lResult,;
		lcString,;
		lcFileLog
 
	LOCAL ARRAY laFiles(1)
	lcString = "tnFlag = "+TRANSFORM(m.tnFlag)+CHR(13)+CHR(10)
 
	lcFileLog = ADDBS(FULLPATH(""))+"Rename_Folder.log"
 
	loFso = NEWOBJECT("Scripting.FileSystemObject")
	DO WHILE .t.
 
		IF VARTYPE(m.tcFolder)#"C" ;
			OR EMPTY(m.tcFolder) ;
			OR !loFso.FolderExists(m.tcFolder)
			lcMessage = "Parámetro tcFolder erróneo"
			EXIT
		ENDIF
 
		IF VARTYPE(m.tcExtension)#"C" OR EMPTY(m.tcExtension)
			tcExtension = "*"
		ENDIF
		lnFiles = ADIR(laFiles,ADDBS(m.tcFolder)+"*."+m.tcExtension,"",1)
 
		FOR i = 1 TO m.lnFiles
			lcSource = ADDBS(m.tcFolder)+lafiles[i,1]
 
			lcTarget = m.lcSource
 
			loResponde = Get_Rename_Fso(m.lcSource,m.lcTarget,m.tnFlag,loFso,.t.)
			IF VARTYPE(loREsponde) = "O"
				lcString = m.lcString ;
					+ "<file,name,"+CHR(34)+m.lcSource+CHR(34)+">";
					+ "<rename>"+loREsponde.Target_file+"</rename>";
					+ "<result>"+TRANSFORM(loResponde.REsult)+"</result>"+"</file>";
					+ CHR(13) + CHR(10)
 
				loREsponde = null
			ENDIF
		NEXT
 
		STRTOFILE(m.lcString,m.lcFileLog)
 
 
 
		EXIT
	ENDDO
CATCH TO LOEX
	LOEX.USERVALUE = PROGRAM()
	gSHOWERROR(LOEX)
 
FINALLY
	IF !EMPTY(LCMESSAGE)
		MESSAGEBOX(M.LCMESSAGE,0,PROGRAM())
	ENDIF
	IF VARTYPE(loEx)#"O"
		IF FILE(m.lcFileLog)
			MODIFY FILE &lcFilelog NOEDIT
		ENDIF
	ENDIF
 
ENDTRY
ENDPROC
 
 
PROCEDURE Get_rename_fso
*------------------------
LPARAMETERS tcSource,tcTarget,tnFlag,toFso,tlRelanzarError
TRY
 
	LOCAL LOEX AS EXCEPTION,;
		loFso AS OBJECT,;
		loResp as Object,;
		loFsoErr as Exception,;
		lExito,;
		lcFileTarget,;
		lcFolderTarget
 
	loResp = NEWOBJECT("Empty")
	ADDPROPERTY(loResp,"result",.f.)
	ADDPROPERTY(loResp,"target_file",m.tcTarget)
 
 
	IF VARTYPE(toFso)="O"
		loFso = toFso
	ELSE
		loFso = NEWOBJECT("Scripting.FileSystemObject")
	ENDIF
 
	IF VARTYPE(m.tcTarget)#"C" OR EMPTY(m.tcTarget)
		tcTarget = m.tcSource
	ENDIF
 
	IF VARTYPE(m.tnFlag)#"N"
		tnFlag = 0
	ENDIF
	IF m.tnFlag > 3
		tnFlag = 3
	ENDIF
 
 
 
 
	lcFileTArget = JUSTFNAME(m.tcTarget)
 
	tcTarget = ADDBS(JUSTPATH(m.tcTarget));
		+ ICASE(m.tnFlag=0,m.lcFileTarget,;
			m.tnFlag=1,LOWER(m.lcFileTarget),;
			m.tnFlag=2,UPPER(m.lcFileTarget),;
			m.tnFlag=3,PROPER(m.lcFileTarget))
 
	loresp.Target_file = m.tcTarget
	TRY
		IF loFso.fileExists(m.tcSource)
			loFso.MoveFile(m.tcSource,m.tcTarget)
			loResp.REsult = .t.
		ENDIF
	CATCH TO loFsoErr
		THROW
	FINALLY
 
	ENDTRY
 
CATCH TO LOEX
	LOEX.USERVALUE = PROGRAM()
	gSHOWERROR(LOEX)
	IF m.tlRelanzarError
		THROW
	ENDIF
FINALLY
	loFso = null
	toFso = null
ENDTRY
RETURN loResp
ENDPROC
 
 
*----------------------------------------------------
PROCEDURE gShowError
LPARAMETERS toExcep,tlNotShow,tcCaption
*-----------------------------------------------------
tcCaption=EVL(tcCaption,"Mensaje del Sistema")
SET HOURS TO 24
LOCAL lcMens
 
 
lcMens="Fecha "+TRANSFORM(DATETIME());
	+ Chr(13)+"Mensaje: "+toExcep.message;
	+ Chr(13)+"ErrorNo: "+TRANSFORM(toExcep.Errorno);
	+ Chr(13)+"Llamada: "+toExcep.Uservalue
IF _vfp.StartMode=0
	lcMens=lcMens+ Chr(13)+"Linea "+TRANSFORM(toExcep.lineno)
ENDIF
 
STRTOFILE(lcMens+ Chr(13)+REPLICATE("=",60)+ Chr(13),"Errors.log",1)
 
lcMens="Se ha producido un error:"+ Chr(13)+lcMens
IF !tlNotShow
	MESSAGEBOX(m.lcMens,0,m.tcCaption)
ENDIF
 
ENDPROC
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