![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
Jarj |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Репутация: ![]() ![]() ![]() |
Дана строка символов, состоящая из произвольного текста на английском языке, слова разделены пробелами. Поменять местами i-е и j-е слова. Задачу нужно сделать с ComboBox
Пытался делать задачу по примеру но ничего не вышло. Заранее спасибо Сообщение отредактировано: Jarj - 24.12.2014 20:01 |
Федосеев Павел |
![]()
Сообщение
#2
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: ![]() ![]() ![]() |
В модуле StrUtils есть процедуры поиска i-того слова.
У меня нет Delphi, только FreePascal. Но FPC во многом совместим с Delphi. На примере консольной программы покажу как заменять слова при помощи библиотеки StrUtils: {$mode Delphi}
program tak_001;
uses
StrUtils;
procedure ExchangeWords(var s: string; i, j: integer);
var
WordI, WordJ: string;
PosI, PosJ: integer;
begin
WordI := ExtractWordPos(i, s, [' '], PosI);
WordJ := ExtractWordPos(j, s, [' '], PosJ);
if (WordI = '') or (WordJ = '') then
exit;
writeln(i, '-e: "', WordI, '"');
writeln(j, '-e: "', WordJ, '"');
Delete(s, PosI, length(WordI));
Insert(WordJ, s, PosI);
WordJ := ExtractWordPos(j, s, [' '], PosJ);
Delete(s, PosJ, length(WordJ));
Insert(WordI, s, PosJ);
end;
var
s: string;
i, j: integer;
begin
s := 'first second third fourth fifth sixth seventh eightth nineth tenth';
writeln(s);
ExchangeWords(s, 2, 3);
writeln(s);
end.
По поводу ComboBox ничего не могу посоветовать, т.к. не умею пользоваться визуальными компонентами (пока не было необходимости). Сообщение отредактировано: Федосеев Павел - 24.12.2014 23:13 |
Гость |
![]()
Сообщение
#3
|
Гость ![]() |
Спасибо за код. Только таких я находил кучу без комбобокса
|
Федосеев Павел |
![]()
Сообщение
#4
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 298 Пол: Мужской Реальное имя: Федосеев Павел Репутация: ![]() ![]() ![]() |
А ты умеешь в коде програмы получить из ComboBox строку для преоьразования?
Тогда можно так:
procedure Нажата_Кнопка или Какое-то событие (...);
var
s: string;
begin
............
s:=ComboBox.Text; //получение строки
i:=....//получение параметров i и j
j:=....//
ExchangeWords(s, i, j);
............
Вывод строки s в какое-либо поле или обратно в Edit ComboBox'а.
end;
Что не устраивает? ComboBox это лишь форма ввода строковых данных, не более того (согласно ссылке). |
![]() ![]() |
![]() |
Текстовая версия | 8.08.2025 9:42 |