Ir al contenido


Foto

Contar palabras repetidas


  • Por favor identifícate para responder
3 respuestas en este tema

#1 daniel.rasta

daniel.rasta

    Newbie

  • Miembros
  • Pip
  • 7 mensajes

Escrito 28 junio 2013 - 12:47

hola como puedo contar el numero de palabras repetidas o el numero de párrafos ??
  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 29 junio 2013 - 07:34

A partir de Delphi XE existe la función SplitString en la unidad StrUtils la cual puedes utilizar para separar las palabras de una cadena y así poder contar si repiten, ejemplo:



delphi
  1. var
  2.     Palabras: TstringDynArray;
  3.     Palabra: string;
  4.     Cuenta: Integer;
  5. begin
  6.     Cuenta := 0;
  7.     Palabras := SplitString('Hola bienvenido a delphiaccess y bienvenido al club!', ' ');
  8.     for Palabra in Palabras do
  9.     begin
  10.         if Palabra = 'bienvenido' then
  11.             inc(Cuenta);
  12.     end;
  13. end;



Saludos.
  • 0

#3 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 29 junio 2013 - 05:23

En delphis mas antiguos se puede usar un TStringGrind, le pones un separator:= ', ' (una coma y un espacio) y luego le metes el texto con MyStringGrid.Text:= MyListaDePalabras, y el texto se troceará y lo podras recorrer con algo como esto (ojo, lo escribo de memoria, no tengo delphi ahora):

Ah! Añado una forma sencilla de detectar duplicados al final usando indexof, ya que este te da la primera aparicion de la palabra, y si es menor que i, es que hay otra anterior igual.



delphi
  1. MyStringList.Separator:= ' ,';
  2. MyStringList.Text:= MyListaDePalabras;
  3. for i:= 0 to MyStringList.Count-1 do begin
  4.   Palabra:= MyStringList[i];
  5.   if MyStringList.IndexOf(Palabra)<i then
  6.     ShowMessage(Palabra+' está duplicada.');
  7. end;

 
  • 0

#4 daniel.rasta

daniel.rasta

    Newbie

  • Miembros
  • Pip
  • 7 mensajes

Escrito 02 julio 2013 - 04:03

ok muchas gracias por su ayuda y tiempo.
saludos
  • 0




IP.Board spam blocked by CleanTalk.