Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.23;
Скачать: CL | DM;

Вниз

Расщепление строки   Найти похожие ветки 

 
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://predskazanie-wunschpunsch.ru/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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.024 c
14-1104701909
Hmmm
2005-01-03 00:38
2005.01.23
Как мне вычислить x?


14-1104797793
Matveyev
2005-01-04 03:16
2005.01.23
Посмотрите программу


3-1103521649
WolandUSSR
2004-12-20 08:47
2005.01.23
Вставка BLOB поля в таблицу MySQL


3-1103666857
Дима
2004-12-22 01:07
2005.01.23
Как добавить запись в БД


4-1102164801
Klopan
2004-12-04 15:53
2005.01.23
edit