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

Dividir Arreglo en base a separador (QUE ASCO ASP)

Estas en el tema de Dividir Arreglo en base a separador (QUE ASCO ASP) en el foro de ASP Clásico en Foros del Web. Saludos. Tengo el siguiente arreglo: Arreglo_Base = array("1","2","3","@","13","14","15","16","@","20" ,"21") Y quiero separar ese arreglo en otros más pequeños tomando como separador el "@", es decir, ...
  #1 (permalink)  
Antiguo 02/06/2005, 07:04
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 5 meses
Puntos: 1
Dividir Arreglo en base a separador (QUE ASCO ASP)

Saludos.

Tengo el siguiente arreglo:

Arreglo_Base = array("1","2","3","@","13","14","15","16","@","20" ,"21")

Y quiero separar ese arreglo en otros más pequeños tomando como separador el "@", es decir, que quedaran:

Arreglo_Base_1 = array("1","2","3")
Arreglo_Base_2 = array("13","14","15","16")
Arreglo_Base_3 = array("20","21")

Entiendo que el proceso debería ser:

a) Cuento cuantos @ existen en el Arreglo_Base
b) Capturo la posición en donde está cada @
c) Hago un FOR con la cantidad total de @
d) Armo cada Arreglo_Base_I desde la Posición J hasta J-Posicion_Arroba

En palabras perfecto, pero no se con cuales comandos de ASP puedo lograrlo.

Cualquier ayuda me sería de mucha utilidad.

Gracias
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.

Última edición por José Molina; 02/06/2005 a las 07:39
  #2 (permalink)  
Antiguo 02/06/2005, 07:42
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 5 meses
Puntos: 1
Me disculpan los "amantes" de Microsoft pero ASP ES UN ASCO

Resulta que no hay funciones que busquen un caracter específico en un arreglo.

Tengo que recorrer Arreglo_Base luego ir preguntando si el elemento que esta viendo es el @, sino lo es, ingreso ese valor en Arreglo_Base_1, asi hasta que consigo el primer @, luego pregunto si es el final de Arreglo_Base, sino lo es, abro Arreglo_Base_2 y comienzo a preguntar por el @ y así sucesivamente

ASCO.

Por eso digo que Dios creo al Mundo en PHP

Entren aquí y vean lo que es poder manejar un arreglo: http://ve.php.net/manual/es/ref.array.php

Suerte
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #3 (permalink)  
Antiguo 02/06/2005, 07:52
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
ASP un asco? joder, espero que lo tengas que usar por indicación del cliente, porque sino te va a salir una úlcera del tamaño de maracaná. que no te pase nada....
  #4 (permalink)  
Antiguo 02/06/2005, 08:07
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 5 meses
Puntos: 1
Si trasgukabi, perfecto tu comentario, pero tienes la función nativa de ASP para buscar un caracter en un arreglo??

Porque si no la tienes, tu mensaje pasa a ser como un fantasma sin sentido
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #5 (permalink)  
Antiguo 02/06/2005, 08:41
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
tú mismo lo has dicho, chaval. no hay función nativa. (aunque join, split, redim, etc... igual no valen para nada, no? )

y si quieres bronca, pégate un cabezazo contra la pared.

y si estás agobiado por el trabajo o por tu vida, te jodes, que todos tenemos problemas y no los pagamos con quien no lo merece.

:ignoring :ignoring
  #6 (permalink)  
Antiguo 02/06/2005, 08:43
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 21 años
Puntos: 5
jajajajaa
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #7 (permalink)  
Antiguo 02/06/2005, 08:49
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
lo que no entiendo es porque MIERD... USAS ASP SIENDO QUE TE DESAGRADA TANTO Y QUE PREFIERES PHP (SEGUN TU VINCULO).... ENTONCES VETE A JODER AL FORO DE PHP PUES....
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #8 (permalink)  
Antiguo 02/06/2005, 08:59
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 5 meses
Puntos: 1
Jejejejej

Pues porque el cliente es uno de esos enamorados con Microsoft y ni modo.

Y si, join, split, redim si sirven de mucho. Sirven para hacer las cosas más tediosas y complicadas.

De todas formas gracias por sus comentarios y ayudas que me han servido de mucho. Por lo menos para darme cuenta que esta comunidad ASP tiene más niños que otra cosa. Cuando maduren y salgan de los pañales de Microsoft la seguimos. Mientras tanto sigan siendo los reyes de los tuertos o la cola del León, lo que prefieran

Suerte
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #9 (permalink)  
Antiguo 02/06/2005, 09:02
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
mmm lo que hace la ignorancia.... llegar a creerse supèrior... amigo si tu capacidad cerebral te dice que eres superior....bueno creelo pero no lo prediques porque siempre va a ver alguien mejor que tu... ahora si no entiendes eso... pues que lastima.... en todo caso lo que puse fue una simple curiosidad si te pase a llevar lo siento saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #10 (permalink)  
Antiguo 02/06/2005, 09:02
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
Cita:
Iniciado por José Molina
..... y salgan de los pañales de Microsoft.......


select usuarios.jose_molina as super_programador_maduro_Y_alternativo

se acabó la discusión (por cierto, también programo, y mucho, y bien, en PHP)
  #11 (permalink)  
Antiguo 02/06/2005, 09:09
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 6 meses
Puntos: 144
¿pistola o sable?.

PD: es que me temo que esto va a continuar, jajajajajaa.
  #12 (permalink)  
Antiguo 02/06/2005, 09:11
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 21 años
Puntos: 5
Cita:
Iniciado por El_Metallick
mmm lo que hace la ignorancia.... llegar a creerse supèrior...
jajajaaja estoy de acuerdo metallick.... es un looser ese man...
liso, disque pañales... eres un ser inferior man y porfa si no quieres ser parte de los "niñitos" como nos llamas que haces en ASP entonces???

dame una L.... dame una O... dame una O... dame una S.... dame una E... dame una R.... LOOSER!!!!!

JAJAJAJAJAJAJAJAJA :-p
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #13 (permalink)  
Antiguo 02/06/2005, 09:12
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
jajajja no se peroyo opto por sentido comun y compostura.... y no por ser genios y superiores... jajaja o por lo menos creerselo :P
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #14 (permalink)  
Antiguo 02/06/2005, 09:30
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
Venga compadres, compostura, que va a venir la y va a repartir hostias para todos...jejejej
  #15 (permalink)  
Antiguo 02/06/2005, 09:30
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 5 meses
Puntos: 1
Jejejejeje

Señores, no me siento superior a nadie.

Disculpen ustedes si los ofendi, simplemente, a mi punto de vista, y es una opinión personal, no obligo a nadie a que este deacuerdo conmigo, cada quien puede pensar lo que quiera, pero a mi punto de vista, PHP es mucho más versatil que ASP.

RECALCO: ES MI PUNTO DE VISTA.

Si no están deacuerdo, bueno bien por ustedes, tienen todo el derecho a no estarlo.

Simplemente reaccione al primer JODER que salio en este hilo.

Así como alguien puede decir que Juanes es un Asco de Cantante alguien más dirá que Metallica son los reyes del Metal (Cosa que comparto). Pero no tienen que pensar esas 2 personas que Juanes y Metallica es lo Máximo o todo lo contrario.

Me disculpo nuevamente con quienes entendieron mal el ASCO DE ASP. Simplemente no es mi lenguaje. Yo tengo mis razones. Así como ustedes tiene las suyas para decir que ASP ES LO MEJOR.

Suerte
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #16 (permalink)  
Antiguo 02/06/2005, 09:30
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
yo creo que Al nos va a encontrar razon... tb se va a enojar (creo)
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #17 (permalink)  
Antiguo 02/06/2005, 09:34
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 21 años
Puntos: 5
ups!!!!!
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #18 (permalink)  
Antiguo 02/06/2005, 09:39
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
aqui nadie ha dicho (aún) que ASP es mejor que PHP. es más yo no lo diría nunca. Ahora estoy metido hasta las patas en ASP por obligación del cliente. pero me siento a gusto. Tampoco diría nunca que "QUÉ ASCO ASP"

Y ahora ya sí, de verdad, ya vale. no sigamos con cual es mejor o peor que eso ya se ha discutido millones de veces.

Buen rollito, camaradas!!!
  #19 (permalink)  
Antiguo 02/06/2005, 09:42
Avatar de Saruman  
Fecha de Ingreso: mayo-2003
Ubicación: Panama city, Panama, Panama
Mensajes: 1.154
Antigüedad: 21 años
Puntos: 5
si, pienso igual que trasgukabi.
saludos....
__________________
Saruman

One Ring to rule them all, One Ring to find them, One Ring to bring them all and in the darkness bind them.
  #20 (permalink)  
Antiguo 02/06/2005, 10:00
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 5 meses
Puntos: 1
Chevere estamos deacuerdo (por fin) en eso.

Dejemos el tema hasta aquí.

Cuando logre solucionar lo posteo.

Suerte
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #21 (permalink)  
Antiguo 02/06/2005, 10:20
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Tanto problema por no querer hacer una función propia de 3 o 4 lineas.

Si PHP la tienes es por que alguien algún día la necesitó, se tomó 5 minutos en hacerla y la añadió a la comunidad desarrolladora en "beneficio" de las miles de personas que ya no se tuvieron que molestar en hacerla. La fisolofía de ASP, es que utiliza código propietario (VBS o JSSS) y no podemos agregarle nuestras rutinas. Así que a poner las manos a trabajar y hacer tu mismo la rutina que necesitas, que estoy seguro no te costará trabajo implementar.

Ahora si tienes alguna duda específica sobre el uso de alguna de las funciones que trasgukabi mencionó, pues listo, pregunta.
  #22 (permalink)  
Antiguo 02/06/2005, 10:28
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
en todo caso....bueno, son solo opiniones... sorry por mi parte si ofendi... saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #23 (permalink)  
Antiguo 02/06/2005, 11:08
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
me parecio interesante el planteamiento del problema, yo lo solucione con esta funcion que regresa un arreglo el cual contiene un arreglo con los subelementos en sus indices, al final solo iteras el arreglo y por cada indice preguntas si es arreglo y lo iteras.

Código:
<%
Function generaArregloPadre(arreglo, strCaracter)
	Dim indices
	Dim i
	Dim j
	Dim x
	Dim tempArr()
	indices = 0
	if isArray(arreglo) then
		redim preserve arreglo(uBound(arreglo) + 1)
		arreglo(uBound(arreglo)) = strCaracter
		for j = 0 to uBound(arreglo)
			if arreglo(j) = strCaracter then
				indices = indices + 1
			end if
		next
		'Response.Write "Numero de indices arreglo padre : " & indices & "<br>"
		Dim ds()
		redim ds(indices)
		i = 0
		x = 0
		for j = 0 to uBound(arreglo)
			if arreglo(j) <> strCaracter then
				'Response.Write("Redimensionamos arreglo temporal: tempArr("&x&")" & "<br>")
				redim preserve tempArr(x)
				'Response.Write("Asignamos valor: tempArr("&x&") = " & "arreglo("&j&")" & "<br><hr>")
				tempArr(x) = arreglo(j)
				x = x + 1
			else
				x = 0
				'Response.Write("<b>Asignamos arreglo a indice del arreglo padre: ds("&i&") = " & typename(tempArr) & "</b><br>")
				ds(i) = tempArr
				'Response.Write("redimensionamos arreglo temporal: temparr("&x&")")
				redim tempArr(x)
				i = i + 1
			end if
		next
	else
		ds = null
	end if
	generaArregloPadre = ds
End Function
Felices trazos!

Editando: fijate en destruir los arreglos cuando ya no los utilices dentro de la funcion, es solo una primera aproximacion, pues creo que se puede sintentizar haciendo el desarrollo de la funcion dentro del primer for...
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #24 (permalink)  
Antiguo 02/06/2005, 17:01
 
Fecha de Ingreso: mayo-2004
Mensajes: 183
Antigüedad: 20 años
Puntos: 0
Solo una pequeña opinion, cuando una funcion es muy dificil de elaborar en ASP, recurro a un componente para que haga el trabajo.

Saludos.
  #25 (permalink)  
Antiguo 02/06/2005, 17:13
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Si

pero no siempre vas a encontrar un componente especifico para lo que quieres, obviamente no hay necesidad de inventar el agua tibia, pero en todo caso solo requieres un poco de imaginacion y otro de conocimientos.

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #26 (permalink)  
Antiguo 02/06/2005, 17:18
Avatar de sjam7  
Fecha de Ingreso: diciembre-2001
Ubicación: Guadalajara, Mexico
Mensajes: 3.672
Antigüedad: 22 años, 5 meses
Puntos: 16
oye, y si eres tan maduro como para venir a ofender a quienes se sientan ofendidos por que no te sientas, hablas con tu "cliente" y le dices por que es mejor PHP, si eres un poco inteligente para manejarlo podras llevarlo a cambiarse a PHP y tu ya no tendras estos problemas...digo, para ponertela facil supongo que seria una solucion que quizas te de algo de trabajo pero pues asi te sentiras en tu ambiente y no vendras a este foro a crear conflictos por que TU no sepas ASP...digo...ES MI OPINION
  #27 (permalink)  
Antiguo 02/06/2005, 22:54
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
Masters (sobre todo U_G). el problema no es que no encuentres un componente que haga lo que necesitas (en la red hay componentes que te hacen hasta una...EHHHHHH QUIETO, NADA DE SEXO!!!). El problema que realmente veo (intuyo, más bien) es que , por aventurar, no menos del 90% de los usuarios de este foro tienen un hosting en el que no tienen la completa libertad de registrar los componentes que quieran.

es una opinión de Ya sabeis, vuestro día es el viernes. El mío, el jueves.....
  #28 (permalink)  
Antiguo 03/06/2005, 08:17
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 5 meses
Puntos: 1
Listo

Bien efectivamente, no puedo "inducir" al cliente a cambiar de plataforma, porque toda su empresa trabaja con MS y tiene un hosting que solamente le ofrece ASP con SQL SERVER.

Así fue como lo soluicone:

Tengo una cadena de la siguiente manera:

Cadena = 1,2,3,6,7,8,12,13,14

Luego la paso por esta función:

Código HTML:
	Function Dias_Consecutivos(Dias,Mes,Ano)
		DiasCA = split(Dias,",")
		Num_Dias = ubound(DiasCA)

		contador_arrobas=0
		for i=0 to Num_Dias
			if i>0 then	
				if CInt(DiasCA(i-1)+1) = CInt(DiasCA(i)) then
    		    	cad=LTrim(cad & "," & DiasCA(i))
				else
    		    	cad=cad & ",@," & DiasCA(i)
    		    	contador_arrobas=contador_arrobas+1
				end if
			else
				cad=LTrim(DiasCA(i))
			end if
		next

		arreglo=split(cad,",")

		Dias_Consecutivos = arreglo
	End Function

Gracias por la participación y sugerencias.

Suerte
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
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 10:57.