ASP - Problema while - fileexists

 
Vista:

Problema while - fileexists

Publicado por Pedro (1 intervención) el 03/11/2008 14:04:24
Hola gente!! necesito ayuda con un bucle infinito. Os cuento:

Tengo q crear un archivo de texto cuyo nombre tiene este formato FM20081103_1, el siguente del mismo dia seria FM20081103_2,FM20081103_3 etc.

Al comporbar si existe el archivo para añadir uno al final del texto utilizo este bucle.

n = 1
nombre = "FM_" & Year(desde) & (Month(desde) + 1 ) & Day(desde) & "_" & n & ".txt"
ruta= "\Servidorlogs"

do while (confile.FileExists(ruta & nombre)) = false
n = n + 1
nombre = "FM_" & Year(desde) & (Month(desde) + 1 ) & Day(desde) & "_" & n & ".txt"
loop

me da un bucle infinito, y tb si pongo

do while not (confile.FileExists(ruta & nombre))

la funcion confile.FileExists(ruta & nombre) funciona si la pongo en un if, pero con do no me va

¿Como puedo hacer esto?

Espero haberme explicado bien, si no me dicen

Muchas gracias y un saludo
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

RE:Problema while - fileexists

Publicado por weirdmix (210 intervenciones) el 03/11/2008 22:45:50
creo q puedo sugerirte otra manera de hacerlo:

function bArchivoExiste(nombre, ruta)
dim bExiste
Dim filesys, demofolder, fil, filecoll, filist
bExiste=false

Set filesys = CreateObject("Scripting.FileSystemObject")
Set theFolder = filesys.GetFolder(ruta) 'sin la diagonal, aqui depende de donde estes
Set filecoll = theFolder.Files

For Each fil in filecoll
fiName = fil.name
if nombre = fiName then
'aqui se supone q lo encuentra, por lo tanto ya existe...
bExiste = true
exit for
end if
Next

bArchivoExiste = bExiste

end function

n = 1
nombre = "FM_" & Year(desde) & (Month(desde) + 1 ) & Day(desde) & "_" & n & ".txt"
ruta= "Servidorlogs"

do while bArchivoExiste(nombre, ruta) = false
n = n + 1
nombre = "FM_" & Year(desde) & (Month(desde) + 1 ) & Day(desde) & "_" & n & ".txt"
loop

espero te sirva...
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

RE:Problema while - fileexists

Publicado por Ronald Flores (6 intervenciones) el 19/11/2008 05:25:07
Pedro, creo que esto siempre te va aresultar en infinito, porque si el archivo confile.FileExists(ruta & nombre) no existe, le estas diciendo que recuse while o mientras el archivo no exista, so el codigo esta bien desde ese punto de vista.

do while (confile.FileExists(ruta & nombre)) = false
n = n + 1
nombre = "FM_" & Year(desde) & (Month(desde) + 1 ) & Day(desde) & "_" & n & ".txt"
loop

Deberias utilizar UNTIL para que la recursión se interrumpa cuando sea FALSO.

function getFileName()
exitvar = False
dim n : n = 1
do until exitvar = True
infilename = "FM_" & Year(desde) & (Month(desde) + 1 ) & Day(desde) & "_" & n & ".txt"
if not confile.FileExists(ruta & nombre) then
getFileName = infilename
exit do
else
n = n + 1
end if
loop
end function

Intentalo a ver si funciona. Saludos.
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