Форум: "Основная";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];
ВнизРасщепление строки Найти похожие ветки
← →
t4 (2005-01-05 14:08) [0]Уважаемые мастера.
Скажите как из строки "лимон яблоко киви"
выбрать лимон яблоко киви и
засунуть их label1,label2,label3.Caption соответственно
Спасибо.
← →
begin...end © (2005-01-05 14:09) [1]TStringList
← →
franky © (2005-01-05 14:11) [2]
> Уважаемые мастера.
> Скажите как из строки "лимон яблоко киви"
> выбрать лимон яблоко киви и
> засунуть их label1,label2,label3.Caption соответственно
> Спасибо.
Функция сору позволяет выделить фрагмент строки. В общем виде обращение к функции сору выглядит так:
сору( Строка, р, п ) где:
строка — выражение строкового типа, содержащее строку, фрагмент которой надо получить;
р — номер первого символа, с которого начинается выделяемая подстрока;
n — длина выделяемой подстроки. Например, в результате выполнения инструкций
← →
franky © (2005-01-05 14:13) [3]Функция сору позволяет выделить фрагмент строки. В общем виде обращение к функции сору выглядит так:
сору( Строка, р, п ) где:
строка — выражение строкового типа, содержащее строку, фрагмент которой надо получить;
р — номер первого символа, с которого начинается выделяемая подстрока;
n — длина выделяемой подстроки. Например, в результате выполнения инструкцийst:= "Инженер Иванов"; fam:=copy(st, 9, 6) ;
значением переменной fam будет строка "Иванов1.
← →
begin...end © (2005-01-05 14:19) [4]> t4 (05.01.05 14:08)
См. также:
http://delphimaster.net/view/1-1104831952/
← →
KSergey © (2005-01-05 14:26) [5]Сегодня выщеплять слова - несомненный хит!
← →
ssk © (2005-01-05 14:31) [6]добавлю и я свою копеечку:
функция возвращает номер слова из строки
str - строка
Index - номер словаfunction GetSubStr(str: string; Index: byte): string;
var
w: string;
begin
repeat
str := TrimLeft(str);
w := "";
repeat
if Length(str) > 0 then
begin
w := w + str[1];
delete(str, 1, 1);
end;
until (pos(" ", str) = 1) or (Length(str) = 0);
dec(Index);
until Index = 0;
Result := w;
end;
← →
begin...end © (2005-01-05 14:36) [7]> [6] ssk © (05.01.05 14:31)
> функция возвращает номер слова из строки
Функция явно не номер возвращает.
← →
KSergey © (2005-01-05 14:38) [8]> [6] ssk © (05.01.05 14:31)
По-моему, очень неудачная реализация ввиду больших накладных расходов: для поиска пробелов постоянно модифицируется длина строки, что очень ресурсоемко. Вполне можно просто побегать по строке и найти позиции откуда и до куда вырезать - и сразу вырезать одним махом.
См. так же StrUtils из RxLib.
← →
ssk © (2005-01-05 14:39) [9]ну конечено же, возвращает слово!
если есть строка "яблоко лимон апельсин", то GetSubStr("яблоко лимон апельсин", 2) вернет "лимон"
← →
KSergey © (2005-01-05 14:39) [10]> [8] KSergey © (05.01.05 14:38)
> для поиска пробелов постоянно модифицируется длина
> строки,
В смысле даже не просто длина, а первый символ удаляется, т.е. строка постоянно перекопируется...
← →
ssk © (2005-01-05 14:40) [11]>KSergey © (05.01.05 14:38) [8]
> [6] ssk © (05.01.05 14:31)
По-моему, очень неудачная реализация ввиду больших накладных расходов: для поиска пробелов постоянно модифицируется длина строки, что очень ресурсоемко. Вполне можно просто побегать по строке и найти позиции откуда и до куда вырезать - и сразу вырезать одним махом.
согласен на все 100%. писалось давно и для коротких строк. так что я думаю, при длине строки пусть даже в 10-20 слов, скорость сильно не упадет.
← →
ssk © (2005-01-05 14:43) [12]>KSergey © (05.01.05 14:38) [8]
ну не было у меня готовой функции, ну не было. :-D
вот и пришлось набросать то, что первым пришло в голову.
← →
GuAV © (2005-01-05 16:05) [13]2 ssk ©
Как это готового не было ?
> begin...end © (05.01.05 14:09) [1] [Новое
>сообщение][Ответить]
> TStringList
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.052 c