Главная страница
    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-1151231537
@BraIN
2006-06-25 14:32
2006.07.23
Windows Vista Product Key


2-1151838850
МишаК
2006-07-02 15:14
2006.07.23
компоненты делфи


4-1144765377
sally
2006-04-11 18:22
2006.07.23
Какое значение для управляющего кода FSCTL_GET_NTFS_FILE_RECORD


2-1152105202
oleggar
2006-07-05 17:13
2006.07.23
webbrowser


15-1149594374
Проходящий
2006-06-06 15: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
Английский Французский Немецкий Итальянский Португальский Русский Испанский