Encasillar datos para una variable

Iniciado por likeu, 26 Septiembre 2006, 20:16 PM

0 Miembros y 2 Visitantes están viendo este tema.

likeu

buenas

Necesitaria saber si alguno me puede ayudar con esto.


Tengo una cadena de texto y numeros, de cantidad indefinida.

Necesito saber los 3 primeros caracteres que tiene esa cadena, como podria hacer?


Ejemplo:

"PALABRA1.ESTA ES LA PALABRA UNO"


Necesitaria guardar en una variable X las 3 primeras letras, en este caso seria

CitarX = "PAL"


========================

Tambien queria saber si se puede hacer con cualquier parte de la frase, por ejemplo.

CitarX = "STA"
(de ESTA)


========================


Recuerden que la frase es aleatoria por lo tanto tiene un LARGO indefinido.




Likeu!

NYlOn


'Suponiendo que Datos tiene eso de Palabra1...
X = Left(Datos, 3) 'Obtenes las 3 primeras letras

Y = Mid(Datos, 13, 3) 'Obtenes las 3 letras que estan a partir de la posicion 13

likeu

#2
Claro, pasa que yo no se en donde va a estar loq ue necesito, entonces no puedo saber si es desde la posicion 13 o no. Entendes.


Dentro de la cadena, lo que necesito va a variar de lugar, e incluso, la cadena puede variar de tamaño.

==================

A modo de ejemplo. Suponiendo qeu la palabra a buscar es HOLA.


CitarAf."//()&$HOLA145Gt0%$&CAS

ASHOLA$&2456&$#$TECGE!#

AO$&//PRET"%/CIREHOLA$#

AL!=$K/&%F!2553$)HOLA3985490F$#&%&$="DKSEJSJS



Cualquiera de esas cadenas podria ser valida.

Puede variar de posicion, y puede variar de tamaño.

Como lograria conseguir de esas cadenas la palabra "HOLA" en una variable, esa seria la pregunta.


====================
====================

Adoso otra pregunta.

Si tuviera una cadena como las de arriba, y supongamos que quiero BORRAR la palabra "HOLA" de las cadenas, se podria hacer de alguna manera?


/////////////////////////////////////////
EDITO
/////////////////////////////////////////

Tengo otra, si se que lo que necesito esta al principio de la cadena. Supongamos que necesito la palabra "HOLA" como antes.
Pero...... no se el tamaño de la cadena. como pondria en una variable toda la cadena retirando la palabra "HOLA"


Ejemplo:

CitarHOLA1234567890
y quiero que me quede
Citar1234567890
en la variable

o tengo

CitarHOLA5284756AFJEOPROT12
y quiero qeu me quede
Citar5284756AFJEOPROT12


/////////////////////////////////////////////////

Se que es mucho, pero espero que me puedan ayudar

Mil gracias por la atencion =)



Likeu!

NYlOn

A ver si te entendi:
¿Lo que queres hacer es buscar una palabra que puede ser HOLA o cualquier otra, que no esta delimitada por ningun caracter y que NO LA CONOCES?

Syphroot

Pues la solucion es la misma que te proponen, con las instrucciones:

Mid
Left
Right

puedes hacer todo eso, en apoyo, para localizar los caracteres iniciales de la cadena que buscas se hace con

InStr

esa instruccion te devuelve la posicion de la primer ocurrencia que encuentra, si no encuentra nada devuelve cero.

por ejemplo tu cadena es:

szStr = "345&%$#26HOLA8)('¡"

' Tu quieres sacar la cadena HOLA, para esto debemos suponer que la cadena que quieres extraer ya la conoces no?, por lo tanto puedes conocer su longitud, y no solo de esta sino de cualquier cadena!!!!

Citar
Dim szStr       As String
Dim szSaca      As String
Dim szNueva     As String
Dim long1       As Long
Dim long2       As Long
Dim lPos        As Long

szStr = "345&%$#26HOLA8)('¡"
szSaca = "HOLA"
long1 = Len(szSaca)
long2 = Len(szStr)

lPos = InStr(1, szStr, szSaca)

If lPos > 0 Then    ' si hay ocurrencias

    szNueva = Mid(szStr, lPos, long1)

Else

    szNueva=""

End If

Bien, ese es el codigo para extraer la cadena la parte HOLA de la cadena PERO... tienes que tomar muchas mas cosas en cuenta pues quiza haya patrones repetidos de la misma cadena y extraigas lo que no es necesario... en conclusion, InStr es la solucion a lo que quieres, estudia esta funcion y con las otras 3 podras hacer muchas cosas con cadenas....

saludos

likeu

Exelente, gracias.

Voy a tener que revisar un poco esas funciones asi me las arreglo solo...


Gracias por el tiempo muchachos.