![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Анализ строки [D5, Win95/98]
Иван © (2002-08-09 11:38:00)Добрый день. Делаю программу, содержащую TEdit, используемый в качестве строки для ввода команд. Так вот, как "по-умному" сделать разбиение строки? Т.е. при нажатии кнопки, Enter (вобщем неважно чего)строка разбивалась на:
-команду
-параметр 1
-параметр 2
...
-параметр n
Помогите!!!
Leran2002 (2002-08-09 15:52:00) [1]В общем мне скоро уходить пора так что вот посмотри может подойдет (если строка задается как я думал):
var
S:string;
MyList:TStringList;
begin
S:=Edit1.Text;
MyList:=TStringList.Create;
MyList.Text:=StringReplace(S,"-",#13#10"-",[rfReplaceAll]); // Режем строку
if MyList.Count>0 then MyList.Delete(0);
Memo1.Lines.Assign(MyList); // Проверка
Надеюсь помог.
Leran2002 (2002-08-09 15:41:00) [2]А строка так задана или как:
"-команду-параметр1-параметр2...-параметрN"
Леха_ (2002-08-09 15:32:00) [3]QStrings в инете найти без проблемм
если не найдешь могу выслать
Юрий Зотов (2002-08-09 12:29:00) [4]И даже без StringReplace:
StringList1.CommaText := Edit1.Text;
А затем берем команду и параметры StringList1.
Kent (2002-08-09 12:01:00) [5]Используй объект TParser, он не документирован в помощи Delphi, но найти его можешь по ключевому слову. Парсер разбивает строку на лексемы. А там уж из них сам решай что команда, а что параметр.
Мне энтот объект очень помог !!!
Удачи !!!
McSimm (2002-08-09 11:48:00) [6]"По-умному" - не знаю, могу предложить удобныйвариант. При котором команда и параметры становятся элементами TStringList
При условии, что разделителем является пробел:
SL.Text := StringReplace(Edit1.Text, #32, #13#10, [rfReplaceAll]);
Skier (2002-08-09 11:42:00) [7]>Иван
В RX Library есть модуль для "работы со строками", в
частности там есть функции : "вытаскивания" слова из строки по
номеру, получение кол-во слов в строке и т.д. и т.п.
Загляни туда...(модуль StrUtils.pas)