Apr27
категория:
Код автор:
admin |
Для календаря, который я делаю, мне понадобилось узнать, сколько недель затрагивает месяц. Решение пришло моментально:
Результат := Неделя_последнего_дня - Неделя_первого_дня;
В коде я оформил это так:
function GetWeekInMonth(ADate: TDate): Integer;
begin
Result := WeekOf(EndOftheMonth(ADate)) - WeekOf(StartOfTheMonth(ADate));
end;
Через полчаса понял, что решение не верное
.
Читать далее »
Apr26
категория:
Код автор:
admin |
Тестовый код:
var
W: WideString;
begin
W := 'я';
if W[1] = 'я' then
ShowMessage('Ok')
else
ShowMessage('Fail');
end;
Появляется надпись "Fail".
Читать далее »
Apr22
категория:
Код автор:
admin |
Хоть и ругают MS за большой объем операционной системы, но как много всего в ней. Например, в XP появилась функция MessageBoxTimeOut - это обычный MessageBox, но исчезающий через определенный промежуток времени.
Так как эта функция недокументированна, ее нельзя найти в модуле Windows.pas, но можно самому экспортировать:
MB_TIMEDOUT = 32000;
function MessageBoxTimeOut; external user32 name 'MessageBoxTimeoutA';
function MessageBoxTimeOutA; external user32 name 'MessageBoxTimeoutA';
function MessageBoxTimeOutW; external user32 name 'MessageBoxTimeoutW';
Читать далее »
Apr21
категория:
Код автор:
admin |
Когда я начинал изучение PHP, мне, после Delphi, понравилась одна функция - explode. Ее работа очень проста - разбить строку на подстроки. В Delphi, до этого, я делал примерно следующее:
var
sl: TStringList;
begin
sl := TStringList.Create;
try
sl.Text := 'str1, str2, str3, str4, str5';
sl.Delimiter := ',';
// тут обрабатываем sl.Items
finally
sl.Free;
end;
end;
Все бы хорошо, но... Что делать, если разделителей несколько? Например, как разбить такую строку:
language: russian; delphi, php, c++; Ivanov
и получить следующее:
language: russian
delphi
php
c++
Ivanov
Да, можно, конечно, разбить строку, а потом разбивать подстроки. Можно использовать регулярки. Но, как я уже писал - я противник использования, для таких случаев, регулярных выражений. Да и рекурсию/множество циклов использовать не люблю. И, как оказалось, не только я. В Delphi есть стандартная функция для разбиения строки на подстроки, совсем как в PHP
.
Читать далее »
Apr21
категория:
Код автор:
admin |
Иногда возникает необходимость сравнить строку с каким-то шаблоном, например соответствует ли домен (http://delphist.ru) маске доменов в зоне .ru? Подобную задачу можно решить многими способами, начиная от того, что в ручную проверять посимвольно, заканчивая преминением регулярных выражений.
Читать далее »