Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.231.219.178] |
|
Страницы: (2) [1] 2 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
а вот только что нечаянно (не совсем нечаянно. просто компонент в XE отвалился и пришлось искать замену) нашел в документации к XE что они встроили в делфю регулярки. правда гады написали всего одну строчку про это: Цитата www.embarcadero.com и пришлось самостоятельно выискивать по крупицам где это у нас уже регулярки есть.Language, Compiler and Library Enhancements Continued improvements and enhancements to your application foundation. Updates to the VCL, RTL, and STL Regular expressions for Delphi RTL Enhanced TStrings and Date/Time functionality Enhanced RTTI support for C++, new rvalue references, move semantics for std::string, and additional C++ VCL enhancements Added support for the OpenTools API for internal tabs Improved compiler performance модуль: RegularExpressions класс: TRegEx стандарт: PCRE uses RegularExpressions; procedure TForm5.Button1Click(Sender: TObject); var Reg: TRegEx; i:integer; M: TMatchCollection; begin Reg := TRegEx.Create('[а-я]*',[roIgnoreCase, roMultiLine]); M:=Reg.Matches('Я строка. И теперь меня можно парсить прамо в делфи без сторонних компонентов.'); for i := 0 to M.Count-1 do Memo1.Lines.Add(M[i].Value) end; Эта тема была разделена из темы "Новости Embarcadero" |
Сообщ.
#2
,
|
|
|
Цитата ViktorXP @ правда гады написали всего одну строчку про это Вообще это один из основных highlights, не знаю, как можно было пропустить . Они своё написали или взяли TRegExpr Сорокина? |
Сообщ.
#3
,
|
|
|
не то и не другое.
там TPerlRegEx. он помощьнее за TRegExpr. |
Сообщ.
#4
,
|
|
|
Цитата TPerlRegEx is a wrapper around the open source PCRE library Э... так, выходит, теперь либу придется с собой таскать? |
Сообщ.
#5
,
|
|
|
нет. там инклудится все в файл. ты ведь не таскаешь с собой джипеговские или зелибовские библиотеки.
пс. а глянуть самому я смотрю влом. |
Сообщ.
#6
,
|
|
|
Цитата ViktorXP @ там инклудится все в файл А, obj-ами сделали? Это хорошо. Цитата ViktorXP @ а глянуть самому я смотрю влом Дык нету у меня ХЕ под руками, была триальная да кончилась, а портабельная запакована, не поглядишь, как там всё устроено. |
Сообщ.
#7
,
|
|
|
Цитата Fr0sT @ А, obj-ами сделали? Это хорошо. ага. сам люблю когда они так делают единственный минус что невозможно глянуть/исправить |
Сообщ.
#8
,
|
|
|
Только что обнаружил странный глюк при syncedit
если выделить часть кода и включить syncedit (Ctrl+Shift+J или кнопкой), а потом поставить курсор перед любой строкой в блоке и нажать Ctrl+/ то будет продублирована строка. одна будет закоментирована вторая нет. Это глюк или фича? пс. возможно не потеме, но даже в XE эта "фича" проявляется |
Сообщ.
#9
,
|
|
|
Ага, есть такое. Зачем - хз, скорее всего баг. Напиши в QC, если такой темы нету еще
Как там насчет новой версии, ни у кого вестей с фронтов нету? |
Сообщ.
#10
,
|
|
|
прикольную они клиента под Quality Central сделали. Теперь багрепортом стало пользоваться удобнее
пс. ему бы еще рус. язык и ему бы цены не было. |
Сообщ.
#11
,
|
|
|
Хм, а мне как-то на редкость неудобным показался. На сайте, конечно, тоже криво всё сделано, но хоть более-менее юзать можно.
|
Сообщ.
#12
,
|
|
|
офигеть. сегодня на работе столкнулся с трудностью
type TTest<T> = class procedure Test; end; { TTest } procedure TTest<T>.Test; procedure ProcTest; //[DCC Error] Unit5.pas(38): E2570 Local procedure in generic method or method of generic type is not supported begin end; begin end; при этом пропускает банальности type {$M+} TMyObj = class(TObject) end; TMyObject1 = class(TMyObj) end; TMyObject2 = class(TMyObj) end; var MyObject: TMyObject1; type TTest<T: TMyObj> = class procedure Test; end; { TTest } procedure TTest<T>.Test; var pr: TProc<T>; begin pr := procedure (Obj: T) begin end; pr(MyObject); // это не должно было пропустить. end; var Test: TTest<TMyObject2>; Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero" |
Сообщ.
#13
,
|
|
|
Цитата ViktorXP @ pr(MyObject); // это не должно было пропустить. Почему? Если я не ошибся, MyObject - потомок TMyObj. Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero" |
Сообщ.
#14
,
|
|
|
Цитата Romkin @ Почему? Потому что Test: TTest<TMyObject2>; это тоже самое что я буду пытатся type TForm1 = class(TForm); TForm2 = class(TForm); procedure Test(frm: TForm1); begin end; Test(Form2); // тут ругнется ошибкой. хотя обе формы являются потомком TForm Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero" |
Сообщ.
#15
,
|
|
|
Цитата ViktorXP @ Потому что Test: TTest<TMyObject2>; это тоже самое что я буду пытатся Не то же самое. Ты уже вкомпилировал вызов по соглашению. Может, следовало уже не пропустить объявление Test: TTest<TMyObject2>;? Правило то же: на основе того, что неявно подставлен TMyObject1 в Test... Тут можно было говорить о том, что не должно было пропустить вызов с явным потомком, независимо от того, есть ниже реализация дженерика или нет. Но не думаю, что это правильно. Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero" |