• Martes 7 de Mayo de 2024, 20:51

Autor Tema:  Utilizar Texto En Columnas De Excel  (Leído 2376 veces)

fakeswato

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Utilizar Texto En Columnas De Excel
« en: Jueves 1 de Mayo de 2008, 18:04 »
0
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

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Utilizar Texto En Columnas De Excel
« Respuesta #1 en: Jueves 1 de Mayo de 2008, 23:39 »
0
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
  1.  
  2. public function invertir_palabras(entrada as string) as string
  3.      dim salida as string
  4.      dim n() as string
  5.      dim p() as string   ' albergará las plabras que existan en la cadena de entrada, split redimensiona la matriz al tamaño preciso
  6.     
  7.      n=split(entrada, ",")  ' divide la cadena en 2 subcadenas, se supone que siempre existe esa coma....
  8.  
  9.     if instr(" ", n(1))<>0 then ' el nombre es compuesto
  10.          p= split(n(1), " ")   ' dividimos el nombre compuesto en tantos como haya
  11.          salida= p(0)          ' si lo metemos en el bucle se añadiría un espacio delante, auqneu siempre podríamos quitarlo con trim...
  12.          for k= 1 to ubound(p)
  13.               salida= salida & " " & p(k)
  14.          next
  15.      else
  16.           Salida= n(1)
  17.      end if
  18.     
  19.      salida= salida & " " & n(0)  ' finalmente añadimos los apellidos
  20.      invertir_palabras= salida
  21. end function
  22.  
  23.  
«Ma non troppo»
----> ModoVacaciones = False<----

fakeswato

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Utilizar Texto En Columnas De Excel
« Respuesta #2 en: Viernes 2 de Mayo de 2008, 15:56 »
0
OK, no era precisamente lo que buscaba, pero me abrio la puerta al codigo que estaba buscando, GRACIAS  :D

Código: Text
  1. cp&#036; = Sess0.Screen.GetString(8, 17, 5)
  2. nom = Split(Sess0.Screen.GetString(4, 1, 27), &#34;,&#34;)
  3. apellido = Split(nom(0), &#34; &#34;)
  4.  
  5. Sess0.Screen.PutString &#34;                &#34;, 3, 6
  6. Sess0.Screen.PutString apellido(0), 3, 6
  7. Sess0.Screen.PutString &#34;                &#34;, 3, 28
  8. Sess0.Screen.PutString apellido(1), 3, 28
  9. Sess0.Screen.PutString &#34;                &#34;, 3, 52
  10. Sess0.Screen.PutString nombre(0), 3, 52
  11. Sess0.Screen.PutString &#34;                &#34;, 3, 61
  12. Sess0.Screen.PutString nombre(1), 3, 62
  13.  

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         

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)