Публикация сайта на 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
Преобразует строку в целое число. Если строка не соответствует формату целого числа, генерируется исключение EConvertError
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. Занести результаты работы программы в отчет (вместе с формой).