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


CGI ввод


Теперь, мы знаем как создавать CGI приложение, которое может генерировать динамическую HTML страницу (или в действительности почти статическую). Но как  насчет ввода? Здесь более чем одно действие: мы должны проверять переменную DOS 'CONTENT LENGTH' что бы знать как много символов мы можем прочитать со стандартного ввода (если мы попытаемся читать больше чем есть, то мы повиснем навсегда). Конечно, это широко известный факт. Я написал компонент TBDosEnvironment чтобы вы могли иметь доступ до переменных среды DOS:

 unit DrBobDOS;

 interface

 uses

   SysUtils, WinTypes, WinProcs, Classes;

 type

   TBDosEnvironment = class(TComponent)

   public

   { Public class declarations (override) }

     constructor

Create(AOwner: TComponent); override;

     destructor

Destroy; override;

 

   private

   { Private field declarations }

     FDosEnvList: TStringList;

     procedure

DoNothing(const Value: TStringList);

 

   protected

   { Protected method declarations }

     Dummy: Word;

     function

GetDosEnvCount: Word;

 

   public

   { Public interface declarations }

     function

GetDosEnvStr(const Name: 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.

     }

 

   published

   { Published design declarations }

     property

DosEnvCount: Word read

GetDosEnvCount write Dummy;

     property

DosEnvList: TStringList read

FDosEnvList write DoNothing;

   end;

 

 implementation

 

   constructor

TBDosEnvironment.Create(AOwner: TComponent);

   var

     P: PChar;

   begin

     inherited

Create(AOwner);

     FDosEnvList := TStringList.Create;

   {$IFDEF WIN32}

     P := GetEnvironmentStrings;

   {$ELSE}

     P := GetDosEnvironment;

   {$ENDIF}

     while

P^ <> #0 do

     begin

       FDosEnvList.Add(StrPas(P));




Начало  Назад  Вперед



Книжный магазин