Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   dividir cadena en trozos mas pequeños (https://www.clubdelphi.com/foros/showthread.php?t=81596)

n03l 28-11-2012 19:45:18

dividir cadena en trozos mas pequeños
 
Saludos, estoy tratando de hacer un procedimiento que permita partir un string en varios trozos, el problema que tengo es que no quiero que me parta las palabras.

tengo este codigo

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
i,contador:integer;
 s,t,cadena: string;
 k: integer;
begin
cadena:='Delphi 1 es una potente herramienta de desarrollo de programas que permite la creación de aplicaciones para Windows 3.x, Windows95 y Windows NT.';
contador:=0;
s :='Delphi 1 es una potente herramienta de desarrollo de programas que permite la creación de aplicaciones para Windows 3.x, Windows95 y Windows NT.';
  k := Length(s);
  for i := 1 to k do
  begin
  contador:=contador+1;
    t := t + s[i];

//la corto en pedazos de 10 (esta en escala y el uso final sera cortar cadenas largas)
    if contador>9 then 
    Begin
      ShowMessage(t); //muestro la division de la cadena
      t:='';
      contador:=0;
    End
  end;
  ShowMessage(t); // muestro el ultimo pedazo
end;
al ejecutar el codigo anterior me divide la cadena pero corta las palabras
ejemplo:
Cita:

'Delphi 1 e'
's una pote'
Lo que quiero es cortar una cadena en pedazos mas chicos y no me corte las palabras

espero a ver si me echan una manito
saludos y gracias de antemano.

nlsgarcia 28-11-2012 20:18:30

n03l,

Cita:

Empezado por n03l
estoy tratando de hacer un procedimiento que permita partir un string en varios trozos, el problema que tengo es que no quiero que me parta las palabras.

Revisa este código:
Código Delphi [-]
procedure Split(const Delimiter: Char; Input: string; const Strings: TStrings);
begin
   Strings.Clear;
   Strings.Delimiter := Delimiter;
   Strings.DelimitedText := Input;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
   StrList: TStringList;
   i : Integer;
begin
   StrList := TStringList.Create;
   try
      Split(' ', 'Hola Test Mundo', StrList) ;
      for i := 0 to StrList.Count-1 do
         ShowMessage(StrList[i]);
   finally
      StrList.Free;
   end;
end;
El código anterior divide un string por palabras tomando como separador el carácter ' ', luego se puede procesar como se requiera, en el ejemplo se hace un ShowMessage de cada palabra.

Espero sea útil :)

Nelson.


La franja horaria es GMT +2. Ahora son las 02:04:05.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi