Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.07.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.012 c
15-1151204008
Аццкий юзар
2006-06-25 06:53
2006.07.23
Дизайн окна авторизации


2-1152087609
myke
2006-07-05 12:20
2006.07.23
For loop control variable must be simple local variable


15-1151226572
oldman
2006-06-25 13:09
2006.07.23
До чего ж докатилось наше образование... :(


3-1148369797
Андрей2005
2006-05-23 11:36
2006.07.23
Как обнулить автоинкрементное поле в таблице Paradox


15-1151135169
Verg
2006-06-24 11:46
2006.07.23
Задачка. Надой найти кратчайшее решение.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский