Dilema con StringRegExp

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
avechuche
Hacker del Foro
Mensajes: 188
Registrado: 13 Ago 2009, 09:53

Dilema con StringRegExp

Mensaje por avechuche »

Se que hay otros post, pero no tienen que ver con lo que pido. Resulta que tengo un archivo ".txt" en el cual en cada linea tengo texto que quiero capturar con StringRegExp. El archivo es algo asi

Código: Seleccionar todo

// Esta es la primera linea, donde hay una descripcion/comentario, todo lo que esta despues de "//" es comentario
texto
texto1 // comentario
texto2
// Otro comentario
texto con espacios // comentario
Lo que yo quiero que me devuelva StringRegExp es

Código: Seleccionar todo

texto
texto1
texto2
texto con espacios
Eh intentado pero nada, no hay caso. Alguna solucion? Gracias!
Avatar de Usuario
Dany
Profesional del Autoit
Mensajes: 651
Registrado: 28 Mar 2012, 22:49

Re: Dilema con StringRegExp

Mensaje por Dany »

No manejo las expresiones regulares pero algo así podría funcionar.



Código: Seleccionar todo

$nuevacadena= StringRegExpReplace($tutexto, "//.*", "")
MsgBox(0, "",$nuevacadena)

por si no entiendes aquí mas claro.

Código: Seleccionar todo

$miarchivo=Fileread("1.txt")
msgbox(0,"",$miarchivo)
$nuevo_archivo = StringRegExpReplace($miarchivo, "//.*", "")
MsgBox(0, "",$nuevo_archivo)




saludos :smt027
  • ............................................Imagen
    ......................................Imagen
Avatar de Usuario
chekok
Hacker del Foro
Mensajes: 111
Registrado: 16 Sep 2011, 11:50
Ubicación: Valencia / España
Contactar:

Re: Dilema con StringRegExp

Mensaje por chekok »

Tienes más funciones para manejo de cadenas, dale un vistazo en la ayuda a StringInStr (encuentra una cadena dentro de otra).
Ejemplo:

Código: Seleccionar todo

StringInStr($mi_cadena,"//")
O si sabes la longitud exacta de cada cadena puedes probar también con StringTrimLeft y con StringTrimRight. Coge solo desde la posición que indicas hasta el final por la izquierda o la derecha según la función).
ejemplo:

Código: Seleccionar todo

$cadena = "texto1 // comentario"
$cadena = StringTrimLeft($cadena,6)
Esto te devuelve $cadena = "texto1" (desde la izquierda de la cadena, 6 posiciones o caracteres).
Repásate las funciones de la ayuda buscando por "String" y verás que hay varias que te pueden ser útiles.
Yo también guardaría el contenido del fichero en un array, siendo cada posición del array cada línea del fichero. Esto te hará más fácil trabajar luego con las funciones de String.

No se me ocurre nada más conciso, ya nos cuentas que tal te ha ido.
Seguro que algún otro compañero del foro maneja mejor el tema de las cadenas.
La vida es larga y dura.
Avatar de Usuario
Dany
Profesional del Autoit
Mensajes: 651
Registrado: 28 Mar 2012, 22:49

Re: Dilema con StringRegExp

Mensaje por Dany »

lo que dice chekok es verdad aunque mas tedioso y lento. con expresiones regulares va muy bien y claro se puede optimizar mucho mas.

:smt027
  • ............................................Imagen
    ......................................Imagen
avechuche
Hacker del Foro
Mensajes: 188
Registrado: 13 Ago 2009, 09:53

Re: Dilema con StringRegExp

Mensaje por avechuche »

Gracias gente, ya lo resolvi con una ER! La de Dany no sirvio y lo de checok solo sirve si se exactamente el tamaño del texto, cosa que es imposible porque puede ir cualquier texto, aparte en gran cantidad de texto StringInStr, se vuelve muy lento :(
Responder