Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];

Вниз

Анализ строки   Найти похожие ветки 

 
Иван   (2002-08-09 11:38) [0]

Добрый день. Делаю программу, содержащую TEdit, используемый в качестве строки для ввода команд. Так вот, как "по-умному" сделать разбиение строки? Т.е. при нажатии кнопки, Enter (вобщем неважно чего)строка разбивалась на:
-команду
-параметр 1
-параметр 2
...
-параметр n

Помогите!!!


 
Skier   (2002-08-09 11:42) [1]

>Иван

В RX Library есть модуль для "работы со строками", в
частности там есть функции : "вытаскивания" слова из строки по
номеру, получение кол-во слов в строке и т.д. и т.п.

Загляни туда...(модуль StrUtils.pas)


 
McSimm   (2002-08-09 11:48) [2]

"По-умному" - не знаю, могу предложить удобный вариант. При котором команда и параметры становятся элементами TStringList

При условии, что разделителем является пробел:

SL.Text := StringReplace(Edit1.Text, #32, #13#10, [rfReplaceAll]);


 
Kent   (2002-08-09 12:01) [3]

Используй объект TParser, он не документирован в помощи Delphi, но найти его можешь по ключевому слову. Парсер разбивает строку на лексемы. А там уж из них сам решай что команда, а что параметр.
Мне энтот объект очень помог !!!
Удачи !!!


 
Юрий Зотов   (2002-08-09 12:29) [4]

И даже без StringReplace:
StringList1.CommaText := Edit1.Text;
А затем берем команду и параметры StringList1.


 
Леха_   (2002-08-09 15:32) [5]

QStrings в инете найти без проблемм

если не найдешь могу выслать


 
Leran2002   (2002-08-09 15:41) [6]

А строка так задана или как:
"-команду-параметр1-параметр2...-параметрN"


 
Leran2002   (2002-08-09 15:52) [7]

В общем мне скоро уходить пора так что вот посмотри может подойдет (если строка задается как я думал):

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); // Проверка

Надеюсь помог.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.007 c
3-71032
Enig
2002-08-01 12:28
2002.08.22
ATTENTION!!! HELP ME!!!


4-71423
sizmrebi
2002-06-18 11:43
2002.08.22
Appearance


3-70968
Ag2002
2002-07-29 16:16
2002.08.22
FoxPro


1-71183
big_bugzy
2002-08-09 16:33
2002.08.22
Вопрос по MDI формам


3-71050
Tornado
2002-07-31 07:56
2002.08.22
Помогите с SQL-запросом плиз...





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