На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> RAD Studio XE, Обсуждение Delphi XE
    ахрофигеть. я все таки этого дождался. я думаю ни раз разработчики задавали себе вопрос почему в делфи нет встроенных регулярок. и в основном юзали сторонний компонент (если нужно было)
    а вот только что нечаянно (не совсем нечаянно. просто компонент в 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
    ExpandedWrap disabled
      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"
    select name, telephone from Girls where age between 20 and 25 and (.)(.) >= 2 order by IQ desc limit 1
      Цитата ViktorXP @
      правда гады написали всего одну строчку про это

      Вообще это один из основных highlights, не знаю, как можно было пропустить :). Они своё написали или взяли TRegExpr Сорокина?
      Codero ergo sum
      // Программирую — значит, существую
        не то и не другое.
        там TPerlRegEx. он помощьнее за TRegExpr.
        select name, telephone from Girls where age between 20 and 25 and (.)(.) >= 2 order by IQ desc limit 1
          Цитата
          TPerlRegEx is a wrapper around the open source PCRE library

          Э... так, выходит, теперь либу придется с собой таскать?
          Codero ergo sum
          // Программирую — значит, существую
            нет. там инклудится все в файл. ты ведь не таскаешь с собой джипеговские или зелибовские библиотеки.

            пс. а глянуть самому я смотрю влом. :)
            select name, telephone from Girls where age between 20 and 25 and (.)(.) >= 2 order by IQ desc limit 1
              Цитата ViktorXP @
              там инклудится все в файл

              А, obj-ами сделали? Это хорошо.
              Цитата ViktorXP @
              а глянуть самому я смотрю влом

              Дык нету у меня ХЕ под руками, была триальная да кончилась, а портабельная запакована, не поглядишь, как там всё устроено.
              Codero ergo sum
              // Программирую — значит, существую
                Цитата Fr0sT @
                А, obj-ами сделали? Это хорошо.

                ага. сам люблю когда они так делают :lol:
                единственный минус что невозможно глянуть/исправить
                select name, telephone from Girls where age between 20 and 25 and (.)(.) >= 2 order by IQ desc limit 1
                  Только что обнаружил странный глюк при syncedit
                  если выделить часть кода и включить syncedit (Ctrl+Shift+J или кнопкой), а потом поставить курсор перед любой строкой в блоке и нажать Ctrl+/ то будет продублирована строка. одна будет закоментирована вторая нет.
                  Это глюк или фича?

                  пс. возможно не потеме, но даже в XE эта "фича" проявляется
                  select name, telephone from Girls where age between 20 and 25 and (.)(.) >= 2 order by IQ desc limit 1
                    Ага, есть такое. Зачем - хз, скорее всего баг. Напиши в QC, если такой темы нету еще :)

                    Как там насчет новой версии, ни у кого вестей с фронтов нету?
                    Codero ergo sum
                    // Программирую — значит, существую
                      прикольную они клиента под Quality Central сделали. Теперь багрепортом стало пользоваться удобнее :)
                      пс. ему бы еще рус. язык и ему бы цены не было.
                      select name, telephone from Girls where age between 20 and 25 and (.)(.) >= 2 order by IQ desc limit 1
                        Хм, а мне как-то на редкость неудобным показался. На сайте, конечно, тоже криво всё сделано, но хоть более-менее юзать можно.
                        Codero ergo sum
                        // Программирую — значит, существую
                          офигеть. сегодня на работе столкнулся с трудностью
                          ExpandedWrap disabled
                            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;
                          Неужто так трудно было организовать локально-процедурные методы в дженериках.

                          при этом пропускает банальности
                          ExpandedWrap disabled
                            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"
                          select name, telephone from Girls where age between 20 and 25 and (.)(.) >= 2 order by IQ desc limit 1
                            Цитата ViktorXP @
                            pr(MyObject); // это не должно было пропустить.

                            Почему? Если я не ошибся, MyObject - потомок TMyObj.

                            Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                            Beware the wild rabbit.
                              Цитата Romkin @
                              Почему?

                              Потому что
                              Test: TTest<TMyObject2>;

                              это тоже самое что я буду пытатся
                              ExpandedWrap disabled
                                type
                                  TForm1 = class(TForm);
                                  TForm2 = class(TForm);
                                procedure Test(frm: TForm1);
                                begin
                                end;
                                 
                                Test(Form2); // тут ругнется ошибкой. хотя обе формы являются потомком TForm


                              Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                              Сообщение отредактировано: ViktorXP -
                              select name, telephone from Girls where age between 20 and 25 and (.)(.) >= 2 order by IQ desc limit 1
                                Цитата ViktorXP @
                                Потому что
                                Test: TTest<TMyObject2>;

                                это тоже самое что я буду пытатся

                                Не то же самое. Ты уже вкомпилировал вызов по соглашению. Может, следовало уже не пропустить объявление Test: TTest<TMyObject2>;? Правило то же: на основе того, что неявно подставлен TMyObject1 в Test...
                                Тут можно было говорить о том, что не должно было пропустить вызов с явным потомком, независимо от того, есть ниже реализация дженерика или нет. Но не думаю, что это правильно.

                                Это сообщение было перенесено сюда или объединено из темы "Новости Embarcadero"
                                Beware the wild rabbit.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script Execution time: 0,1778 ]   [ 17 queries used ]   [ Generated: 19.08.19, 01:30 GMT ]