Debe establecer s1.StrictDelimiter := True
para que los espacios no se consideren delimitadores, más información here.
ya que se trabaja en una versión que no es compatible con lo anterior (como se aclaró después de la presentación de la respuesta), tiene dos opciones:
- encontrar a un personaje que sabe que no va a ser utilizado en el original texto (por ejemplo, subrayado), convierta todos los espacios a ese carácter antes de dividir y convierta de nuevo después de la división. Esta es la sugerencia de robosoft.
- Si usted no ha invertido comas y espacios en el texto, puede utilizar truco Alexander 's y envolver el texto entre delimitadores al mando invertida, de manera que se vuelve a
'hello hello^bye bye'
'"hello hello"^"bye bye"'
. Si elige esta ruta y le conviene, acepte la respuesta de Alexander y no la mía, también proporciona el código para implementarla.
Ambas soluciones alternativas que no usan StrictDelimiter
tienen limitaciones: la primera requiere un poco de carácter inusitado, y el segundo no requiere comas y espacios invertida en el texto original.
quizás es el momento para actualizar a una nueva versión de Delphi :)
¿En qué versión de Delphi está trabajando? –
Estoy trabajando en Delpi 7 – Acron
posible duplicado de [Dividir una cadena en una matriz de cadenas basadas en un delimitador] (http://stackoverflow.com/questions/2625707/split-a-string-into-an-array -of-strings-based-on-a-delimiter) – Ampere