уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.

Что мы на сегодняшний день знаем из постов блога WebDelphi про Synapse? Основной материал крутится вокруг модуля HTTPSend и, соответственно, объекта THTTPSend – как скачать данные с ProgressBar’ом, как обработать события сокета, как работать с https и т.д. Была пара публикация про TSMTPSend и отправку писем через Gmail…и пожалуй все. Ну оно (по-крайней мере для меня) вполне объяснимо – пишу про то, что в данный конкретный момент меня интересует, ну или очень сильно интересует кого-либо из читателей.

Сегодня я хотел бы затронуть в статье ещё один модуль Synapse, который хотите того Вы или нет обязательно задействуется в работе библиотеки и, который иногда может послужить для Вас очень неплохим подспорьем в работе с веб-сервисами в Delphi – сэкономить время на поиск в Сети, да и просто немного сократить объем Вашей программы.

Речь сегодня пойдет о модуле SynaUtil библиотеки Synapse.

Как, может быть, понятно из названия, SynaUtil – это модуль содержащий вспомогательные методы для работы с библиотекой. Однако методы, представленные в этом модуле могут быть эффективно использованы и в других случаях.

Например, все мы в курсе про стандартный модуль StrUtils в Delphi (кто не в курсе – живо смотрите. что он из себя представляет) – модуль без сомнения полезный, позволяет более удобно организовать работу со строками, есть функции типа ReverseString и т.д., что избавляет нас лишний раз гуглить на темы “Как перевернуть строку?” или “Как заменить текст?” и т.д.Однако SynaUtil добавляет ещё ряд довольно полезных методов для работы со строками, например следующие:

{Удаляет слева/справа/ с обеих сторон только пробелы}
function TrimSPLeft(const S: string): string;
function TrimSPRight(const S: string): string;
function TrimSP(const S: string): string;
 
{Возвращает строку, находящуюся слева/справа от Delimiter}
function SeparateLeft(const Value, Delimiter: string): string;
function SeparateRight(const Value, Delimiter: string): string;

 

Это далеко не весь перечень функций работы со строками. Есть методы для вытягиваия из строки email-адресов, разборов URL, поиск положения какой-либо подстроки слева или справа от заданного символа и т.д. Функций для работы со строками масса. Конечно не все они являются чем-то новым и неизученным, но тем не менее использование их в своей программе, которая использует Synapse позволит Вам лишний раз не отвлекаться на поиск решений в Интернете — всё уже есть под рукой.

Теперь движемся далее. Вы в курсе про модуль DateUtils? Уверен, что большинство моих читателей знают этот модуль вдоль и поперек, а часть как минимум знает о его существовании в глубинах Delphi. Кто не знает про DateUtils – советую, опять же, открыть и посмотреть на внутренности модуля. Полезная вещь, когда речь заходит о работе с TDateTime и временем вообще. Но и здесь не все предусмотрено (разработчики – они ж не Всемогущие), например, не предусмотрена работа с датой/временем записанными согласно разным RFC. И тут Вам на помощь снова может прийти модуль Synapse SynaUtil. Что у него есть для работы с датами:

{Возвращает временную зону согласно настройкам ОС в минутах}
function TimeZoneBias: integer;
{временная зона в виде строки, например, "+0200".}
function TimeZone: string;
 
{Переводит дату в формат RFC-822. (Например,
 'Fri, 15 Oct 1999 21:14:56 +0200')}
function Rfc822DateTime(t: TDateTime): string;
{Переводит строку формата "m-d-y" в тип TDateTime}
function GetDateMDYFromStr(Value: string): TDateTime;
 
{Переводит различные строки, содержащие даты в тип Tdatetime.
 Формат строки может быть таким:
 ddd, d mmm yyyy hh:mm:ss
 ddd, d mmm yy hh:mm:ss
 ddd, mmm d yyyy hh:mm:ss
 ddd mmm dd hh:mm:ss yyyy
 Sun, 06 Nov 1994 08:49:37 GMT    ; RFC 822
 Sunday, 06-Nov-94 08:49:37 GMT   ; RFC 850
 Sun Nov  6 08:49:37 1994}         
 
function DecodeRfcDateTime(Value: string): TDateTime;

 

Особенно полезна для работы с различными API последняя функция — DecodeRfcDateTime.

Есть в этом модуле также и ряд других менее важных, но, тем не менее, полезных методов, например:

function ReadStrFromStream(const Stream: TStream; len: integer): AnsiString;
procedure WriteStrToStream(const Stream: TStream; Value: AnsiString);

В общем, при работе с Synapse никогда не стоит забывать про этот замечательный модуль SynaUtil. Экономьте свое время и силы, т.к. множество рутинных операций для которых нет методов в «штатных» модулях Delphi можно решить с использованием методом из вспомогательного модуля Synapse:)

Книжная полка

Описание: Рассмотрены практические вопросы по разработке клиент-серверных приложений в среде Delphi 7 и Delphi 2005 с использованием СУБД MS SQL Server 2000, InterBase и Firebird. Приведена информация о теории построения реляционных баз данных и языке SQL. Освещены вопросы эксплуатации и администрирования СУБД.
купить книгу delphi на ЛитРес
Описание: Рассмотрены малоосвещенные вопросы программирования в Delphi. Описаны методы интеграции VCL и API. Показаны внутренние механизмы VCL и приведены примеры вмешательства в эти механизмы. Рассмотрено использование сокетов в Delphi: различные режимы их работы, особенности для протоколов TCP и UDP и др.
купить книгу delphi на ЛитРес
0 0 голоса
Рейтинг статьи
уважаемые посетители блога, если Вам понравилась, то, пожалуйста, помогите автору с лечением. Подробности тут.
Подписаться
Уведомить о
2 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии
Nik
Nik
12/03/2011 00:58

Я бы ещё добавил про модуль synachar и очень полезные функции для работы с экзотическими кодировками.