FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Acerca de CommaText
Hola, tengo una pequeña duda con la propiedad Commatext de los Stringlist... espero q me puedan ayudar. Estoy haciendo un procedimiento que toma los datos de una libreta de direcciones del Outlook (exportada a CSV). Primero cargo el archivo en un stringlist; y luego en otro separo por campos, con commatext. El problema que tengo es que los nombres que tienen un espacio en el medio, son separados por commatext igual q si hubiera una coma. Por ej, si yo tengo estas líneas:
Juan,juanbecette81@yahoo.com.ar Juan José Becette,juanbecette81@yahoo.com.ar En el primer caso, campos[0] contendría "Juan", y campos[1] contendría "juanbecette81@yahoo.com.ar"; q es precisamente lo que quiero. Pero en el segundo caso, me lo pasaría de la siguiente manera: campos[0]="Juan" y campos[1]="José". ¿Hay algo que esté haciendo mal? En algún mensaje del foro leí que los stringlist tienen una propiedad llamada Delimiter, donde uno especifica el caractér delimitador, pero no lo puedo encontrar (aunque en teoría Commatext separa donde encuentra una coma, no?). Quizás esa propiedad no la encuentre porque uso Delphi 3... Bueno, voy a estar muy agradecido si alguien me puede ayudar. Les adjunto el código del procedimiento que hice, por si acaso:
Gracias, y saludos! Última edición por JuanBCT fecha: 19-01-2005 a las 16:05:28. |
#2
|
||||
|
||||
Hola Juan!
Una posible solución es que generes o modifiques el archivo que contiene los correos de la siguiente manera: "Juan","juanbecette81@yahoo.com.ar" "Juan José Becette","juanbecette81@yahoo.com.ar" Cuando asignas texto a la propiedad CommaText se trabaja con el formato SDF y la cadena es separada por comas o espacios, opcionalmente puedes asignar comillas dobles para separar por bloques como en el ejemplo anterior. Cita:
Cita:
Espero que te sea útil, un Saludo. Última edición por Héctor Randolph fecha: 19-01-2005 a las 20:58:43. |
#3
|
||||
|
||||
Hola Héctor; gracias por tu respuesta!
Voy a probar hacer una rutina que recorra el archivo y que ponga las dobles comillas como me indicaste (ya que el Outlook los saca así, y sería muy engorroso ponerse a hacerlo manualmente)... aparte sigo sin encontrar la propiedad DelimitedText... Saludos! |
#4
|
||||
|
||||
Saben que acabo de probar en Delphi 5 a ver si me aparecía la propiedad DelimitedText y Delimiter de los stringlist... y siguen sin aparecer! No tendré que declarar algo en el uses, por ejemplo?
Gracias... |
#5
|
||||
|
||||
En la ayuda de delphi viene
Cita:
Saludos |
#6
|
||||
|
||||
Hola! Te muestro lo q aparece en mi Help
In TStringList Capacity Count Duplicates Objects Sorted Strings Derived from TStrings CommaText Names StringsAdapter Text Values Gracias por tu respuesta, de todas formas...
__________________
www.myspace.com/theswinginspecials |
#7
|
||||
|
||||
Eso me pasa por listillo jejeje, bueno , pues vamos a lo que vamos:
Vas a tener que crear otra rutina para añadir las comillas dobles, pero eso te lo dejo a ti. Espero que te sirva |
#8
|
||||
|
||||
Hola, Lepe; finalmente solucioné el tema haciendo dicha rutina... les muestro como me quedó el botón "Importar":
Me queda una inquietud... en el caso que yo quiera incluir la función que me pasaste en el mensaje anterior; como o en q parte lo hago? Gracias por tu tiempo...
__________________
www.myspace.com/theswinginspecials |
#9
|
||||
|
||||
En realidad mi funcion ahora no te hace falta, ya que recorres las lineas para poner las comillas dobles,así que aprovecha ese mismo ciclo para poner el separador coma.
Mi funcion simula el DelimitedText y Delimiter que existe en los TStringlist de delphi 6 o superior. Despues de Releer todo el hilo, no creo que lo necesites; de todas formas te explico como va: MIStringlist: Código:
Pepe Manuel Jose Manuel Antonio Código:
Pepe;Manuel;Jose Manuel;Antonio
Saludos |
#10
|
||||
|
||||
Estaba interesado en tu función porque ahora me pidieron pasar 3 campos más; me dí cuenta que no lo iba a poder seguir haciendo así porque yo buscaba la coma con la función POS de los string. El inconveniente era q esta devuelve la posición del 1er caracter q uno busca en la línea; ahora q tenía varias comas no iba a poder seguir insertandole comillas!
Pero bueno, lo acabo de solucionar copiando cada "campo" en strings temporales para así ponerles las comillas a c/u y luego concatenar todo; haciendo la línea. Gracias por todo! Les dejo el código final de la procedure q hice, por si a alguno le interesa...
Saludos!!!
__________________
www.myspace.com/theswinginspecials Última edición por JuanBCT fecha: 27-01-2005 a las 19:23:08. Razón: Correción |
#11
|
||||
|
||||
La libreria NKlibs, tiene rutinas para buscar la ocurrencia de un caracter varias veces, además de otras muchas rutinas casi necesarias en el tratamiento de nombres de archivos, busqueda de archivos, strings y algunas cosas más.
Buscala en google.
Saludos |
#12
|
||||
|
||||
Desarrolle este procedimiento, le pasas un String y un TStringList, porque me encontré con el mismo problema de los espacios que se menciona al inicio.
La idea que el StringList nos lo devuelva con varios item.
|
|
|
|