На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное 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_
Страницы: (18) « Первая ... 15 16 [17] 18  все  ( Перейти к последнему сообщению )  
> Конкурс "Разработка Windows-приложений в среде Delphi" , Обсуждение
    Конкурс: "Разработка Windows-приложений в среде Delphi - взаимодействие с системой, проектирование, кодирование"
    user posted image

    Внимание !

    Сроки объявления победителя конкурса и публикации решений(и их разбора) переносятся.
    (Решений много, причем нетривиальных, что радует :) )
    Ориентровочно до 14.12.2009 (благими намереньями путь в ад выстелен :) )
    Следите за объявлениями. Просьба отнестись с пониманием O:-)

    Призы
    За первое место - 1 DGM. Коробочка Windows Vista Home Premium (Russian).
    За второе место - 1 DGM. Рюкзак Centrix Trend серо-черный с надписью "Майкрософт".
    За третье место – 1 DGM. Футболка разм. 46/170 желтая, с надписью "Майкрософт Виртуализация".

    Выбор победителя
    Победа в конкурсе подразумевает 100% правильное решение хотя бы одной задачи.
    Победителем будет считаться конкурсант, полностью решивший хотя бы одну задачу
    и суммарно набравший максимальное количество баллов.
    При отсутствии решений в соответствии с вышесказанным условием конкурс может быть признан
    недействительным.
    Критерии оценки правильности решения будут указаны в тексте задачи.
    По результатам конкурса будет только один победитель. Если решений, которые претендуют на
    победу, больше – то, будет проведен второй тур.

    Разработчики:
    CodeMonkey, Romkin, --Ins--, P.O.D

    Состав жюри:
    P.O.D, CodeMonkey, --Ins--, Romkin

    Состав комисии:
    ViktorXP, Riply

    Список претендентов на победу:

    Демо
    osmiy74
    Alexander N
    Frees
    andrew.virus
    arj99
    Lumen
    Profi
    mmihaylovich
    Rulikkk
    THandle
    bems
    RedCliphAloe
    Aristarh Dark
    Amphiluke
    Lowimuz
    MetalFan
    Felan
    antonn
    @!!ex
    Наиль
    Keeper89
    prizrak39
    Pavia
    kemiisto
    Stalker.mg
    El Burro
    PEAKTOP
    Ofer
    Maksim V.
    ttiger
    -darkmamba-
    vovksextra
    alexeis1
    sourceman
    Mustitz
    Marriage
    SergGG
    Сообщение отредактировано: P.O.D -
      Riply, понимаем ;) :yes:

      А я вот только спросить хотел как продвигаются дела... :)
      Сообщение отредактировано: Keeper89 -
        Цитата Riply @
        Сроки объявления победителя конкурса и публикации решений(и их разбора) переносятся.
        (Решений много, причем нетривиальных, что радует )
        Ориентровочно до 14.12.2009 (благими намереньями путь в ад выстелен )
        Следите за объявлениями.


        Внимание !

        Жюри вынуждено снова отодвинуть сроки :(
        Как оказалось, довольно непросто не только объективно оценить все решения в рамках "своей тематики",
        но и подвести общий баланс по всем тематикам для каждого участника.
        Еще сложнее выбрать победителя (один дал супер-пупер решение, а другой: пупер-супер. Кто из них лучше справился ? :) )

        Так же время терялось на всевозможных технических моментах.
        Например, решение собирается только под определенной версией среды (2007 или 2010).
        Членам жюри приходилось где-то и как-то раздобывать эту версию и устанавливать у себя на машине.
        (Плюс не все версии мирно уживаются друг с другом)
        И т.д. и т.п.

        Мы приносим свои извинения и посим дать нам еще недельку.
        Новый и (как я надеюсь :) ) окончательный срок: 21.12.2009.

        Спасибо за понимание :)
          Цитата Riply @
          Еще сложнее выбрать победителя (один дал супер-пупер решение, а другой: пупер-супер. Кто из них лучше справился ? :) )


          Да обоим дать первое место :)

          Цитата Riply @


          Мы приносим свои извинения и посим дать нам еще недельку.
          Новый и (как я надеюсь :) ) окончательный срок: 21.12.2009.


          От меня личная просьба - постарайтесь уж к этому времени, не продлевайте до 28. У меня с 29 зачеты, не хотелось бы прям перед ними получить еще один повод для окончательного ухудшения настроения :)
          Так же надеюсь на понимание :)
            Цитата THandle @
            не хотелось бы прям перед ними получить еще один повод для окончательного ухудшения настроения


            Выдержка из подслушанного диалога:
            - Я так расстроен. Не сумел занять первое место в конкурсе по программированию.
            - Да.. Обидно. А кто там еще участвовал ?
            - Я помню только некотрых: Кнут, Александреску, Руссинович, Рутковская...

            :)
              Цитата Riply @
              Выдержка из подслушанного диалога:
              - Я так расстроен. Не сумел занять первое место в конкурсе по программированию.
              - Да.. Обидно. А кто там еще участвовал ?
              - Я помню только некотрых: Кнут, Александреску, Руссинович, Рутковская...

              Ох уж эти, фаны! Все время берут себе ники в честь знаменитостей...
              :D
                Цитата THandle @
                От меня личная просьба - постарайтесь уж к этому времени, не продлевайте до 28. У меня с 29 зачеты, не хотелось бы прям перед ними получить еще один повод для окончательного ухудшения настроения :)

                А то и под Новый Год его можно испортить :(
                  Очень интересно посмотреть на решения получившие 1ые места.
                    Цитата -darkmamba- @
                    Очень интересно посмотреть на решения получившие 1ые места.


                    Все решения увидим-)
                      Не позднее чем завтра ждем мы результатов конкурса... Давайте же уже их!!!
                      У меня терпение заканчивается))
                        Цитата THandle @
                        У меня терпение заканчивается))


                        Только не надо брать в руки ломик :crazy:
                          Товарищи, прошу прощения, это моя вина.
                          Предновогодний аврал на работе, плюс я на неделю из России по надобности свалил - соответственно, не было возможностей посидеть над проверками.
                            ТАК КОГДА ЖЕ ВСЕ ТАКИ РЕЗУЛЬТАТЫ??? :crazy:

                            Я ночь не спал, я завтрак не доел. Сегодня? В этом году? В следующем?

                            Добавлено
                            Цитата Демо @
                            Только не надо брать в руки ломик :crazy:


                            Уговорил, возьму лом.
                              THandle, скоро начнем. Медленно и со вкусом :)
                                Итак, о первом задании.

                                Мое решение:

                                ExpandedWrap disabled
                                  function B(F: String; C: Char): DWORD;
                                  var
                                    S: String;
                                  begin
                                    { Обрабатываются все исключительные ситуации, которые могут возникнуть
                                      во время выполнения функции }
                                    try
                                      { Открываем файл для чтения/записи }
                                      with TFileStream.Create(F, 2) do
                                      begin
                                        { Устанавливаем длину строки, в которую будет
                                          произведено считывание из файла }
                                        SetLength(F, Size);
                                        { Считываем текст из файла в строку F }
                                        Read(F[1], Size);
                                        { Присваиваем переменной S символ, максимальное количество вхождений
                                          которого необходимо найти в строке F }
                                        S := C;
                                        { Ищем такое количество знаков C, какое уже не входит в строку F }
                                        while Pos(S, F) <> 0 do
                                          S := S + C;
                                        { Находим в строке F все пары рядом идущих символов C
                                          и удаляем один из них }
                                        while Pos(C + C, F) <> 0 do
                                          Delete(F, Pos(C + C, F), 1);
                                        { В строке S находится такое количество символов C, которое уже не
                                          входит в строку F.
                                          Количество символов C, на 1 меньшее, чем в строке S и является
                                          результатом выполнения функции }
                                        B := Length(S) - 1;
                                        { Очищаем поток, чтобы записать в него данные
                                          и не оставить ничего лишнего }
                                        Size := 0;
                                        { Записываем данные в файл }
                                        Write(F[1], Length(F));
                                        { Освобождаем память за экземпляром TFileStream }
                                        Free
                                      end
                                    except
                                      { Если произошла какая-то ошибка, то возвращаем 0 }
                                      B := 0
                                    end
                                  end;


                                В 2009+ код работать естественно не будет, так как используются строки String - ANSI.
                                Но где сказано про юникод?

                                Цитата
                                до 7 включительно.

                                Цитата
                                Все строки и символы - Ansi (юникод не встречается).


                                Я так и понял - строки ANSI. Надо было написать тогда чтобы код работал и в 2009+.

                                Цитата Riply @
                                К сожалению, последние 5 участников не прошли тесты на следующем файле (символ для поиска a):
                                assaas asdasda aaaaaaaaaasdasdasda asdas
                                asdsaas,asd asas-d0a-s asd as aaaaaaaaaaa asda
                                asda asda aaaaaaaaaaaaa-aa-aaaa,asdm,asaaa
                                asdasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa123a


                                А на других значит работает? :) На данном файле в Delphi 7 результат верный - 33 символа a.
                                Так бы и формулировали - не прошла тест из за неподдержки Юникода. Видимо проверки проводились только в новых версиях. :) А это, товарищи, не правильно.

                                Можно было бы сделать конечно и так:

                                ExpandedWrap disabled
                                  type
                                    U = AnsiString;
                                    
                                  function B(F: U; C: Char): DWORD;
                                  var
                                    S: U;
                                  begin
                                    { Обрабатываются все исключительные ситуации, которые могут возникнуть
                                      во время выполнения функции }
                                    try
                                      { Открываем файл для чтения/записи }
                                      with TFileStream.Create(F, 2) do
                                      begin
                                        { Устанавливаем длину строки, в которую будет
                                          произведено считывание из файла }
                                        SetLength(F, Size);
                                        { Считываем текст из файла в строку F }
                                        Read(F[1], Size);
                                        { Присваиваем переменной S символ, максимальное количество вхождений
                                          которого необходимо найти в строке F }
                                        S := C;
                                        { Ищем такое количество знаков C, какое уже не входит в строку F }
                                        while Pos(S, F) <> 0 do
                                          S := S + C;
                                        { Находим в строке F все пары рядом идущих символов C
                                          и удаляем один из них }
                                        while Pos(C + C, F) <> 0 do
                                          Delete(F, Pos(C + C, F), 1);
                                        { В строке S находится такое количество символов C, которое уже не
                                          входит в строку F.
                                          Количество символов C, на 1 меньшее, чем в строке S и является
                                          результатом выполнения функции }
                                        B := Length(S) - 1;
                                        { Очищаем поток, чтобы записать в него данные
                                          и не оставить ничего лишнего }
                                        Size := 0;
                                        { Записываем данные в файл }
                                        Write(F[1], Length(F));
                                        { Освобождаем память за экземпляром TFileStream }
                                        Free
                                      end
                                    except
                                      { Если произошла какая-то ошибка, то возвращаем 0 }
                                      B := 0
                                    end
                                  end;


                                Но!!! Сказано - написать функцию. Значит такой вариант должен считаться неверным - объявления типа уже вне функции.


                                В общем:
                                Я согласен, мой код не поддерживает Юникод, но в предыдущих версиях он отлично работает.
                                В связи с туманным упоминанием юникода в тексте задания прошу мой вариант засчитать как подобает - 262 символа. Ну и что нибудь конечно за неподдержку юникода вычесть можно. Но это вернное решение задания и никак оно не тянет на 10 баллов.
                                Сообщение отредактировано: THandle -
                                  THandle, рассмотрим. Надо подождать автора задания.
                                  1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                  0 пользователей:


                                  Рейтинг@Mail.ru
                                  [ Script execution time: 0,0633 ]   [ 17 queries used ]   [ Generated: 19.05.24, 05:43 GMT ]