Sites of the week

ads ads ads ads

Конфигурирование DNS-сервера BIND

Posted by admin | DNS, Unix | Вторник 12 Июнь 2007 15:25

Данное руководство описывает механизмы конфигурирования DNS-сервера BIND 8.х и выше. Рассматриваются не только вопросы настройки сервера, доменных зон, но и ряд функциональных возможностей, повышающих безопасность работы данного сервиса.
далее...

list-style-type

Posted by admin | CSS | Понедельник 11 Июнь 2007 23:11

Изменяет вид маркера для каждого элемента списка. Этот атрибут используется только в случае, когда значение свойства list-style-image установлено как none. Маркеры различаются для маркированного списка (тег UL) и нумерованного (тег OL).

далее...

Функция перевода SYSTEMTIME в TDateTime

Posted by admin | Delphi, Дата и время | Понедельник 11 Июнь 2007 22:00

Данная функция переводит тип данных SYSTEMTIME в TDateTime:

 
function SystemTime2DateTime(const SystemTime : TSystemTime; var DateTime : TDateTime ) : Boolean;
var I : Integer;
_Day : Integer;
DayTable: PDayTable;
begin
Result := False;
DateTime := 0.0;
DayTable := @MonthDays[IsLeapYear(SystemTime.wYear)];
with SystemTime do
if {(wYear >= 0) !always true! and} (wYear <= 9999) and
{(wMonth >= 1) and !otherwise can not convert time only!}
(wMonth <= 12) and
{(wDay >= 1) and !otherwise can not convert time only!}
(wDay <= DayTable^[wMonth]) and                                      //
(wHour < 24) and (wMinute < 60) and (wSecond < 60) and (wMilliSeconds < 1000) then   //
begin
_Day := wDay;
for I := 1 to wMonth - 1 do
Inc(_Day, DayTable^[I]);
I := wYear - 1;
//--------------- by Vadim Petrov ------++
if I<0 then i := 0;                     //
//--------------------------------------++
DateTime := I * 365 + I div 4 - I div 100 + I div 400 + _Day
+ (wHour * 3600000 + wMinute * 60000 + wSecond * 1000 + wMilliSeconds) / MSecsPerDay;
Result := True;
end;
end;

Перевод TDateTime в SYSTEMTIME

Posted by admin | Delphi, Дата и время | Понедельник 11 Июнь 2007 21:56

Данная функция переводит тип данных TDateTime в SYSTEMTIME

 
procedure _DateTimeToSystemTime(DateTime: TDateTime; var SystemTime: TSystemTime);
var
FT:TFileTime;
begin
Int64(FT):=Round((DateTime+109205.0)*864000000000.0);
FileTimeToSystemTime(FT,SystemTime);
end;

Delphi: Разность дат

Posted by admin | Delphi | Воскресенье 10 Июнь 2007 15:19

Данный пример реализует функцию для получения разности двух дат в формате DateTime. На выходе мы получаем количество дней, месяцев, лет.

 
function IsLeapYear(AYear: Integer): Boolean;
begin
Result := (AYear mod 4 = 0) and ((AYear mod 100 <> 0) or (AYear mod 400 = 0));
end;
 
function DaysPerMonth(AYear, AMonth: Integer): Integer;
const
DaysInMonth: array[1..12] of Integer =
(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
begin
Result := DaysInMonth[AMonth];
if (AMonth = 2) and IsLeapYear(AYear) then Inc(Result); { leap-year Feb is special }
end;
 
procedure DateDiff(Date1, Date2: TDateTime; var Days, Months, Years: Word);
var
DtSwap: TDateTime;
Day1, Day2, Month1, Month2, Year1, Year2: Word;
begin
if Date1 > Date2 then begin
DtSwap := Date1;
Date1 := Date2;
Date2 := DtSwap;
end;
DecodeDate(Date1, Year1, Month1, Day1);
DecodeDate(Date2, Year2, Month2, Day2);
Years := Year2 - Year1;
Months := 0;
Days := 0;
if Month2 < Month1 then begin
Inc(Months, 12);
Dec(Years);
end;
Inc(Months, Month2 - Month1);
if Day2 < Day1 then begin
Inc(Days, DaysPerMonth(Year1, Month1));
if Months = 0 then begin
Dec(Years);
Months := 11;
end
else Dec(Months);
end;
Inc(Days, Day2 - Day1);
end;

Компоненты ADO

Posted by admin | Delphi, Базы данных, Контролы | Воскресенье 10 Июнь 2007 14:12

В Delphi 5.0 появились компоненты для работы с Microsoft® ActiveX® Data Objects (далее ADO). ADO это технология стандартного обращения к реляционным данным от Microsoft. Эта технология аналогична BDE по назначению и довольно близка по возможностям.

далее...

PHP: sprintf

Posted by admin | PHP, Функции | Воскресенье 10 Июнь 2007 13:58

(PHP 3, PHP 4 , PHP 5)

sprintf -- Возвращает отформатированную строку

Описание

[cc lang="php"]

string sprintf ( string format [, mixed args])

Возвращает строку, созданную с использованием строки формата format.

Строка формата состоит из директив: обычных символов (за исключением %), которые копируются в результирующую строку, и описатели прреобразований, каждый из которых заменяется на один из параметров. Это относится также к fprintf(), sprintf() и printf().

Каждый описатель прреобразований состоит из знака процента (%), за которым следует один или более дополнительных элементов (в том порядке, в котором они здесь перечислены):

  1. Необязательный описатель заполнения, который определяет, какой символ будет использоваться для дополнения результата до необходимой длины. Это может быть пробел или 0. По умолчанию используется пробел. Альтернативный символ может быть указан с помощью '. См. примеры ниже.
  2. Необязательный описатель выравнивания, определяющий выранивание влево или вправо. По умолчанию выравнивается вправо, - используется для выравнивания влево.
  3. Необязательное число, описатель ширины, определяющий минимальное число символов, которое будет содержать результат этого преобразования.
  4. Необязательный описатель точности, определяющий, сколько десятичных разрядов отображать для чисел с плавающей точкой. Имеет смысл только для числовых данных типа float. (Для форматирования чисел удобно также использовать функцию number_format().)
  5. Описатель типа, определяющий, как трактовать тип данных аргумента. Допустимые типы:
  • % - символ процента. Аргумент не используется.
  • b - аргумент трактуется как целое и выводится в виде двоичного числа.
  • c - аргумент трактуется как целое и выводится в виде символа с соответствующим кодом ASCII.
  • d - аргумент трактуется как целое и выводится в виде десятичного числа со знаком.
  • u - аргумент трактуется как целое и выводится в виде десятичного числа без знака.
  • f - аргумент трактуется как float и выводится в виде десятичного числа с плавающей точкой.
  • o - аргумент трактуется как целое и выводится в виде восьмеричного числа.
  • s - аргумент трактуется как строка.
  • x - аргумент трактуется как целое и выводится в виде шестнадцатиричного числа (в нижнем регистре букв).
  • X - аргумент трактуется как целое и выводится в виде шестнадцатиричного числа (в верхнем регистре букв).

Начиная с PHP 4.0.6 в строке формата поддерживается нумерация и изменение порядка параметров. Например:

Пример 1. Изменение порядка параметров

[cc lang="php"]
$format = "There are %d monkeys in the %s";
printf($format, $num, $location);

Этот код выведет "There are 5 monkeys in the tree". Теперь представьте, что строка формата содержится в отдельном файле, который потом будет переведен на другой язык, и мы переписываем ее в таком виде:

Пример 2. Изменение порядка параметров

[cc lang="php"]

$format = "The %s contains %d monkeys";
printf($format, $num, $location);

Появляется проблема: порядок описателей преобразования не соответствует порядку аргументов. Мы не хотим менять код, и нам нужно указать, какому аргументу соответствует тот или иной описатель преобразования.

Пример 3. Изменение порядка параметров

[cc lang="php"]
$format = "The %2\$s contains %1\$d monkeys";
printf($format, $num, $location);

Нумерация аргументов имеет еще одно применение: она позволят вывести один и тот же аргумент несколько раз без передачи функции дополнительных параметров.

Пример 4. Изменение порядка параметров

[cc lang="php"]
$format = "The %2\$s contains %1\$d monkeys.
That's a nice %2\$s full of %1\$d monkeys.";
printf($format, $num, $location);

См. также описание функций printf(), sscanf(), fscanf(), vsprintf() и number_format().
Пример 5. sprintf(): заполнение нулями

[cc lang="php"]

$isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);

Пример 6. sprintf(): форматирование денежных величин

[cc lang="php"]

$money1 = 68.75;
$money2 = 54.35;
$money = $money1 + $money2;
// echo $money выведет "123.1";
$formatted = sprintf("%01.2f", $money);
// echo $formatted выведет "123.10"

Цветной DBGrid

Posted by admin | Delphi, Базы данных, Контролы | Воскресенье 10 Июнь 2007 12:33

Данный пример иллюстрирует как стредствами Borland Delphi создать DBGrid с цвеными ячейками.

 
// Функция раскрашивания DBGrid (объявлена как private)
procedure TForm1.ColorGrid(dbgIn: TDBGrid; qryIn: TQuery; const Rect: TRect;
DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
iValue: LongInt;
begin
// color only the first field
if (DataCol = 0) then
begin
//Проверяем значение поля и присваеваем цвет
 
iValue := qryIn.FieldByName(′HINWEIS_COLOR′).AsInteger;
case iValue of
1: dbgIn.Canvas.Brush.Color := clGreen;
2: dbgIn.Canvas.Brush.Color := clLime;
3: dbgIn.Canvas.Brush.Color := clYellow;
4: dbgIn.Canvas.Brush.Color := clRed;
end;
 
dbgIn.DefaultDrawColumnCell(Rect, DataCol, Column, State);
 
end;
end;
 
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
ColorGrid(DBGrid1, Query1, Rect, DataCol, Column, State);
end;

Создание плагина для Wordpress

Posted by admin | Создание плагинов | Четверг 7 Июнь 2007 18:20

Вплоть до версии Wordpress 1.2, если вы хотели изменить его поведение, вам нужно было редактировать (или «хакать») исходный код Wordpress. Однако, в большинстве текущих версий Wordpress вы можете с легкостью модифицировать функциональность ядра Wordpress или добавлять новую с помощью «плагинов». Основная идея использования расширяемой архитектуры состоит в том, чтобы при сохранении ядра относительно простым, но достаточно гибким, каждый аспект его ввода и вывода мог быть изменен с помощью плагинов.

далее...

Delphi: Как создать базу MS ACCESS (mdb)

Posted by admin | Delphi, Базы данных | Четверг 7 Июнь 2007 12:32

Данные пример показывает как программно создать базу MS ACCESS (mdb-файл) на Delphi.

 
uses
ComObj;
 
// You can with ADOX (Microsoft ADO Extensions for DDL and Security),
 
function CreateAccessDatabase(FileName: string): string;
var
cat: OLEVariant;
begin
Result := '';
try
cat := CreateOleObject('ADOX.Catalog');
cat.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + FileName + ';');
cat := NULL;
except
on e: Exception do Result := e.message;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
CreateAccessDatabase('c:\Testdb.mdb');
end;
Страница 4 из 8«12345678»