Ver Mensaje Individual
  #5  
Antiguo 05-11-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Reputación: 27
delphi.com.ar Va por buen camino
Ahora que lo pienso... me parece que le sugerí matar una mosca con un misil, ademas le puede traer problemas... Con respecto a lo de los comentarios, no conozco si Delphi trae alguna herramienta con este propósito, pero se puede hacer un pequeño procedure con este propósito, ya quen hay que preocuparse por manejar los tipos de datos, comentarios...:
Código:
procedure ParseText(Text: PChar; const AResult: TStrings);
var
  L,
  E: PChar;
  R: string;
begin
  L := Text;
  E := StrEnd(Text);

  while Text < E do begin
    Inc(Text);
    if not (Text^ in ['A'..'Z', 'a'..'z', '_']) then
    begin
      if L <> Text Then
      begin
        SetString(R, L, Text-L);
        AResult.Add(R);
      end;
      L := Text + 1;
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ParseText('Delphi es una herramienta Formidable!',  Memo1.Lines);
end;
Aclaro que lo hice recién y no lo probé en profundidad!!!

Mi Procedure Original (Por si a alguien le gusta mas con strings):
Código:
procedure ParseText(AText: string; const AResult: TStrings);
var
  iLen,
  iLastPos,
  iPos: Integer;
begin
  iLastPos := 1;
  AResult.Clear;
  AText := AText + ' '; { Para evitar preguntar reiteradamente por iPos = iLen }
  iLen := Length(AText);
  for iPos := 1 to iLen do
    if not(AText[iPos] in ['A'..'Z', 'a'..'z', '_']) Then
    begin
      if (iPos <> iLastPos) Then
        AResult.Add(Copy(AText, iLastPos, iPos-iLastPos));

      iLastPos := iPos+1;
    end;
end;
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita