Тема: Как реализовать это в Delphi

Ответить в теме
Показано с 1 по 14 из 14
  1. Вверх #1
    Живёт на форуме Аватар для VladMasters
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    33
    Сообщений
    4,012
    Репутация
    2398

    По умолчанию Как реализовать это в Delphi

    Скажите пожалуйста как взять строчку из Memo и назовем так анализировать...
    Допустим строчка 192.168.1.0/23, мне нужно из строчки присвоить определенным переменный присвоить числа после 1-й точки, 2-й точки, 3 точки и число после слэша...


  2. Вверх #2
    Частый гость Аватар для CrazySquirrel
    Пол
    Мужской
    Возраст
    38
    Сообщений
    821
    Репутация
    111
    Бери строку...
    Разбирай её "по точкам", т работай с массивом

  3. Вверх #3
    Живёт на форуме Аватар для VladMasters
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    33
    Сообщений
    4,012
    Репутация
    2398
    ну вот в этом у меня у проблема, я плохо знаю Delphi и незнаю как строку в мемо разобрать...

  4. Вверх #4
    Посетитель Аватар для shurikwg
    Пол
    Мужской
    Сообщений
    233
    Репутация
    71
    строки из мемы можно дернуть так
    Memo.Lines.Strings[Index: Integer]
    первая строка 0 и т.д.
    парсить с помощью функций работы со строками
    Pos определяет номер символа в строке(в общем случае номер начального символа вхождения подстроки в строку)
    Copy копирует подстроку с ... по ...

  5. Вверх #5
    Живёт на форуме Аватар для VladMasters
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    33
    Сообщений
    4,012
    Репутация
    2398
    ещё будут варианты?
    благодарен за предложенные, но всё же интересно...

  6. Вверх #6
    Частый гость Аватар для Syon
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    53
    Сообщений
    946
    Репутация
    93
    Забить болт на программирование. Если такие вопросы возникают...
    Ынщть.

  7. Вверх #7
    Постоялец форума Аватар для Яр
    Пол
    Мужской
    Адрес
    Odessa.Ua
    Возраст
    38
    Сообщений
    2,915
    Репутация
    170
    Использовать регулярные выражения.
    ~ Motivation is what gets you started. Habit is what keeps you going.

  8. Вверх #8
    Частый гость Аватар для Lexis
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    39
    Сообщений
    593
    Репутация
    170
    Ну.. если еще нужны варианты..
    кроме как вытаскивания определенной строки и поиска точки, можно канечно использовать тупой просмотр по одному. А вот 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 - порядковый номер переменной
    Только смерть помогает понять смысл жизни

  9. Вверх #9
    Живёт на форуме Аватар для VladMasters
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    33
    Сообщений
    4,012
    Репутация
    2398
    Цитата Сообщение от Lexis Посмотреть сообщение
    Ну.. если еще нужны варианты..
    кроме как вытаскивания определенной строки и поиска точки, можно канечно использовать тупой просмотр по одному. А вот 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 - порядковый номер переменной
    спасибо...

  10. Вверх #10
    Постоялец форума Аватар для Newton
    Пол
    Мужской
    Адрес
    Calgary, Alberta
    Сообщений
    1,105
    Репутация
    826
    а есть еще способ с помощью конечных автоматов (который был назван " тупой просмотр по одному"). но он, наверное, будет оправдан, только если задачка будет посложнее.
    Моя хата з найкращого краю в світі.

  11. Вверх #11
    Новичок
    Пол
    Мужской
    Возраст
    45
    Сообщений
    74
    Репутация
    24
    Не надо здесь функций работы со строками и регулярных выражений, в VCL есть штатное средство для подобного разбора строки. Почитай справку по классу TStringList, конкретно - мемберы Delimiter и DelimitedText.

  12. Вверх #12
    Живёт на форуме Аватар для VladMasters
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    33
    Сообщений
    4,012
    Репутация
    2398
    ААА...Оно рабоатет...
    Вложения
    • Тип файла: zip IPCfYH.zip (510.2 Кб, Просмотров: 19)

  13. Вверх #13
    Постоялец форума
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    2,202
    Репутация
    495
    Цитата Сообщение от Skeeter Посмотреть сообщение
    Допустим строчка 192.168.1.0/23, мне нужно из строчки присвоить определенным переменный присвоить числа после 1-й точки, 2-й точки, 3 точки и число после слэша...
    Функция ExtractWord из библиотеки RxLib.

  14. Вверх #14
    pHp-ProGRaMMeR Аватар для NoXX
    Пол
    Мужской
    Возраст
    34
    Сообщений
    1,690
    Репутация
    320
    из библиотеки RegExp юзаем простейшую регулярку - '\d+\.\d+\.\d+\.\d+\\\d+'
    In TRANCE I trust...


Ответить в теме

Похожие темы

  1. Изоброжения и Delphi
    от Shadow_exe в разделе Программирование
    Ответов: 9
    Последнее сообщение: 20.10.2006, 21:47
  2. компилятор для Delphi
    от oz(skyline) в разделе Программирование
    Ответов: 3
    Последнее сообщение: 25.06.2006, 21:36
  3. Подскажите Delphi 6
    от U391 в разделе Программирование
    Ответов: 11
    Последнее сообщение: 22.05.2006, 10:05
  4. помогите в Delphi 7
    от U391 в разделе Программирование
    Ответов: 6
    Последнее сообщение: 22.05.2006, 09:57
  5. Delphi 7
    от Shadow_exe в разделе Программирование
    Ответов: 29
    Последнее сообщение: 26.03.2006, 14:54

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения