Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2021, 02:31   #11
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,859
По умолчанию

А ещё лучше весь проект целиком. В виде приложенного к сообщению архива.
northener вне форума Ответить с цитированием
Старый 17.03.2021, 08:05   #12
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
Счастье

Цитата:
Сообщение от BDA Посмотреть сообщение
А покажите код создания date_acce (или лучше всю процедуру целиком).
Прикрепляю тестовый проект...

Код:
unit Unit1;

interface

uses

  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, RegExpr_preg, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  s:TStringList;
  txt: String;
begin
  txt:='Прибытие поезда 19.03.2021 в 10:20';

  if preg.match_all('/(\d{1,2}/\d{1,2}/(\d{4}|\d{2}))/', txt, s) then begin
    ShowMessage(s.Text);
    s.Free;
  end else begin
    ShowMessage('Не найдено дат');
  end;
end;

end.
Вложения
Тип файла: rar Projects.rar (123.6 Кб, 1 просмотров)
Женя32 вне форума Ответить с цитированием
Старый 18.03.2021, 04:22   #13
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Ваш проект у меня в Дельфи 7 работает нормально (чуть-чуть изменён, чтобы скомпилировался).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 18.03.2021, 09:38   #14
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию

Спасибо большое! Все заработало!
Женя32 вне форума Ответить с цитированием
Старый 18.03.2021, 09:57   #15
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию

Подскажите еще, пожалуйста, как можно регуляркой вытащить номер поезда?

Прибытие поезда №1234 19.03.2021 в 10:20
Женя32 вне форума Ответить с цитированием
Старый 22.03.2021, 13:58   #16
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию

Возник еще один вопрос. Подскажите, пожалуйста, как вытащить дату в таком формате?: Прибытие поезда №1234 22 марта 2021 в 10:20
Женя32 вне форума Ответить с цитированием
Старый 22.03.2021, 18:22   #17
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Как короче - не знаю.
Код:
'/\d{1,2} (?:января|февраля|марта|апреля|мая|июня|июля|августа|сентября|октября|ноября|декабря) \d{4}/'
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 23.03.2021, 10:31   #18
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
Счастье

Цитата:
Сообщение от BDA Посмотреть сообщение
Как короче - не знаю.
Код:
'/\d{1,2} (?:января|февраля|марта|апреля|мая|июня|июля|августа|сентября|октября|ноября|декабря) \d{4}/'
Вызывает ошибку...
А может не перечислять месяца, а просто указать то, что нужно искать участок строки где начало двухзначное число, средина - строка, а в конце четырехзначное число? Как это сделать?
Изображения
Тип файла: jpg preg.match_all_error1.jpg (67.7 Кб, 2 просмотров)
Тип файла: jpg preg.match_all_error2.jpg (105.6 Кб, 0 просмотров)
Женя32 вне форума Ответить с цитированием
Старый 23.03.2021, 17:11   #19
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Действительно, почему-то не нравится игнорирование групп. Можно так:
Код:
'/(\d{1,2} (января|февраля|марта|апреля|мая|июня|июля|августа|сентября|октября|ноября|декабря) \d{4})/'
или
'/(\d{1,2} [а-я]{3,8} \d{4})/'
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 23.03.2021, 19:17   #20
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию

BDA, спасибо! Оба варианта работают.
Женя32 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка с передачей массивов Types of actual and formal var parameters must be identical Григоренко Степан Общие вопросы Delphi 2 31.05.2013 22:41
Передаю переменную, но Types of actual and formal var parameters must be identical bakanaev Общие вопросы Delphi 1 24.05.2013 08:03
Ошибка - [Error] GraphUnit.pas(104): Types of actual and formal var parameters must be identical Ash Общие вопросы Delphi 8 30.10.2012 21:01
RichView. E2033 Types of actual and formal var parameters must be identical Shouldercannon Общие вопросы Delphi 5 05.06.2012 09:02
[Error] Project2.dpr(36): Types of actual and formal var parameters must be identical vadiprog Помощь студентам 1 15.11.2011 21:35