Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.23;
Скачать: CL | DM;

Вниз

текст разделить на слова   Найти похожие ветки 

 
be_love ©   (2006-06-23 13:22) [0]

У меня есть текст например : Memo1.Text:="Мама мыла раму". Этот текст должен быть поделён на слова таким образом: Edit1.Text:="мама"; Edit2.Text:="мыла"; Edit3.Text:="раму". Кто сделает напишите ответ сюда. Потому что я обшарил весь инет (конечно я находил такие примеры и для функции POS и так же для функции PosEx, но там толком не написно куда, что откуда. Так же там не написано какой модуль необходим для работы (так что незабудте написать)). если хотите посмотреть похожий пример и понятно обьяснить нам всем - даю вам ссылку (http://narod.yandex.ru/cgi-bin/yandmarkup?cluster=14&prog=0x2757571A&HndlQuery=557623808&PageNum=0&g=0&d=0&q0=6 0166672&p=). Заранее спасибо!


 
Курдль ©   (2006-06-23 13:38) [1]


> Кто сделает напишите ответ сюда.

А почему бы не написать "кто первый сделает - пусть напишет сюда и тогда он будет удостоен моей снисходительной похвалы"?


 
Игорь Шевченко ©   (2006-06-23 13:40) [2]

http://kladovka.net.ru/delphibase/?action=viewfunc&topic=strconvert&id=10077


 
Сергей М. ©   (2006-06-23 13:41) [3]


> я обшарил весь инет


Смелое заявление. Ришпект)


 
Еж ©   (2006-06-23 13:48) [4]

2 be_love

Извини, не смог сделать :( Тож все обшарил и ниччче не понял - куда, что откуда?


 
Rouse_ ©   (2006-06-23 13:57) [5]

А скока денег платишь? :)
Предлагаю стартовую - 3 бакса за слово ;)


 
Карелин Артем ©   (2006-06-23 14:15) [6]


> Потому что я обшарил весь инет

Это как в фильме Стэлс за пару секунд самолет выкачал ВСЮ музыку из всего инета


 
Zeqfreed ©   (2006-06-23 14:17) [7]

uses
 Windows, Messages, SysUtils, Classes, Controls, Forms, StdCtrls;

type
 TEnumWordsCallback = procedure(const Word : String; Pos : Integer) of object;

 TForm1 = class(TForm)
   Button1: TButton;
   Memo1: TMemo;
   procedure Button1Click(Sender: TObject);
 private
   procedure MyEnum(const Word : String; Pos : Integer);
 public
   { Public declarations }
 end;

. . .

function EnumWords(const Src : String; EnumFunc : TEnumWordsCallback) : Integer;
type
 TEnumWordsState = (ewsNone, ewsWord);
const
 SpaceChars = [" ", #9, #13, #10, "?", ",", ".", "!", ";", "…", ":"];
var
 i, num : Integer;
 State : TEnumWordsState;
 Entity : String;
begin
 num := 0;
 i := 1;
 Entity := "";
 State := ewsNone;

 repeat
  case State of
   ewsNone : begin
    if not (Src[i] in SpaceChars) then begin
     Entity := Src[i];
     State := ewsWord;
    end;
   end;

   ewsWord : begin
    if (Src[i] in SpaceChars) then begin
     if (Entity <> "") then begin
      Inc(num);
      EnumFunc(Entity, num);
      Entity := "";
     end;

     State := ewsNone;
    end else
     Entity := Entity + Src[i]
   end;
  end;

  Inc(i);
 until (i > length(Src));

 if (Entity <> "") then begin
  Inc(num);
  EnumFunc(Entity, num);
 end;

 Result := num;
end;

procedure TForm1.MyEnum(const Word: String; Pos : Integer);
var
 x : TComponent;
begin
 x := FindComponent("Edit" + IntToStr(Pos));

 if Assigned(x) then begin
  if (x is TEdit) then (x as TEdit).Text := Word
 end else begin
  with TEdit.Create(Self) do begin
   Parent := Self;
   Name := "Edit" + IntToStr(Pos);
   Left := 8;
   Top := 8 + ((Pos - 1) * 26);
   Text := Word;
  end;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 EnumWords(Memo1.Text, MyEnum);
end;


Демпингую по-черному :)


 
Сергей М. ©   (2006-06-23 14:18) [8]


> Еж ©   (23.06.06 13:48) [4]


> все обшарил и ниччче не понял


Да уж .. сложно вам, ежам) ...

Что не понял-то ?


 
Gero ©   (2006-06-23 14:20) [9]

StringList.Delimiter = " ";
StringList.DelimitedText = Memo1.Text;


 
Карелин Артем ©   (2006-06-23 14:29) [10]

Memo1.Text:=StringReplace(Memo1.Text," ",#13#10,[rfReplaceAll]))//или там #10#13 будет...


 
Еж ©   (2006-06-23 14:36) [11]

2 Сергей М. ©   (23.06.06 14:18) [8]

Откуда - Что - Куда? :(


 
Еж ©   (2006-06-23 14:42) [12]

> Zeqfreed ©   (23.06.06 14:17) [7]

Мудрено больно, я ничче не понял :(  Сам попробовал WordCount и ExtractWord из RxLib - вроде работает.


 
antonn ©   (2006-06-23 15:36) [13]

ба-бах!
procedure Text2Slovs(text:string; OutText:Tstrings);
var i,i_last:integer;  _semafor:boolean;
begin
text:=" "+text+" ";
_semafor:=false;
i_last:=0;
for i:=1 to length(text) do begin
if (text[i]=" ") then begin
if _semafor then begin
    OutText.Add(copy(text,i_last+1,i-i_last-1));
    end;
 i_last:=i;
 _semafor:=false;
end else _semafor:=true;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Text2Slovs(edit1.Text,listbox1.Items);
end;


 
Сергей М. ©   (2006-06-23 15:42) [14]


> Еж ©   (23.06.06 14:36) [11]
> Откуда - Что - Куда? :(


Оттуда - То - Туда !)

Где конкретности ?


 
Еж ©   (2006-06-23 16:00) [15]

2 Сергей

конечно я находил такие примеры и для функции POS и так же для функции PosEx, но там толком не написно куда, что откуда. Так же там не написано какой модуль необходим для работы


 
Cerberus ©   (2006-06-23 16:19) [16]

Запускай цикл.
Так как стринг является массивом то перебирай все значения пока не натнёшся на пробел записывай конечную позицию и начальную потом оператором copy(s,start,stop);
где s строка start стартовая позиция stop конечная позиция.
По мойме предельно просто. Обычный паскаль.


 
Ketmar ©   (2006-06-23 16:19) [17]

>Еж ©   (23.06.06 16:00) [15]
а еду тебе тоже пережёваную в рот кладут?


 
Сергей М. ©   (2006-06-23 16:29) [18]


> Еж ©   (23.06.06 16:00) [15]


Ты станд.справку к PosEx() читал ?
Что там тебе не понятно ?


 
Еж ©   (2006-06-23 16:41) [19]

Ну че вы такие серьезные? Пятница ведь! Стебаюсь я, хоть бы поддеРЖАЛ кто :)


 
Сергей М. ©   (2006-06-23 16:43) [20]

Ежи оне в любой день ежи)


 
Еж ©   (2006-06-23 16:49) [21]

2 Сергей М.

СерЕЖ, ты ведь тож немножко Еж ;)


 
Ketmar ©   (2006-06-23 17:31) [22]

>Еж ©   (23.06.06 16:41) [19]
у кого пятница, а у кого юзвери. а юзвери очень негативно влияют на чувство юмора. %-(



Страницы: 1 вся ветка

Текущий архив: 2006.07.23;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.028 c
3-1147846173
Ega23
2006-05-17 10:09
2006.07.23
union по двум SP


15-1148428210
Lexmark
2006-05-24 03:50
2006.07.23
Визуальное моделирование внутренней сортировки


15-1151054373
Piter
2006-06-23 13:19
2006.07.23
Отмена платы за входящие на мобильные


2-1151984358
abcd
2006-07-04 07:39
2006.07.23
про запрос


2-1152097275
XTD
2006-07-05 15:01
2006.07.23
каким способом можно управлять стандартными приложениями Windows