Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
3-1103367985
Серый
2004-12-18 14:06
2005.01.23
Вычисляемое поле


14-1105069432
Думкин
2005-01-07 06:43
2005.01.23
С днем рождения! 7 января


14-1104182866
Johnmen
2004-12-28 00:27
2005.01.23
Дефилеры напускают оранжевый туман...


1-1105448024
Леха
2005-01-11 15:53
2005.01.23
Как создать класс с ссылками на классы другие


8-1097601258
TwisteR
2004-10-12 21:14
2005.01.23
Графика в TRichEdit...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский