Скажите пожалуйста как взять строчку из Memo и назовем так анализировать...
Допустим строчка 192.168.1.0/23, мне нужно из строчки присвоить определенным переменный присвоить числа после 1-й точки, 2-й точки, 3 точки и число после слэша...
|
Скажите пожалуйста как взять строчку из Memo и назовем так анализировать...
Допустим строчка 192.168.1.0/23, мне нужно из строчки присвоить определенным переменный присвоить числа после 1-й точки, 2-й точки, 3 точки и число после слэша...
Бери строку...
Разбирай её "по точкам", т работай с массивом
ну вот в этом у меня у проблема, я плохо знаю Delphi и незнаю как строку в мемо разобрать...
строки из мемы можно дернуть так
Memo.Lines.Strings[Index: Integer]
первая строка 0 и т.д.
парсить с помощью функций работы со строками
Pos определяет номер символа в строке(в общем случае номер начального символа вхождения подстроки в строку)
Copy копирует подстроку с ... по ...
ещё будут варианты?
благодарен за предложенные, но всё же интересно...
Забить болт на программирование. Если такие вопросы возникают...
Ынщть.
Использовать регулярные выражения.
~ Motivation is what gets you started. Habit is what keeps you going.
Ну.. если еще нужны варианты..
кроме как вытаскивания определенной строки и поиска точки, можно канечно использовать тупой просмотр по одному. А вот pos естественно хорошо, только если в одной строке до фига разных разделителей, то много мороки. Тут проще заранее забить set из разделителей и спрашивать
символ
a: set of ['/', '.',':',';'];
s:=Memo.Lines.Strings[Index: Integer];
i:=1;
s1:='';
index2:=1;
while i<=length(s) do
begin
if not( s[i] in a ) then s1:=s1+s[i] else
begin
_variable[Index,index2]:=s1;
inc(index2);
s1:='';
end;
inc(i);
end;
это пример в конкретной строке index
А все переменные будут в массиве _variable[] index-номер строки, index2 - порядковый номер переменной
Только смерть помогает понять смысл жизни
а есть еще способ с помощью конечных автоматов (который был назван " тупой просмотр по одному"). но он, наверное, будет оправдан, только если задачка будет посложнее.
Моя хата з найкращого краю в світі.
Не надо здесь функций работы со строками и регулярных выражений, в VCL есть штатное средство для подобного разбора строки. Почитай справку по классу TStringList, конкретно - мемберы Delimiter и DelimitedText.
ААА...Оно рабоатет...![]()
из библиотеки RegExp юзаем простейшую регулярку - '\d+\.\d+\.\d+\.\d+\\\d+'
In TRANCE I trust...
Социальные закладки