Necesitaba un Split de dos delimitadores y traduje esta función de Himanen que estaba en VB6.
#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.8.1
 Author VB6: Himanen
 Traducido a Autoit por: Naker90

 Script Function:
	Devuelbe el valor de una cadena que se encuentra entre dos delimitadore
	
Uso:

Dim $Cadena = '<AA> Hola <AA>'
Dim $sSplit = sSplit($Cadena, '<AA>', '<AA>')
Msgbox(64, '', $sSplit)

Devuelbe: Hola

#ce ----------------------------------------------------------------------------

Func sSplit($Texto, $DEL1, $DEL2)
	Dim $Resultado = ''
	Dim $P1 = StringInStr($Texto, $DEL1)
	Dim $P2 = StringInStr($Texto, $DEL2)

	Dim $tm = $P2 + StringLen($DEL2)

if $DEL2 <> '' Then
	$Resultado = StringMid($Texto, $P1 + StringLen($DEL1), $tm - ($DEL1 + StringLen($DEL1) + StringLen($DEL2)))

Else
	$Resultado = StringMid($Texto, $P1 + StringLen($DEL1), StringLen($Texto) - ($P1 + StringLen($DEL1)))

EndIf
Return $Resultado
EndFunc
Saludos
Skype: naker.noventa
Gracias por la función. no me funcionó.

No uses dim. ahi dejo una modificacion.
Func sSplit($Texto, $DEL1, $DEL2)

	Local $P1 = StringInStr($Texto, $DEL1, 1)
	Local $P2 = StringInStr($Texto, $DEL2, 1, 2)


	If $P1 And $P2 Then
		Return StringMid($Texto, $P1 + StringLen($DEL1), $P2 - ($P1 + StringLen($DEL1)))
	Else
		Return ""
	EndIf

EndFunc   ;==>sSplit
saludos
Imagen
Pink escribió:Gracias por la función. no me funcionó.

No uses dim. ahi dejo una modificacion.
Func sSplit($Texto, $DEL1, $DEL2)

	Local $P1 = StringInStr($Texto, $DEL1, 1)
	Local $P2 = StringInStr($Texto, $DEL2, 1, 2)


	If $P1 And $P2 Then
		Return StringMid($Texto, $P1 + StringLen($DEL1), $P2 - ($P1 + StringLen($DEL1)))
	Else
		Return ""
	EndIf

EndFunc   ;==>sSplit
saludos
Que raro a mi me funciono perfecto.
Saludos
Skype: naker.noventa
Responder

Volver a “Fuentes”