FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Quitar dos espacios en cadena dejar uno
Saludos, quisiera saber como puedo hacer para limpiar una cadena que tiene muchos espacios, o sea dejar solo uno
Una cadena como esta Código:
'70224637 444 54666 4 4512 4 5 4 50 ' Código:
'70224637 444 54666 4 4512 4 5 4 50 ' |
#2
|
|||
|
|||
Yo tengo esto:
Ni idea de si es lo más optimo. De hecho ni recuerdo si es mio o lo copié de algún lado. Otra opción en: http://texthandler.com/?module=remov..._spaces_delphi Aunque no creo que sea mucho mas eficiente. O adaptar este código de c#, bastante similar al mío: Código:
while (text.IndexOf(" ") != -1) { text = text.Replace(" ", " "); } return text; |
#3
|
||||
|
||||
A ver si ésta (recorre una sóla vez la cadena):
// Saludos |
#4
|
||||
|
||||
Hola.
Otra opción:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
Muchas gracias a todos, me sirvio un moton
|
#6
|
||||
|
||||
Esa es una forma destructiva (borrando). Otra manera es construir una nueva cadena, y cuando hay un espacio agregar el primero e ignorar los que vengan.
__________________
El malabarista. |
#7
|
||||
|
||||
Cita:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#8
|
||||
|
||||
Hola ecfisa,
Esta última versión se ve mucho mejor pero me queda la duda de si no falla cuando la cadena termina en espacios. Por otro lado, no entiendo el uso de SetLength. pd: buena observación de mamcx, ya que borrar un caracter implica el reacomodo del resto de la cadena. // Saludos |
#9
|
||||
|
||||
Hola roman.
Cometí un error de copia/pega de una de las varias pruebas,de ahí el SetLength . (Aunque acabo de hacerle unas comprobaciones e igual funciona con espacios sobre el final) Debería haber sido esta:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por Casimiro Notevi fecha: 14-10-2015 a las 09:57:02. Razón: var2 -> var :) |
#10
|
||||
|
||||
También se puede hacer una función recursiva, pero como se pide que sea lo más eficiente posible, habría que probar si la recursividad es más eficiente que el bucle
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#11
|
||||
|
||||
Otra opcion, esta vez en asm:
Saludos. |
#12
|
||||
|
||||
Cita:
// Saludos |
#13
|
||||
|
||||
Cita:
// Saludos |
#14
|
||||
|
||||
Cita:
¿Alguien se anima a probar y calcular el tiempo con cada opción?
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#15
|
||||
|
||||
Cita:
Por otra parte, si usa una versión de Delphi que tenga expresiones regulares yo las usaría sin pestañear Por ejemplo, en php: Código PHP:
|
#16
|
||||
|
||||
Cita:
De tanto escudriñar, también me encontré con una situación que no entiendo... Haciendo, obtengo el resultado que me esperaba: Sin embargo si hago, obtengo este resultado: Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#17
|
||||
|
||||
Cita:
// Saludos |
#18
|
||||
|
||||
Cita:
// Saludos |
#19
|
||||
|
||||
Cita:
// Saludos |
#20
|
||||
|
||||
Cita:
Pero contra toda predicción, no hubo advertencia ni errores al acceder a una posición mas allá del valor de Length, eso me dejó con dudas e hice múltiples pruebas sin lograr que se produzca advertencia o error alguno. De ahí que atribuí que obtenía ese resultado por tratar con un AnsiString. Realmente siempre puse cuidado en no acceder a una posición mayor al largo de una cadena pensando en que generaría un error, pero todas las pruebas realizadas hasta ahora me indican que, al menos acceder (lectura) a una posición mas del valor devuelto por Length de un AnsiString no genera error. ¿ Conoces algún caso en que se produzca ? Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Cómo quitar espacios inicial y final en cadena | bulc | Varios | 0 | 22-03-2014 19:24:33 |
Quitar Espacios en Sql | El_Perrito | Firebird e Interbase | 3 | 25-02-2005 13:49:12 |
Quitar espacios al final de una cadena | gescoto99 | SQL | 1 | 04-08-2004 01:02:43 |
Quitar espacios de campos CHAR | cartmanrules | Firebird e Interbase | 3 | 22-07-2004 11:53:06 |
Quitar espacios en blanco | Javier_A | OOP | 3 | 09-06-2004 11:29:27 |
|