Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Как разделить строку на элементы (2)

Delphi , Синтаксис , Массивы

Как разделить строку на элементы (2)

Вариант 1. Используем стандартные массивы:
 
Code:
var a:array of string;//наш массив
     s:string;//строка которую мы будем разбивать
begin
s:='Windows Messages SysUtils Variants Classes Graphics Controls Forms';
Repeat //мы постепенно заполняем массив на каждом шаге цикла по 1 элементу
   setlength(a,length(a)+1);//увеличиваем размер массива на 1
   if pos(' ',s)>0 then //если есть пробел то надо взять слово до пробела
     begin
       a[length(a)-1]:=copy(s,1, pos(' ',s));//присвоение последнему элементу массива первого слова
       s:=copy(s,pos(' ',s)+1, length(s));//удаляем из строки первое слово
     end
   else//в строке осталось только одно слово
     begin
       a[length(a)-1]:=s;// присвоим последнее слово
       break;//выход из цикла
     end;
Until False;//цикл бесконечный, выход изнутри
//теперь проверяем что получили
showmessage(a[0]);
showmessage(a[1]);
showmessage(a[2]);
После использования массива не забудте освободить память a:=nil или setlength(a,0)
Автор: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)
 
Взято с Vingrad.ru http://forum.vingrad.ru
 
 

 
Code:
procedure SplitOnWords(const s:string; Delimiters:set of char; Strings:TStrings);
var
p,sp:PChar;
str:string;
 
begin
include(Delimiters,#0); //чтоб уж наверняк
p:=pointer(s);
while true do
begin
 //пропускаем все разделители в начале
 while p^ in Delimiters do
   if p^=#0 then
     exit
   else
     inc(p);
   sp:=p;
   //пока не кончилось слово.
   while not (p^ in Delimiters) do inc(p);
 
   //запоминаем слово
   SetLength(str,cardinal(p)-cardinal(sp));
   Move(sp^,pointer(str)^,cardinal(p)-cardinal(sp));
   Strings.Add(str);
end;
end;
Автор: Fantasist Взято с Vingrad.ru http://forum.vingrad.ru

Статья Как разделить строку на элементы (2) раздела Синтаксис Массивы может быть полезна для разработчиков на Delphi и FreePascal.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Массивы ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100
20.04.2024 02:43:40/0.051440954208374/2