Título: VBScript leer un trozo de linea de texto de un fichero SOLUCIONADO Publicado por: tonilogar en 24 Octubre 2009, 01:11 am En este script doy la dirección de una carpeta y lo que necesito es la direccion de la carpeta anterior a la ultima.
Mexplico: doy la dirección: L:\programacion\FICHEROS-FERFULL\ortofoto y quiero la dirección: L:\programacion\FICHEROS-FERFULL como no se como hacerlo pues he creado un txt con la dirección y despues quiero leer la linea de derecha directorioFerFull=right(linea,9)="\ortofoto" Pero mi sorpresa es que utilizando un msgbox. msgbox (directorioFerFull) el msgbox me devuelve true....y no: L:\programacion\FICHEROS-FERFULL que es lo que yo esperaba. Pues eso hay alguna forma de hacerlo mas facil y si no es el caso porque no me lee la linea de texto y me devuelve true. Aqui dejo el trozo del script. Un saludo a todos Código: Set fso = CreateObject("Scripting.FileSystemObject") Set ws = CreateObject("WScript.Shell") Set objShell = CreateObject("Shell.Application") Set objFolder = objShell.BrowseForFolder(0, "SELECCIONEU EL DIRECTORI ORTOFOTO:", 0, 0) If objFolder Is Nothing Then MsgBox("L'aplicacio s'ha cancelat") Wscript.Quit End If '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'CREAR UN ARCHIVO TXT CON LA RUTA DE LAS ORTOFOTOS '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Set var = fso.CreateTextFile(objFolder.self.path & "\variableobjFolder.self.path.txt", True) var.writeline(objFolder.self.path) var.close '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 'LEER LA RUTA DE ORTOFOTO PARA CONSEGUIR LA DIRECCION DE LOS FICHERO 'FERFULL '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Set var = fso.OpenTextFile(objFolder.self.path & "\variableobjFolder.self.path.txt", 1) linea=var.Readline directorioFerFull=right(linea,9)="\ortofoto" msgbox (directorioFerFull) Título: Re: leer un trozo de linea de texto de un fichero Publicado por: Van Hohenheim en 24 Octubre 2009, 08:00 am lo que pasa es que al hacer esto :
Código: directorioFerFull=right(linea,9)="\ortofoto" estas comparando: right(linea,9) con "\ortofoto" que en este caso son lo mismo porque la función right toma la cantidad de caracteres desde la derecha, del texto que le envías como parámetro, es por esto que el valor true se guarda en la variable directorioFerFull. Algo que puedes hacer es usar la función InstrRev que te devuelve la posición de una cadena dentro de otra, pero comenzando desde el final, un ejemplo usando tu caso: Código: ruta="L:\programacion\FICHEROS-FERFULL\ortofoto" pos=instrrev(ruta,"\") nruta=left(ruta,pos-1) msgbox(nruta) lo puse detallado para que se entienda :D, ruta guarda la ruta, pos guarda la posición de la primera aparición de "\", pero buscando desde el final de la cadena, nruta guarda el valor que le devuelve la función left, que toma la cantidad de caracteres,desde la izquierda, que le envías como parámetro (en este caso pos -1, es decir 14) de la cadena que también se le envía como parámetro (en este caso la ruta). esto funciona para cualquier ruta que le envies, a menos que le envies una ruta como esta: "L:\programacion\FICHEROS-FERFULL\ortofoto\", como tiene un "\" al final te devolverá "L:\programacion\FICHEROS-FERFULL\ortofoto", que al final sería lo mismo, para eso primero deberías poner una condición, pero creo que ya le estoy dando muchas vueltas al asunto, espero que me hayas entendido :xD Título: Re: leer un trozo de linea de texto de un fichero Publicado por: tonilogar en 24 Octubre 2009, 14:25 pm Gracias por tu tiempo y ayuda Van Hohenhein, al final siguiendo tu codigo lo he dejado asi.
Set ar = fso.OpenTextFile(objFolder.self.path & "\variableobjFolder.self.path.txt", 1) linea=ar.Readline pos=instrrev(linea,"\") nlinea=left(linea,pos-1) Un saludo Título: Re: leer un trozo de linea de texto de un fichero Publicado por: Novlucker en 24 Octubre 2009, 20:25 pm Y aquí lo que te ahorrará muchas líneas ::)
Código
parentfolder se utiliza justo para lo que buscas, mostrar la carpeta dentro de la cual esta una carpeta o archivo Saludos Título: Re: leer un trozo de linea de texto de un fichero Publicado por: tonilogar en 24 Octubre 2009, 21:23 pm Gracias Novlucker como tu dices me ahorrara muchas lineas.
Podrias echarle un vistazo a este hilo. http://foro.elhacker.net/scripting/no_puedo_borrar_2_ficheros_intermedios-t271827.0.html Gracias por tu ayuda si no fueras por ti no acabaria ni un script Título: Re: VBScript leer un trozo de linea de texto de un fichero SOLUCIONADO Publicado por: duckseven en 13 Junio 2011, 16:54 pm Amigo yo tengo un pequeño problema, tengo un archivo de texto pero no se como puedo hacer para leer solo un pedaso de la linea de texto
Ejemplo servername=SERVERS Quiero que mi script solo lea el texto que esta despues de servername= es decir quiero que me devuelva el texto SERVERS o el texto que este escrito en esa linea, agradezco de antemano tu ayuda eres un genio estuve leyendo algunos post pero no me queda claro, el script que estuve intentado ahcer no me funciono, te lo dejo aqui abajo gracias ************************* Set objfso = createobject("scripting.filesystemobject") Set archivotexto = objfso.opentextfile("servername.cdw",1) archivotexto.skipline msgbox archivotexto.read(8) archivotexto.close ****************************** |