Подскажите компонент или модуль или заголовочник для библиотеки, где есть код сжатия/распаковки zip файлов. Мне нужен простенький код или использование, допустим, есть zip файл, я его содержимое распаковываю куда мне надо и использую из него файлы как мне надо. Желательно без VCL прибамбасов и прочей хрени, а то как скачаешь, так требуется куча pas файлов из боекомплекта ради одной функции. Глаза разбегаются качать все, не знаю с чего начать.
» Вопросы по Delphi (до версии 2009) - часть 6
Maks150988
Если бы не ваше ярое библиотеконенавистничество, то я бы вам посоветовал TurboPower Abbrevia. А так даже и не знаю.
Если бы не ваше ярое библиотеконенавистничество, то я бы вам посоветовал TurboPower Abbrevia. А так даже и не знаю.
Maks150988
Цитата:
VCLZipPro45 - пользую много лет
Цитата:
Подскажите компонент где есть код сжатия/распаковки zip файлов
VCLZipPro45 - пользую много лет
Maks150988
Смотрите TCompressionStream, TDecompressionStream в дельфи.
Пример тут.
http://www.swissdelphicenter.ch/torry/showcode.php?id=1617
Смотрите TCompressionStream, TDecompressionStream в дельфи.
Пример тут.
http://www.swissdelphicenter.ch/torry/showcode.php?id=1617
Всем спасибо, посмотрим на досуге что там и как. Нашел на днях ZLibNoStream юнит, кажись вкусная штука, думаю то что нужно.
Необходимо програмно отсканить документ и положить в блоб поле базы данных картинку. Может кто что посоветует.
mcdie
TWAIN Development Tools
TWAIN Development Tools
Кто нибудь знает как перевести на дельфийский эту формулу из Екселя?
=ПРАВСИМВ(СУММПРОИЗВ(НЕ(ПСТР(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
=ПРАВСИМВ(СУММПРОИЗВ(НЕ(ПСТР(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
Sergey_Demchuk
А чем делфийская функция HexToBin не устраивает?
А чем делфийская функция HexToBin не устраивает?
Я немного ошибся
Клетка А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 это Маска XOR
Добавлено:
Смотрю что ячейка А1 дополняет выбранные целочисленные биты ячейки А2. В екселе конечно такой функции нету,
Я так понимаю, что нужно написать что то типа
11111010 XOR 00010111 и в результате должно быть 11101101
Клетка А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
Пока вот пробую таким образом
IntDay:=IntToBin(StrToInt(AktDay),8);
Maska:=IntToBin(250,8);
IntDay:=IntDay xor Maska;
Но вот операция XOR в дельфи для этогог типа переменных неприменима. Как правильнее поступить?
IntDay:=IntToBin(StrToInt(AktDay),8);
Maska:=IntToBin(250,8);
IntDay:=IntDay xor Maska;
Но вот операция XOR в дельфи для этогог типа переменных неприменима. Как правильнее поступить?
Sergey_Demchuk
Цитата:
Не надо переводить в строки до операции xor, оставь значения целыми, а после хоr уже делаешь inttobin
Цитата:
Но вот операция XOR в дельфи для этогог типа переменных неприменима. Как правильнее поступить?
Не надо переводить в строки до операции xor, оставь значения целыми, а после хоr уже делаешь inttobin
YuriyRR
Делал так, результат неверен. Пробовал так
IntDayByte:=Str2Byte(IntDay) xor Str2Byte(Maska);
Но результат тоже не устроил.
Ну да я уже сам написал функцию вместо xor.
Вопрос теперь в другом.
Есть две даты. 01.01.1900 и 28.01.2011
Вот как бы то вычислить долю в годах второй относительно первой....в екселе есть такая функция
ДОЛЯГОДА(ДАТАЗНАЧ("01/01/1900"),"28.01.2011",1)
Получается в результате 111.227
Как в паскале что то не допер как вычислить. Функций для работы с датами море, но ни одна вроде не подходит, может пропустил какую то?
Делал так, результат неверен. Пробовал так
IntDayByte:=Str2Byte(IntDay) xor Str2Byte(Maska);
Но результат тоже не устроил.
Ну да я уже сам написал функцию вместо xor.
Вопрос теперь в другом.
Есть две даты. 01.01.1900 и 28.01.2011
Вот как бы то вычислить долю в годах второй относительно первой....в екселе есть такая функция
ДОЛЯГОДА(ДАТАЗНАЧ("01/01/1900"),"28.01.2011",1)
Получается в результате 111.227
Как в паскале что то не допер как вычислить. Функций для работы с датами море, но ни одна вроде не подходит, может пропустил какую то?
Sergey_Demchuk
Цитата:
Что такое доля в годах, если разность между 2011 и 1900, то что значит дробная часть?
Цитата:
Вот как бы то вычислить долю в годах второй относительно первой....в екселе есть такая функция
ДОЛЯГОДА(ДАТАЗНАЧ("01/01/1900"),"28.01.2011",1)
Что такое доля в годах, если разность между 2011 и 1900, то что значит дробная часть?
Sergey_Demchuk
Цитата:
в библиотеке RX есть
procedure DateDiff(Date1, Date2: TDateTime; var Days, Months, Years: Word);
Цитата:
Вот как бы то вычислить долю в годах второй относительно первой
в библиотеке RX есть
procedure DateDiff(Date1, Date2: TDateTime; var Days, Months, Years: Word);
С реестром как лучше работать? Нужно считать данные ключа типа REG_BINARY, изменить в нем кой-что и вернуть на место.
Sergey_Demchuk
Попробуй TRegistry (не помню есть ли в нем REG_BINARY), если нет - то чистое АПИ, на нем точно пишется/читается что угодно. Если надо будет - у меня есть куски кода (если гугль не поможет)
Попробуй TRegistry (не помню есть ли в нем REG_BINARY), если нет - то чистое АПИ, на нем точно пишется/читается что угодно. Если надо будет - у меня есть куски кода (если гугль не поможет)
Цитата:
Что такое доля в годах, если разность между 2011 и 1900, то что значит дробная часть?
значит что 6месяцев это 0,5 года или 111,5 если считать с 1900 года
Цитата:
TRegistry
Да, там есть, но чтобы там поменть скажем F2 на E9 (как это в самом реестре можно сделать), я так понимаю надо конвертировать то что получил с помощью TRegistry в HEX?
Sergey_Demchuk
Не обязательно. Если у вас данные в строке, то можно так: "str[7]:=#$E9;"
Не обязательно. Если у вас данные в строке, то можно так: "str[7]:=#$E9;"
А еслимне поиск надо сделать, чтобы знать где менять?
Sergey_Demchuk
Для этого есть функция Pos:
Код: position := Pos(#$F2, str);
if position > 0 then
str[position] := #$E9;
Для этого есть функция Pos:
Код: position := Pos(#$F2, str);
if position > 0 then
str[position] := #$E9;
Frodo_Torbins
Меня сбивает с толку не способ как искать, а именно как в реест внести то что мне нужно. На Inno установщике мне приходится, если значение в реестре в бинарном виде, получить значение из реестра с помощью функции RegQueryBinaryValue в строковом виде, потом переводить все в HEX, затем менять что мне нужно, потом обратно в строковый вид из HEX и прямиком в реестр,
Меня сбивает с толку не способ как искать, а именно как в реест внести то что мне нужно. На Inno установщике мне приходится, если значение в реестре в бинарном виде, получить значение из реестра с помощью функции RegQueryBinaryValue в строковом виде, потом переводить все в HEX, затем менять что мне нужно, потом обратно в строковый вид из HEX и прямиком в реестр,
Sergey_Demchuk
А зачем вам конвертация в HEX и обратно? Со строкой можно проделывать все те же операции ничего не конвертируя.
А зачем вам конвертация в HEX и обратно? Со строкой можно проделывать все те же операции ничего не конвертируя.
Привет всем. Необходимо написать прогу, выполняющую SQL скрипты из базы Oracle. Скрипты постоянные, содержатся в таблице в виде анонимных блоков. Как их оттуда запустить? Пишу на Delphi 6.0, с базами ни разу не работал.
Гденибудь можно найти мануал по DUnit на русском языке в котором будет написано что нибудь кроме "Ну впринципе там все точно также как и в JUnit поэтому особого смысла рассусоливать нету"
Obscenety Используй ADO, и можешь работать с любой базой данных. Для начала почитай здесь: Компоненты Delphi для поддержки ADO, все остальное потом найдешь сам в сети.
vlary, то что через ADO это понятно. Непонятно, как запускать запрос из базы? По техзаданию скрипт не должен быть включён в тело программы, необходимо иметь возможность добавления или исключения скриптов конечным пользователем без именения исходного кода. Так бы конечно написал весь запрос в TQuery и все дела. Анонимный блок это что-то типа хранимой процедуры, как я понял?
Obscenety
Цитата:
Давайте я Вам подарю лицензию на Delphi 7.0 у меня их почему-то две. Ребята давайте потихоньку 60 забудем.
Цитата:
Пишу на Delphi 6.0
Давайте я Вам подарю лицензию на Delphi 7.0 у меня их почему-то две. Ребята давайте потихоньку 60 забудем.
Obscenety
Цитата:
Прочитайте SQL запросом PL-SQL блок из таблицы и выполните его, используя TADOQuery.
Цитата:
Скрипты постоянные, содержатся в таблице в виде анонимных блоков.
Прочитайте SQL запросом PL-SQL блок из таблицы и выполните его, используя TADOQuery.
Привет всем. У меня такой вопрос:
Есть в программе классы Class1 и Class2, причем Class2 содержит массив объектов типа Class1. Теперь я хочу в процедурах Class1 использовать переменные из Class2. Как это сделать? Допустимо ли это в принципе?
Есть в программе классы Class1 и Class2, причем Class2 содержит массив объектов типа Class1. Теперь я хочу в процедурах Class1 использовать переменные из Class2. Как это сделать? Допустимо ли это в принципе?
Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
Предыдущая тема: MPO File
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.