9 / 9 / 5
Регистрация: 17.02.2012
Сообщений: 177
1

Работа со строками

12.09.2013, 15:22. Показов 638. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеются строки в Memo:
Код
1234
12345
123456
1234567
qweq
12345678
123456789
123qwe
1234567890
qweqwe
qweq
123qwe
Надо удалить из Memo строки, содержащие хотя бы одну букву, плюс которые меньше 5-ти и больше 9-ти символов.
Пробовал:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const
  numb=['0'..'9'];
var
  a,b: Integer;
  s:string;
begin
for a:=0 to Form1.sMemo1.Lines.Count-1 do
  begin
   s:=Form1.sMemo1.Lines[a];
   for b:=length(s) downto 1 do
   begin
     if not(s[b] in numb) or ((Length(s)<5) and (Length(s)>9)) then Form1.sMemo1.Lines.Delete(a);
   end;
  end;
end;
end;
Не получается. Помогите плиз.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.09.2013, 15:22
Ответы с готовыми решениями:

Работа со строками, заполнить компоненты строками из файла
Привет! Нужна помощь в заполнении формы В общем, есть форма отправки письма. У нее есть 2 функции,...

Работа со строками
Сори за тему.В общем вопрос в следующем.Строка содержит арифметическое выражение с круглыми...

Работа со строками
Для каждого слова заданного предложения указать долю согласных (отношение количества согласных к...

Работа со строками
Дана строка символов до точки. Группа символов в ней между пробелами считается словом. Найти самое...

3
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
12.09.2013, 15:28 2
Delphi
1
 if not(s[b] in numb) and ((Length(s)<5) or (Length(s)>9)) then
1
Модератор
3490 / 2613 / 741
Регистрация: 19.09.2012
Сообщений: 7,974
12.09.2013, 15:29 3
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.Button1Click(Sender: TObject);
var
  i, n: Integer;
begin
  for i := Memo1.Lines.Count - 1 downto 0 do
    if (Length(Memo1.Lines[i]) < 5) or (Length(Memo1.Lines[i]) > 9) or
       (not TryStrToInt(Memo1.Lines[i], n)) then
      Memo1.Lines.Delete(i);
end;
1
9 / 9 / 5
Регистрация: 17.02.2012
Сообщений: 177
12.09.2013, 16:28  [ТС] 4
Цитата Сообщение от Puporev Посмотреть сообщение
Delphi
1
 if not(s[b] in numb) and ((Length(s)<5) or (Length(s)>9)) then
После этого не правильно работает!

Цитата Сообщение от FIL Посмотреть сообщение
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.Button1Click(Sender: TObject);
var
  i, n: Integer;
begin
  for i := Memo1.Lines.Count - 1 downto 0 do
    if (Length(Memo1.Lines[i]) < 5) or (Length(Memo1.Lines[i]) > 9) or
       (not TryStrToInt(Memo1.Lines[i], n)) then
      Memo1.Lines.Delete(i);
end;
Спасибо, все супер!

Добавлено через 51 минуту
Что бы не создавать новую тему, пишу тут еще.
А как посчитать в строке количество одинаковых символов, стоящих подряд?
Т.е., например, строка: "666123456" или "529788882".
Как посчитать в первом случае 666, а во втором случае 8888 ?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.09.2013, 16:28
Помогаю со студенческими работами здесь

Работа со строками
&quot;из текстового файла,состоящего из 6-7 строк сформировать массив слов.Найти самое короткое и самое...

Работа со строками
народ, пытался написать прогу - Ввести две строковые последовательности из 10-ти или меньшего...

Работа с строками
доброе время суток форумчани. нужна ваша помощ нужно написать программу которая в каждой строке...

Работа со строками
Здравствуйте, я не могу понять как это реализовать :( Мне нужно чтобы было так: Если длинна...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru