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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2009, 17:23   #1
KoBRaAndrey
Форумчанин
 
Регистрация: 01.10.2009
Сообщений: 302
По умолчанию Вырезание слов

Код:
probel2:=0;
probelold:=0;

while posex(' ',memo1.Text,probel2+1)<>0 do begin
probel2:=posex(' ',memo1.Text,probel2+1);
slovo:=copy(memo1.Text,probelold,probel2-1);
showmessage(slovo);
probelold:=posex(' ',memo1.Text,probel2+1);
end;

нужно чтобы вырезало каждое слово от пробела до пробела
например текст:
аааа б ц д
и должно показать 4 раза месангебокс и в 1 аааа во 2 б в 3 ц...
но почемуто в моем коде показывает :
аааа й д,букву б пропускает.. в чем дело
KoBRaAndrey вне форума Ответить с цитированием
Старый 24.12.2009, 17:41   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

1 2
showmessage уже добавите цикл перебора t[] примеров сами.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 24.12.2009, 17:45   #3
Dzmitry Loktseu
Пользователь
 
Регистрация: 17.12.2009
Сообщений: 18
По умолчанию

Можно сделать проще:

Код:
procedure TForm4.Button1Click(Sender: TObject);
var
  I: Integer;
begin
  with TStringList.Create do
    try
      DelimitedText := 'аааа б ц д';
      for I := 0 to Count - 1 do
        ShowMessage(Strings[I]);
  finally
    Free;
  end;
end;
Dzmitry Loktseu вне форума Ответить с цитированием
Старый 24.12.2009, 17:52   #4
KoBRaAndrey
Форумчанин
 
Регистрация: 01.10.2009
Сообщений: 302
По умолчанию

мне интересно а какая проблема в моем коде))
KoBRaAndrey вне форума Ответить с цитированием
Старый 24.12.2009, 18:03   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Такая:
Код:
probel2:=0;
probelold:=1;
while PosEx(' ',memo1.Text+' ',probel2+1)<>0 do begin
probel2:=posex(' ',memo1.Text+' ',probel2+1);
slovo:=copy(memo1.Text+' ',probelold,probel2-probelold);//последний параметр - длина!
showmessage(slovo);
probelold:=probel2+1;
end;

Последний раз редактировалось mihali4; 24.12.2009 в 18:05.
mihali4 вне форума Ответить с цитированием
Старый 24.12.2009, 20:49   #6
postal2
Форумчанин
 
Аватар для postal2
 
Регистрация: 31.10.2008
Сообщений: 215
По умолчанию

Лично моя функция для вырезания части из строки - вырезает от одной строки до другой (с) :
Код:
function TForm1.ccopy(s, c1, c2: widestring): string;
begin
  if c1 <> '' then
    system.delete(s, 1, ansipos(c1, s) + length(c1) - 1);
  if c2 <> '' then
    system.delete(s, ansipos(c2, s), length(s));
  result := s;
end;
Примеры использования:
ccopy('1234567890','2','6') вернёт 345
ccopy('1234567890','','6') вернёт 12345
ccopy('1234567890','123','6') вернёт 45
ccopy('1234567890','111','6') вернёт 12345
[Ferox]
postal2 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 вопроса по c++ 1)небольшая функция 2)вырезание лишних цифр Destructor Общие вопросы C/C++ 2 23.12.2009 13:18
Дана строка, состоящая из нескольких слов. Найти количество слов, которые содержат хотя бы одну букву "А" Mashaa Помощь студентам 13 09.12.2009 13:28
по вводу слов в массив и подсчёт введённых слов -ushёl- Общие вопросы C/C++ 4 16.11.2009 00:45
Составить в алфавитном порядке список всех слов, встречающихся в тексте, и количество этих слов. KAPAHDAW Паскаль, Turbo Pascal, PascalABC.NET 2 17.02.2009 01:19
c\c++ массив слов FreeJaile Общие вопросы C/C++ 7 04.04.2008 00:39