Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 6

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение темы Вопросы по Delphi (до версии 2009) - часть 5

Познаем сами, помогаем другим...
Обсуждаем вопросы, не связанные с юникоидными версиями Delphi - для этого есть соответствующая тема (см. ссылки ниже).


 
Правила топика:
    Прежде чем спрашивать:
  1. Желательно изучить вопрос, попытаться найти ответ в прилагаемых мануалах, хелпах и анализируя исходники.
  2. Выполнить поиск по топику (открыть "Версия для печати" и поискать ответ там).
  3. Применить фильтр по разделу "Прикладное программирование". Ответы на многие старые вопросы могли быть даны в отдельных темах.
  4. Продумайте вопрос. На поверхностные вопросы вы получите поверхностные ответы, или вообще ответов не получите.
  5. Желательно указывать версии используемого компилятора и операционной системы.
    Прежде чем отвечать:
  1. Если не можете помочь, не мешайте.
  2. Если уж вы отвечаете на вопрос, давайте ответ по сути.
  3. Если вы не уверены, так и говорите! Ошибочный, но авторитетно звучащий ответ хуже, чем отсутствие ответа.
  4. Задавайте дополнительные вопросы, чтобы получить больше информации.
  • Отсутствие ответа не равносильно игнорированию - иногда участники форума просто не знают ответ. Повторная посылка вопроса не приветствуется. Посты типа "неужели никто не знает ответа..." или "может мне все-таки кто-нибудь ответит" недопустимы.  
  • Все большие куски кода (более 5 строк) оформляем в тег [morе] дабы уменьшить размер поста. FAQ по тегу [morе].


    Некоторые "родственные" топики:
     
  • Вопросы по Delphi (версии 2009-2010 Weaver)
  • Вопросы по компонентам для Delphi, C++ Builder
  • Использование DevExpress
  • Вопросы по Ehlib
  • Компоненты и утилиты для Delphi/BCB/FreePascal/Lazarus - только Open Source
  • Коммерческие компоненты и утилиты для Delphi/BCB
  • кабак программистов :)
     
    См. также: Некоторые полезные ресурсы о Delphi
     
    И старайтесь, чтобы ваш код не попал сюда :)

  • Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 05:13 19-05-2010 | Исправлено: akaGM, 02:33 15-07-2020
    Maks150988



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите компонент или модуль или заголовочник для библиотеки, где есть код сжатия/распаковки zip файлов. Мне нужен простенький код или использование, допустим, есть zip файл, я его содержимое распаковываю куда мне надо и использую из него файлы как мне надо. Желательно без VCL прибамбасов и прочей хрени, а то как скачаешь, так требуется куча pas файлов из боекомплекта ради одной функции. Глаза разбегаются качать все, не знаю с чего начать.

    Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 22:24 21-01-2011
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maks150988
    Если бы не ваше ярое библиотеконенавистничество, то я бы вам посоветовал TurboPower Abbrevia. А так даже и не знаю.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 22:35 21-01-2011
    YuriyRR



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maks150988

    Цитата:
    Подскажите компонент где есть код сжатия/распаковки zip файлов

    VCLZipPro45 - пользую много лет

    Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 04:00 22-01-2011
    emo

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maks150988
    Смотрите TCompressionStream, TDecompressionStream в дельфи.
    Пример тут.
    http://www.swissdelphicenter.ch/torry/showcode.php?id=1617

    Всего записей: 373 | Зарегистр. 19-11-2003 | Отправлено: 06:46 22-01-2011
    Maks150988



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем спасибо, посмотрим на досуге что там и как. Нашел на днях ZLibNoStream юнит, кажись вкусная штука, думаю то что нужно.

    Всего записей: 836 | Зарегистр. 23-12-2006 | Отправлено: 10:29 24-01-2011
    Aleksandr N

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Del

    Всего записей: 1665 | Зарегистр. 25-02-2008 | Отправлено: 18:26 24-01-2011 | Исправлено: Aleksandr N, 18:05 26-01-2011
    mcdie



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Необходимо програмно отсканить документ и положить в блоб поле базы данных картинку. Может кто что посоветует.

    Всего записей: 145 | Зарегистр. 03-05-2006 | Отправлено: 13:51 27-01-2011 | Исправлено: mcdie, 13:52 27-01-2011
    tanaseduard



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mcdie
    TWAIN Development Tools

    Всего записей: 518 | Зарегистр. 21-11-2009 | Отправлено: 13:57 27-01-2011
    Sergey_Demchuk



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Кто нибудь знает как перевести на дельфийский эту формулу из Екселя?
    =ПРАВСИМВ(СУММПРОИЗВ(НЕ(ПСТР(R[-2]C;СТОЛБЕЦ(СМЕЩ(R1C1;0;0;1;ДЛСТР(R[-2]C)));1)=(ПСТР(R[-1]C;СТОЛБЕЦ(СМЕЩ(R2C1;0;0;1;ДЛСТР(R[-2]C)));1)))*1;10^(ДЛСТР(R[-2]C)-СТОЛБЕЦ(СМЕЩ(R1C1;0;0;1;ДЛСТР(R[-2]C))))
     
    Оно вроде как переводит из HEX в двоичный вид. У меня не выходит. Должно получится скажем из  
    ED в двоичном 11101101

    Всего записей: 3551 | Зарегистр. 16-12-2002 | Отправлено: 15:04 27-01-2011
    marser

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sergey_Demchuk
    А чем делфийская функция HexToBin не устраивает?

    Всего записей: 398 | Зарегистр. 29-03-2007 | Отправлено: 15:15 27-01-2011
    Sergey_Demchuk



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Я немного ошибся
    Клетка А1           =ДЕС.В.ДВ(250;8)     результат в клетке 11111010
    Клетка А2           =ДЕС.В.ДВ(ДЕНЬ("27.11.2011");8)     результат в клетке  00010111
    Клетка А3           ==ПРАВСИМВ(СУММПРОИЗВ(НЕ(ПСТР(A1;СТОЛБЕЦ(СМЕЩ($A$1;0;0;1;ДЛСТР(A1)));1)=(ПСТР(A2;СТОЛБЕЦ(СМЕЩ($A$2;0;0;1;ДЛСТР(A1)));1)))*1;10^(ДЛСТР(A1)-СТОЛБЕЦ(СМЕЩ($A$1;0;0;1;ДЛСТР(A1)))))+10^ДЛСТР(A1);ДЛСТР(A1))       результат 11101101
     
    А вот этот результат в последней клетке мне уже просто останется преобразовать в HEX, это просто. А вот эту формулу пока немогу правильно записать на паскале.
     

    Цитата:
    =ДЕС.В.ДВ(250;8)

    250 это Маска XOR
     
    Добавлено:
    Смотрю что ячейка А1 дополняет выбранные целочисленные биты ячейки А2. В екселе конечно такой функции нету,  
    Я так понимаю, что нужно написать что то типа  
    11111010 XOR 00010111 и в результате должно быть 11101101

    Всего записей: 3551 | Зарегистр. 16-12-2002 | Отправлено: 17:59 27-01-2011 | Исправлено: Sergey_Demchuk, 18:38 27-01-2011
    Sergey_Demchuk



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Пока вот пробую таким образом  
      IntDay:=IntToBin(StrToInt(AktDay),8);
      Maska:=IntToBin(250,8);
      IntDay:=IntDay xor Maska;
     
    Но вот операция XOR в дельфи для этогог типа переменных неприменима. Как правильнее поступить?

    Всего записей: 3551 | Зарегистр. 16-12-2002 | Отправлено: 01:01 28-01-2011
    YuriyRR



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sergey_Demchuk

    Цитата:
    Но вот операция XOR в дельфи для этогог типа переменных неприменима. Как правильнее поступить?

    Не надо переводить в строки до операции xor, оставь значения целыми, а после хоr уже делаешь inttobin

    Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 01:20 28-01-2011
    Sergey_Demchuk



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    YuriyRR
    Делал так, результат неверен. Пробовал так
    IntDayByte:=Str2Byte(IntDay) xor Str2Byte(Maska);
    Но результат тоже не устроил.
    Ну да я уже сам написал функцию вместо xor.
    Вопрос теперь в другом.
    Есть две даты. 01.01.1900 и 28.01.2011
    Вот как бы то вычислить долю в годах второй относительно первой....в екселе есть такая функция
    ДОЛЯГОДА(ДАТАЗНАЧ("01/01/1900"),"28.01.2011",1)
    Получается в результате 111.227
    Как в паскале что то не допер как вычислить. Функций для работы с датами море, но ни одна вроде не подходит, может пропустил какую то?

    Всего записей: 3551 | Зарегистр. 16-12-2002 | Отправлено: 14:47 28-01-2011 | Исправлено: Sergey_Demchuk, 14:48 28-01-2011
    ShIvADeSt



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sergey_Demchuk

    Цитата:
    Вот как бы то вычислить долю в годах второй относительно первой....в екселе есть такая функция
    ДОЛЯГОДА(ДАТАЗНАЧ("01/01/1900"),"28.01.2011",1)  

    Что такое доля в годах, если разность между 2011 и 1900, то что значит дробная часть?


    ----------
    И создал Бог женщину... Существо получилось злобное, но забавное...

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 16:57 28-01-2011 | Исправлено: ShIvADeSt, 17:03 28-01-2011
    YuriyRR



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sergey_Demchuk

    Цитата:
    Вот как бы то вычислить долю в годах второй относительно первой

    в  библиотеке RX есть
    procedure DateDiff(Date1, Date2: TDateTime; var Days, Months, Years: Word);

    Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 18:47 28-01-2011
    Sergey_Demchuk



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    С реестром как лучше работать? Нужно считать данные ключа типа REG_BINARY, изменить в нем кой-что и вернуть на место.

    Всего записей: 3551 | Зарегистр. 16-12-2002 | Отправлено: 21:48 28-01-2011 | Исправлено: Sergey_Demchuk, 00:17 29-01-2011
    ShIvADeSt



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sergey_Demchuk
    Попробуй TRegistry (не помню есть ли в нем REG_BINARY), если нет - то чистое АПИ, на нем точно пишется/читается что угодно. Если надо будет - у меня есть куски кода (если гугль не поможет)

    ----------
    И создал Бог женщину... Существо получилось злобное, но забавное...

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 03:24 29-01-2011
    Sergey_Demchuk



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

    Цитата:
    Что такое доля в годах, если разность между 2011 и 1900, то что значит дробная часть?

    значит что 6месяцев это 0,5 года или 111,5 если считать с 1900 года
     

    Цитата:
    TRegistry

    Да, там есть, но чтобы там поменть скажем F2 на E9 (как это в самом реестре можно сделать), я так понимаю надо конвертировать то что получил с помощью TRegistry в HEX?

    Всего записей: 3551 | Зарегистр. 16-12-2002 | Отправлено: 15:37 29-01-2011
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Sergey_Demchuk
    Не обязательно. Если у вас данные в строке, то можно так: "str[7]:=#$E9;"

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 16:36 29-01-2011
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 6


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru