Публикация сайта на Internet Information Server (IIS)

Для правильного функционирования сценариев необходимо проделать следующие шаги:

1. Откомпилировать программу в среде программирования с установками проекта «Готовая сборка» (Release).

2. В программах администрирования IIS «Диспетчер служб Интернета» или «Личный диспетчер Web» создать виртуальный каталог, разрешив в нем запускать программы.

3.

Рисунок 1. Создание виртуального каталога.

4. Скопировать в физический каталог на диске необходимые файлы.

5. Если создается не CGI-сценарий, а ISAPI-приложение, то необходимо перезапускать сервер приложения (не обязательно весь компьютер) после каждой замены динамической библиотеки .dll.

 

Обработка строк при помощи класса AnsiString

В C++Builder тип строк AnsiString реализован как класс, объявленный в фай­ле vcl/dstring.hи аналогичный типу длинных строк в Delphi. Это строки с нуле­вым символом в конце. При объявлении переменные типа AnsiStringинициализи­руются пустыми строками.

Для AnsiStringопределены операции отношения ==, !=, >, <, >=, <=. Сравне­ние производится с учетом регистра. Сравниваются коды символов, начиная с пер­вого, и если очередные символы не одинаковы, строка, содержащая символ с мень­шим кодом считается меньше. Если все символы совпали, но одна строка длиннее и в ней имеются еще символы, то она считается больше, чем более короткая.

Для AnsiStringопределены операции присваивания =, += и операция склеи­вания строк (конкатенации) +. Определена также операция индексации [ ]. Индек­сы начинаются с 1. Например, если S1 = "Привет", то Sl[l]вернет 'П', Sl[2]вер­нет 'р' и т.д.

Основные ме­тоды класса AnsiString(в описаниях методов через S1 обозначена строка, метод которой используется):

AnsiCompare

int __fastcall AnsiCompare(const AnsiString& rhs) const

Сравнивает данную строку S1 с rhs с учетом регистра. Срав­нение зависит от текущих установок Windows и может отли­чаться от сравнения, осуществляемого операциями сравне­ния. Возвращает значение > 0 при S1 > rhs, значение < 0 при SI < rhs и значение 0 при Sl = rhs

AnsiCompareIC

int __fastcall AnsiCompareIC(const AnsiString& rhs) const

Осуществляет сравнение, аналогичное AnsiCompare, но без учета регистра

AnsiLastChar

char* __fastcall AnsiLastChar() const

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

AnsiPos

int __fastcall AnsiPos(const AnsiString& subStr) const

Возвращает индекс первого символа первого вхождения subStr в S1. Индексы начинаются с 1. Если subStr не содер­жится в S1, возвращается 0. В отличие от Роз поддерживает многобайтные символы

AnsiString

__fastcall AnsiString(apryмeнт)

Конструктор класса. В зависимости от типа аргумента создает:

Отсутствует Пустую строку

const char* src Строку с нулевым символом в конце из массива символов

const AnsiString& src Копию AnsiString src

const char* src, unsigned char len Строку с нулевым символом в конце, являющуюся копией первых len сим­волов из src

const wchar_t* src Строку с нулевым символом в конце из массива src символов типа wchar_t

int src Строку с нулевым символом в конце из массива src целых значений символов

double src Строку с нулевым символом в конце из массива src значений символов с плавающей запятой; преобразуются первые 15 значащих разрядов

C_str

char* __fastcall c_str()const

Возвращает указатель на строку с нулевым символом в кон­це, содержащую те же символы, что в AnsiString

CurrToStr

static AnsiString __ fastcall CurrToStr(Currency value)

Преобразует значение value типа Currency в строку

CurrToStrF

static AnsiString __ fastcall CurrToStrF(Currency value, TstringFloatFormat format, int digits)

Преобразует значение value типа Currency в строку, исполь­зуя указанный формат преобразования чисел с плавающей запятой (см. разд. «TstringFloatFormat — тип»). Параметр определяет задаваемое число разрядов. Функция соответству­ет функции CurrToStrF с заданной точностью 19 разрядов

Delete

void __ fastcall Delete(int index, int count)

Удаляет из строки, начиная с позиции index число символов, равное count

FloatToStrF

static AnsiString __ fastcall FloatToStrF(long double value, TStringFloatFormat format, int precision, int digits)

Преобразует значение value с плавающей запятой в строку, используя указанный формат. Параметры precision и digits задают точность и число разрядов. Точность должна задаваться не более 7 для типа float, не более 15 для double и не более 18 для Extended. Число разрядов зависит от выбранного формата

Format

static AnsiString __ fastcall Format(const AnsiString& format, const TVarRec *args, int size)

Формирует строку, используя строку формата format и мас­сив аргументов args

FormatFloat

static AnsiString __fastcall FormatFloat (const AnsiString& format, const long double& value)

Преобразует значение value с плавающей запятой в строку, ис­пользуя указанный формат format.

Insert

void __fastcall Insert(const AnsiString& str, int index)

Вставляет в строку подстроку str, начиная с индекса index

IntToHex

static AnsiString __fastcall IntToHex(int value, int digits)

Преобразует значение value в строку, содержащую минимум digits шестнадцатеричных цифр

IsDelimiter

bool __fastcall IsDelimiter(const AnsiString& delimiters, int index) const

Возвращает true, если символ с индексом index является од­ним из разделителей, указанных в строке delimiters. Работа­ет и для многобайтных символов

IsEmpty

bool __fastcall IsEmpty() const

Возвращает true, если строка пустая

LastDelimiter

int __fastcall LastDelimiter(const AnsiString& delimiters) const

Возвращает последний из символов строки, входящих в стро­ку разделителей delimiters. Например, если

AnsiString s = "с : \\filename .ext"; то s .LastDelimiter ("\\ .:" ); вернет 12 (индекс символа точки)

Length

int __fastcall Length() const

Возвращает число символов в строке

LowerCase

AnsiString __fastcall LowerCaseQ const

Возвращает строку, в которой все символы приведены к ниж­нему регистру. Не влияет на исходную строку

Pos

int __fastcall Pos(const AnsiString& subStr) const

Возвращает индекс первого символа первого вхождения subStr в S1. Индексы начинаются с 1. Если subStr не содер­жится в S1, возвращается 0. В отличие от AnsiPos не поддер­живает многобайтные символы

SetLength

void __fastcall SetLength(int newLength)

Усекает строку до newLength символов. Если исходная стро­ка короче, то она не увеличивается

StringOfChar

static AnsiString __fastcall StringOfChar(char ch, int count)

Возвращает строку, в которой символ ch повторен count раз. Например,

AnsiString s = AnsiString: : StringOfChar ( 'А' , 10); задаст строке s значение «АААААААААА»

Substring

AnsiString __fastcall SubString(int index, int count) const

Возвращает подстроку, начинающуюся с символа в позиции index и содержащую count символов

ToDouble

double __fastcall ToDouble() const

Преобразует строку в число с плавающей запятой. Если стро­ка не соответствует формату числа с плавающей запятой, ге­нерируется исключение EConvertError

ToInt

int __fastcall ToInt() const

Преобразует строку в целое число. Если строка не соответст­вует формату целого числа, генерируется исключение ECon­vertError

ToIntDef

int __fastcall ToIntDef(int defaultValue) const

Преобразует строку в целое число. Если строка не соответст­вует формату целого числа, возвращается значение по умолчанию defaultValue

Trim

AnsiString __fastcall Trim() const

Возвращает строку, соответствующую исходной, но без пробель­ных символов до и после значащих символов

TrimLeft

AnsiString __fastcall TrimLeft() const

Возвращает строку, соответствующую исходной, но без началь­ных пробельных символов

TrimRight

AnsiString __fastcall TrimRight() const

Возвращает строку, соответствующую исходной, но без за­ключительных пробельных символов

Unique

void __fastcall Unique()

Делает строку уникальной, т.е. устанавливает число ссылок на нее (refcnt) в 1. Таким образом, на нее ссылается только один объект

UpperCase

AnsiString __fastcall UpperCase() const

Возвращает строку, в которой все символы приведены к верх­нему регистру. Не влияет на исходную строку

WideChar

wchar_t* __fastcall WideChar(wchar_t* dest, int destSize) const

Преобразует строку в массив символов dest типа wchar_t и возвращает указатель на этот массив

WideCharBuf-Size

int __fastcall WideCharBufSize() const

Возвращает размер буфера, требуемого для функции WideChar

 

Выполнение работы

1. Ознакомиться с теоретической справкой, приведенной в работе и с примером.

2. Создать форму и приложение в соответствии с заданием.

3. Опубликовать сайт на сервере.

4. Занести результаты работы программы в отчет (вместе с формой).