Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2010, 18:59   #1
Vladimir-888
Пользователь
 
Регистрация: 01.04.2010
Сообщений: 29
По умолчанию разбиение текста на слова

Помогите плиз. Имеется код разбиения текста на слова. Необходим небольшой комментарий, а то не совсем понятно
Код:
var
  Sep : set of char;
  T, W : string;
  i : integer;
begin
  sep:=[';',',','.',' '];

  T:=Memo1.Text+' ';
  W:='';
  i:=1;
  while i<=length(T) do
    begin
      if (T[i] in Sep) then
        if W<>'' then
          begin
            Memo2.Lines.Add(W);
            W:='';
          end
        else
      else
        W:=W+T[i];

      inc(i); //Inc увеличивает на 1 единицу
    end;
Vladimir-888 вне форума Ответить с цитированием
Старый 18.04.2010, 19:47   #2
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

ну это не сложно)
Код:
var
  Sep : set of char;
  T, W : string;
  i : integer;
begin
  sep:=[';',',','.',' ']; //это множество символов ,которыми слова могут разделяться )) 

  T:=Memo1.Text+' ';
  W:='';
  i:=1;
  while i<=length(T) do  // читаем строку посимвольно начиная с первого, i-  номер символа ))
    begin
      if (T[i] in Sep) then
        if W<>'' then // 
          begin
            Memo2.Lines.Add(W); // видимо, выводим очередное слово
            W:='';
          end
        else
      else
        W:=W+T[i]; // формируем очередное слово(прибавляя по одному символу)

      inc(i); //Inc увеличивает на 1 единицу //переходим к следующему символу
    end;
а так если , то что конкретно непонятно?
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 18.04.2010, 22:07   #3
Vladimir-888
Пользователь
 
Регистрация: 01.04.2010
Сообщений: 29
По умолчанию

ну как раз то ,что вы описали, мне понятно) не понятно:
T:=Memo1.Text+' '; почему прибавляем пробел?
W:=''; почему присваиваем "пустому месту"?

Помогите)
Vladimir-888 вне форума Ответить с цитированием
Старый 18.04.2010, 22:26   #4
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

угу . заметь ) мы присваиваем w "пустому месту" как только найдём запятую или что-то , что разделяет слова ( из вышеописанного множества ) (но предварительно выводим полученный результат- слово , а только потом обнуляем))
во! сообразил - а пробел, видимо, чтобы вести последнее слово ( если строка не заканчивается ни точкой ни запятой не пробелом)))))
называй меня на ты)))
---------------------------------------------------
говори что не так) будем дальше думать)
против абортов=за + жизнь;.фкн вгу;_______________________мойблг

Последний раз редактировалось vedro-compota; 18.04.2010 в 22:33.
vedro-compota вне форума Ответить с цитированием
Старый 19.04.2010, 09:08   #5
Vladimir-888
Пользователь
 
Регистрация: 01.04.2010
Сообщений: 29
По умолчанию

спасибо, разобрался)
Vladimir-888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
макрос_выделение текста до необходимого символа/слова/закладки Окоча Юра Microsoft Office Word 6 04.01.2010 11:22
СИ. Удалить слова, которые содержат все повторяющиеся буквы первого слова nick23 Помощь студентам 7 01.11.2009 14:47
Разбиение текста на блоки. gosu Общие вопросы C/C++ 11 04.06.2009 19:12
Окрашивание текста в зависимости от длинны слова(подскажите как) LAZER Помощь студентам 15 10.05.2009 20:59