Bob Swart - Интернет решения от доктора Боба

Здесь есть возможность читать онлайн «Bob Swart - Интернет решения от доктора Боба» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Интернет решения от доктора Боба: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Интернет решения от доктора Боба»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Интернет решения от доктора Боба — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Интернет решения от доктора Боба», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

2.2.3. Переменные среды

Стандартное CGI приложение должно анализировать переменные среды для определения метода передачи и размера посылаемой информации через стандартный ввод. Для получения списка переменных среды я всегда использую простой компонент, который я написал очень давно и компилирую его с помощью директив условной компиляции, как в Дельфи 1, так и в Дельфи 2.

unitTBDosEnv;

interface

uses

SysUtils, WinTypes, WinProcs, Classes;

type

TBDosEnvironment = class(TComponent)

public

{ Public class declarations (override) }

constructorCreate(AOwner: TComponent); override;

destructorDestroy; override;

private

{ Private field declarations }

FDosEnvList: TStringList;

protected

{ Protected method declarations }

functionGetDosEnvCount: Word;

public

{ Public interface declarations }

functionGetDosEnvStr( ConstName: String): String;

{ This function is a modified version of the GetEnvVar function that

appears in the WinDos unit that comes with Delphi. This function's

interface uses Pascal strings instead of null-terminated strings.

}

propertyDosEnvCount: Word readGetDosEnvCount;

propertyDosEnvList: TStringList readFDosEnvList;

end;

implementation

constructorTBDosEnvironment.Create(AOwner: TComponent);

varP: PChar;

i: Integer;

begin

inheritedCreate(AOwner);

FDosEnvList := TStringList.Create;

{$IFDEF WIN32}

P := GetEnvironmentStrings;

{$ELSE}

P := GetDosEnvironment; { Win API }

{$ENDIF}

i := 0;

whileP^ <> #0 do

begin

Inc(i);

FDosEnvList.Add(StrPas(P));

Inc(P, StrLen(P)+1) { Fast Jump to Next Var }

end;

end {Create} ;

destructorTBDosEnvironment.Destroy;

begin

FDosEnvList.Free;

FDosEnvList := nil;

inheritedDestroy

end {Destroy} ;

functionTBDosEnvironment.GetDosEnvCount: Word;

begin

Result := 0;

ifAssigned(FDosEnvList) thenResult := FDosEnvList.Count

end {GetDosEnvCount} ;

functionTBDosEnvironment.GetDosEnvStr( ConstName: String): String;

vari: Integer;

Tmp: String;

begin

i := 0;

Result := '';

ifAssigned(FDosEnvList) then whilei do

begin

Tmp := FDosEnvList[i];

Inc(i);

ifPos(Name,Tmp) = 1 then

begin

Delete(Tmp,1,Length(Name));

ifTmp[1] = '=' then

begin

Delete(Tmp,1,1);

Result := Tmp;

i := FDosEnvList.Count { end while-loop }

end

end

end

end {GetDosEnvStr} ;

end.

Данный компонент получает список переменных среды во время своего создания. Свойство DosEnvCount и DosEnvList является свойством только для чтения и поэтому лучше его создавать его в на ходу, а не бросать на форму, так как берется только 'свежий' список переменных среды, а не загружается из .DFM файла).

2.2.4. Анализ

Среди переменных среды есть переменная с именем REQUEST_METHOD. Она должна иметь значение POST для нашего примера (Я не люблю другие методы). Затем мы должны найти размер информации, которая передана нам. Для этого мы должны получить переменную CONTENT_LENGTH. Сама информация поступает к нам через стандартный ввод (без маркера конца файла, поэтому наша задача не пытаться читать больше, чем нам передано). Данные поступающие через стандартный ввод имеют следующую форму FIELD=VALUE и разделяется с помощью символа '&'. Например: AUTHOR="Bob_Swart"&. Поскольку мы имеем весь входной поток, как одну длинную строку, то мы можем быстро найти параметр AUTHOR с помощью следующей функции:

var

Data: String;

functionValue(Const Field: ShortString): ShortString;

vari: Integer;

begin

Result := '';

i := Pos(Field+'=',Data);

ifi = 0 then

begin

Inc(i,Length(Field)+1);

whileData[i] <> '&' do

begin

Result := Result + Data[i];

Inc(i)

end

end

end {Value} ;

Следующий шаблон кода показывает как динамически создать переменную TBDosEnvironment, прочитать информацию со стандартного ввода и получить строку готовую для анализа переменных формы.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Интернет решения от доктора Боба»

Представляем Вашему вниманию похожие книги на «Интернет решения от доктора Боба» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


libcat.ru: книга без обложки
Анонимные Алкоголики
Боб Шоу - Bob Shaw
Боб Шоу
Отзывы о книге «Интернет решения от доктора Боба»

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

x