Главная страница
    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.048 c
1-1104872725
MAlexander
2005-01-05 00:05
2005.01.23
Нужен компонент типа Tabs or Page Control


3-1103223045
Flagman
2004-12-16 21:50
2005.01.23
TQuery + Paradox + CD ?


10-1082104097
Dark Elf
2004-04-16 12:28
2005.01.23
Программный выбор листа в Excel


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


4-1102348467
Sirus
2004-12-06 18:54
2005.01.23
Возможно ли отловить сохранение изменений в реестре Windows?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский