Foros del Web » Programando para Internet » ASP Clásico »

Function para remplazar parte de un campo

Estas en el tema de Function para remplazar parte de un campo en el foro de ASP Clásico en Foros del Web. Porque esta funcion me da error? Código: <% Function cambia_letras(campo) if inStr(campo,"BI") >0 then Replace(campo,"BI","48") else if inStr(campo,"AL")>0 then Replace(campo,"AL","01") else Replace(campo,"GU","20") end if end ...
  #1 (permalink)  
Antiguo 05/04/2005, 11:46
 
Fecha de Ingreso: febrero-2003
Mensajes: 141
Antigüedad: 22 años, 2 meses
Puntos: 0
Function para remplazar parte de un campo

Porque esta funcion me da error?

Código:
<%
Function cambia_letras(campo)
	if inStr(campo,"BI") >0 then
	Replace(campo,"BI","48")
	else 
		if inStr(campo,"AL")>0 then
		Replace(campo,"AL","01")
		else
		Replace(campo,"GU","20")
		end if
	end if
End Function
%>
Me dice:

Tipo de error:
Error de compilación de Microsoft VBScript (0x800A0414)
No se puede utilizar paréntesis al llamar a Sub
/cmv/view/home.asp, línea 48, columna 24
Replace(campo,"BI","48")
-----------------------^
Podran ayudarme?
Gracias
  #2 (permalink)  
Antiguo 05/04/2005, 11:51
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 22 años, 8 meses
Puntos: 16
Exclamación

las funciones son rutinas que devuelven un valor
las sub rutinas son rutinas que hacen algo.

la diferencia es que un replace es una funcion, por lo tanto devuelve un valor.
en este caso no le estas diciendo a que le estas asignado el valor que arroja el replace.


osea tu funcion quedaria asi:


Código:
Function cambia_letras(campo)
	if inStr(campo,"BI") >0 then
	salida = Replace(campo,"BI","48")
	else 
		if inStr(campo,"AL")>0 then
		salida = Replace(campo,"AL","01")
		else
		salida = Replace(campo,"GU","20")
		end if
	end if
     
            cambia_letras = salida
End Function

Última edición por Muzztein; 05/04/2005 a las 11:53
  #3 (permalink)  
Antiguo 05/04/2005, 11:53
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Bueno, si es una funcion te debe regresar un valor, y seguramente, no la estas asignando a ninguna variable.
Código:
<%
Function cambia_letras(campo)
             Dim fnctCampo
	if inStr(campo,"BI") >0 then
	     fnctCampo = Replace(campo,"BI","48")
	else 
		if inStr(campo,"AL")>0 then
		  fnctCampo = Replace(campo,"AL","01")
		else
		  fnctCampo = Replace(campo,"GU","20")
		end if
	end if
            cambia_letras = fnctCampo
End Function
%>

variable = cambia_letras("B1")

Response.Write variable

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #4 (permalink)  
Antiguo 05/04/2005, 11:54
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 8 meses
Puntos: 18
variablesalida=Replace(campo,"BI","48")
  #5 (permalink)  
Antiguo 05/04/2005, 11:59
 
Fecha de Ingreso: febrero-2003
Mensajes: 141
Antigüedad: 22 años, 2 meses
Puntos: 0
Muchas gracias,
Gracias a ustedes he solucionado el problema y he aprendido mas
De nuevo
muchas gracias
  #6 (permalink)  
Antiguo 05/04/2005, 13:56
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 8 meses
Puntos: 18
No te quejarás, tres maneras diferentes de decir lo mismo!! jjjejejejjejej
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:28.