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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2019, 11:12   #1
Enotik_1998
Пользователь
 
Регистрация: 09.03.2018
Сообщений: 77
По умолчанию Работа со строками в delphi7

Здравствуйте. Нужна помощь с задачей: Дан текст. Удалить все слова, которые начинаются на одну и ту же букву. У меня строка st и переменная для ввода буквы, с которой нужно удалять ch типа char.
Вот мой код:
Код:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
if combobox1.ItemIndex = 1 then
begin
RadioGroup1.ItemIndex:=1;
st:=ch;
ch:=st[1];
ch:=Edit1.text;
st:=' '+st;
repeat
i:=pos(' '+ch,st);
inc(i);
if i<>1 then
repeat
delete(st,i,1);
until (st[i]=' ')or(i=length(st)+1);
until  i=1;
ListBox1.Items.Add(st);
end;
У меня выбивает здесь ошибку:[Error] Unit1.pas(104): Incompatible types: 'Char' and 'TCaption'.
Код:
ch:=Edit1.text;
Ну там вроде надо преобразовать тип char в string, я это делаю здесь, но ввод буквы через Edit не работает:
Код:
st:=ch;
ch:=st[1];
Как это исправить?
Enotik_1998 вне форума Ответить с цитированием
Старый 16.04.2019, 11:17   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от Enotik_1998 Посмотреть сообщение
У меня выбивает здесь ошибку:[Error] Unit1.pas(104): Incompatible types: 'Char' and 'TCaption'.
И как вы в один символ собрались вопхнуть строку?

Цитата:
Сообщение от Enotik_1998 Посмотреть сообщение
Ну там вроде надо преобразовать тип char в string
Нет

Код:
ch:=st[1];
ch:=Edit1.text;
Что это? Какой смысл в первом присваивании, если вы его перезаписываете?
p51x вне форума Ответить с цитированием
Старый 16.04.2019, 11:22   #3
Enotik_1998
Пользователь
 
Регистрация: 09.03.2018
Сообщений: 77
По умолчанию

Ну так как это исправить? Как тогда иначе сделать ввод буквы?
Enotik_1998 вне форума Ответить с цитированием
Старый 16.04.2019, 11:27   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Взять одну букву из строки, что в едите.
p51x вне форума Ответить с цитированием
Старый 16.04.2019, 11:28   #5
Enotik_1998
Пользователь
 
Регистрация: 09.03.2018
Сообщений: 77
По умолчанию

Типа так:
Код:
ch:=st[1];
после ввода строки?
Enotik_1998 вне форума Ответить с цитированием
Старый 16.04.2019, 11:30   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Типа так.
p51x вне форума Ответить с цитированием
Старый 16.04.2019, 11:59   #7
Enotik_1998
Пользователь
 
Регистрация: 09.03.2018
Сообщений: 77
По умолчанию

Вот я сделал, у меня ничего не выводится в listbox:
Код:
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
if combobox1.ItemIndex = 1 then
begin
RadioGroup1.ItemIndex:=1;
Memo1.lines.loadfromfile('../8/f1.txt');
st:=' '+st;
h:=st[1];
repeat
i:=pos(' '+h,st);
inc(i);
if i<>1 then
repeat
delete(st,i,1);
until (st[i]=' ')or(i=length(st)+1);
until  i=1;
ListBox1.Items.Add('Полученная строка = ' + st);
end;
Enotik_1998 вне форума Ответить с цитированием
Старый 16.04.2019, 12:03   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Enotik_1998 Посмотреть сообщение
Код:
Memo1.lines.loadfromfile('../8/f1.txt');
прочитали текст в Memo1


Цитата:
Сообщение от Enotik_1998 Посмотреть сообщение
Код:
st:=' '+st;
оп. а тут уже работаете с переменной st
которая непонятно где объявлена и непонятно что там содержится (скорее всего - пусто или мусор).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.04.2019, 12:14   #9
Enotik_1998
Пользователь
 
Регистрация: 09.03.2018
Сообщений: 77
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
прочитали текст в Memo1
оп. а тут уже работаете с переменной st
которая непонятно где объявлена и непонятно что там содержится (скорее всего - пусто или мусор).
Переменная st описана как глобальная, там содержится пробел
Enotik_1998 вне форума Ответить с цитированием
Старый 16.04.2019, 12:15   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

И что вы хотите вывести из строки из двух пробелов? При этом в цикле еще и удаляя символы из нее?
p51x вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками в delphi7: преобразовать переменную типа char в строку и наоборот Enotik_1998 Компоненты Delphi 2 12.04.2019 10:55
Работа со строками в delphi7 Enotik_1998 Компоненты Delphi 16 11.04.2019 14:14
Работа со строками в delphi7 Enotik_1998 Компоненты Delphi 0 10.04.2019 13:31
Работа со строками в delphi7 Enotik_1998 Компоненты Delphi 2 08.04.2019 11:39
Беда со строками в delphi7 pimple2006 Общие вопросы Delphi 16 02.12.2012 21:58