Página 1 de 1

[Traduccion]Split dos delimitadores

Publicado: 31 Dic 2013, 15:45
por Naker90
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

Re: [Traduccion]Split dos delimitadores

Publicado: 31 Dic 2013, 21:27
por Pink
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

Re: [Traduccion]Split dos delimitadores

Publicado: 01 Ene 2014, 16:09
por Naker90
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