Programación General > Visual Basic para principiantes

 Utilizar Texto En Columnas De Excel

(1/1)

fakeswato:
que tal, tengo este problema

enlazo visual con extra!a system (un programa de emulacion 3270)

y obtengo el siguiente string "PEREZ CASTRO, JESUS R" sin las comillas claro, lo que necesito es invertir el orden de la variable, para obtener nombre y despues apellidos

"JESUS R PEREZ CASTRO" y sin la coma "," claro

esto se podria realizar con texto en columnas con excel, pero como podria obtener el mismo resultado en visual, se me ocurria utilizar dim pero no se bien como hacerlo

Nebire:
Puedes usar la instrucción split con un bucle.  Split corta cadenas por determinados caracteres y cada trozo lo introduce en una matriz.

Te ilustro con un ejemplo como se usa:


--- Código: Text --- public function invertir_palabras(entrada as string) as string     dim salida as string     dim n() as string     dim p() as string   ' albergará las plabras que existan en la cadena de entrada, split redimensiona la matriz al tamaño preciso         n=split(entrada, ",")  ' divide la cadena en 2 subcadenas, se supone que siempre existe esa coma....     if instr(" ", n(1))<>0 then ' el nombre es compuesto         p= split(n(1), " ")   ' dividimos el nombre compuesto en tantos como haya         salida= p(0)          ' si lo metemos en el bucle se añadiría un espacio delante, auqneu siempre podríamos quitarlo con trim...         for k= 1 to ubound(p)               salida= salida & " " & p(k)         next     else          Salida= n(1)     end if          salida= salida & " " & n(0)  ' finalmente añadimos los apellidos     invertir_palabras= salidaend function  

fakeswato:
OK, no era precisamente lo que buscaba, pero me abrio la puerta al codigo que estaba buscando, GRACIAS  :D


--- Código: Text ---cp$ = Sess0.Screen.GetString(8, 17, 5)nom = Split(Sess0.Screen.GetString(4, 1, 27), ",")apellido = Split(nom(0), " ") Sess0.Screen.PutString "                ", 3, 6Sess0.Screen.PutString apellido(0), 3, 6Sess0.Screen.PutString "                ", 3, 28Sess0.Screen.PutString apellido(1), 3, 28Sess0.Screen.PutString "                ", 3, 52Sess0.Screen.PutString nombre(0), 3, 52Sess0.Screen.PutString "                ", 3, 61Sess0.Screen.PutString nombre(1), 3, 62 
bueno esto me genera otra inquietud, de la base de datos tengo otros nombres, que implica otros detalles, ejemplo:

DE ALBA HADDAD,FELICIANO

el apellido tiene tres palabras, para poder accesar a la informacion la tendria que ingresar de la siguiente manera


--- Citar ---PAT DE ALBA          MAT HADDAD            FIRST FELICIANO    MIDL         
--- Fin de la cita ---

2do punto

cuando el nombre contiene 2 nombre "luis gustavo" por ejemplo:

no hay problema con el codigo antes mencionado, pero cuando el nombre solo tiene uno "maria" me manda el error fuera de indice, ya que nombre(1) no se ha generado, cual seria la condicion para que el sistema detecte si se creo o no la variable nombre(1)

Navegación

[0] Índice de Mensajes

Ir a la versión completa