В Дельфи есть специальный класс для хранения массивов строк - TStringList - очень рекомендую. Вот как вашу строку превратить в TStringList:
Объявление переменной var t:TStringList;
begin t:=TStringList.create; //создаём класс t.text:=stringReplace('Ваша строка для разделения',' ',#13#10,[rfReplaceAll]);//мы заменяем все пробелы на символы конца строки //теперь можно убедится что у вас строка разбина на элементы: showmessage(t[0]); showmessage(t[1]); showmessage(t[2]); showmessage(t[3]); ... //после работы надо уничтожить класс t.free; Автор Vit Взято с Vingrad.ru http://forum.vingrad.ru
Вариант 2. Используем стандартные массивы:
var a:arrayofstring;//наш массив s:string;//строка которую мы будем разбивать begin s:='Windows Messages SysUtils Variants Classes Graphics Controls Forms'; Repeat//мы постепенно заполняем массив на каждом шаге цикла по 1 элементу setlength(a,length(a)+1);//увеличиваем размер массива на 1 if pos(' ',s)>0then//если есть пробел то надо взять слово до пробела 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 Взято с Vingrad.ru http://forum.vingrad.ru
procedure SplitOnWords(const s:string; Delimiters:setof 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^=#0then exit else inc(p); sp:=p; //пока не кончилось слово. whilenot (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