uso de comodín

18/12/2003 - 23:06 por osalazarg | Informe spam
Soy principiante en macros este foro me ha ayudado a realizar esta macro ,
pero ahora necesito algo diferente,Alguien que me ayude por favor, quiero
poner un comodín al final de esta instruccion, ya que los archivos van
cambiando de consecutivo ejemplo:

PPA_RCDI00505_20031104_005.DAT
PPA_RCDI00505_20031111_019.DAT
PPA_RCDI00505_20031113_169.DAT

lo que necesito es que busque PPA_RCDI00505_yymmdd_ aqui poner el
asterisco o un comodin que me busque todos los archivos con esa fecha.

strC = strC & "PPA_RCDI00505_" & Format(dblFecha, "yyyymmdd") _&
"_"".*"".DAT + "

Sub CrearBatch()
Dim dblFechaInicial As Double, dblFecha As Double
Dim strC As String
Dim intFich As Integer

dblFechaInicial = #10/1/2003# 'mes/día/año
dblFecha = dblFechaInicial
strC = "copy "

'Construir la instrucción MS DOS
While Month(dblFecha) = Month(dblFechaInicial)
If Weekday(dblFecha, vbMonday) <> 6 And _
Weekday(dblFecha, vbMonday) <> 7 Then _
strC = strC & "PPA_RCDI00505_" & Format(dblFecha, "yyyymmdd") _
& "_"".*"".DAT + "
dblFecha = dblFecha + 1
Wend

strC = Left(strC, Len(strC) - 2) + " FicheroDeSalida.DAT"

'Crear el fichero BATCH
intFich = FreeFile(0)
Open "C:\FicheroBatch.bat" For Output Access Write As intFich
Print #intFich, strC
Close intFich
End Sub

Muchas Gracias.








Mensaje enviado desde http://grupos.buscadoc.org

 

Leer las respuestas

#1 Héctor Miguel
20/12/2003 - 09:24 | Informe spam
hola, Oscar !

... necesito ... poner un comodín ... ya que los archivos van cambiando de consecutivo ejemplo:
PPA_RCDI00505_20031104_005.DAT
PPA_RCDI00505_20031111_019.DAT
PPA_RCDI00505_20031113_169.DAT
... que busque PPA_RCDI00505_yyyymmdd_ aqui poner el ... comodin ... con esa fecha.
strC = strC & "PPA_RCDI00505_" & Format(dblFecha, "yyyymmdd") _& "_"".*"".DAT + "
Sub CrearBatch() [... sigue ...]
strC = "copy " [... sigue ...]
While Month(dblFecha) = Month(dblFechaInicial) [... sigue ...]
strC = Left(strC, Len(strC) - 2) + " FicheroDeSalida.DAT" [... sigue ...]
Open "C:\FicheroBatch.bat" For Output Access Write As intFich
Print #intFich, strC [... sigue ...]



[segun 'parece'...] necesitas crear un archivo de proceso por lotes ms-dos [.bat] que 'se encargue' de...
copiar varios archivos en uno solo 'usando' el comando [ms-dos] =>copy origen destino<'creando' [para 'origen'] una 'secuencia' de archivos del 'tipo' =>archivo1+archivo2+archivo3+.<que seran 'agregados' en un solo archivo de 'destino'

como yo 'lo veo'... al usar un bucle ['while'] para 'construir' la secuencia... el proceso podria 'volverse' leeento :((
[y 'corres el riesgo' de que algun/os dia/s NO 'existan' archivos 'que copiar'] ???
'considerando' que tienes dos 'constantes' en los archivos de origen =>'hasta' yyyymm y la extension<y que la 'otra forma' de agregar archivos [copy de ms-dos] es usando los 'comodines' [yo creo que]
es 'mejor' construir UNA SOLA 'linea de copiado' =>para 'imprimir' en el .bat con 'Print #intFich, strC'<+/- como la siguiente [y 'de paso'... te 'ahorras' un buen numero de 'variables' y lineas de codigo] :))
Sub CrearBatch()
Dim Archivos_Origen As String, Linea_de_copia As String, Libre As Integer
Archivos_Origen = "PPA_RCD_100505_" & Format(#10/1/2003#, "yyyymm") & "*.DAT"
Linea_de_copia = "@Copy " & Archivos_Origen & " FicheroDeSalida.DAT"
Libre = FreeFile
Open "C:\FicheroBatch.bat" For Output Access Write As Libre
Print #Libre, Linea_de_copia
Close Libre
End Sub

saludos,
hector.

Preguntas similares