4 HttpApp
\82Ì
\83N
\83\8d\81[
\83\93\82â
\82»
\82Ì
\91¼
\8eG
\97p
\8aÖ
\90\94
8 //==================================================
10 //==================================================
14 procedure ExtractHttpFields(
15 const chrSep : TSysCharSet;
16 const chrWhite : TSysCharSet;
17 const strValue : string;
18 var strResult : TStringList;
19 unknownFlag : boolean = false
23 const strValue : string
27 const strValue : string
31 const strValue : string
35 const filename, mask : string
38 //
\83\81\83^
\83L
\83\83\83\89\83N
\83^
\82ð
\90³
\8bK
\95\
\8c»
\88µ
\82¢
\82É
\82È
\82ç
\82È
\82¢
\82æ
\82¤
\82É
\92u
\8a·
39 function RegExpEncode(
43 //==================================================
45 //==================================================
46 kYofKanji : TSysCharSet = [#$80..#$A0, #$E0..#$ff];
48 //==================================================
50 //==================================================
52 //
\82Æ
\82è
\82 \82¦
\82¸
\82Ì
\91ã
\97p
\95i
\82È
\82Ì
\82Å chrWhite
\82ð
\8dl
\97¶
\82µ
\82Ä
\82¢
\82È
\82¢
\82±
\82Æ
\82É
\92\8d\88Ó
\81I
\81I
\81I
53 procedure ExtractHttpFields(
54 const chrSep : TSysCharSet;
55 const chrWhite : TSysCharSet;
56 const strValue : string;
57 var strResult : TStringList;
58 unknownFlag : boolean = false
61 last, p, strLen : Integer;
64 strLen := Length( strValue );
71 if strValue[ p ] in chrSep then
73 strResult.Add( Copy( strValue, last, p - last ) );
82 strResult.Add( Copy( strValue, last, strLen - last + 1 ) );
87 const strValue : string
95 strLen := Length( strValue );
101 case strValue[ i ] of
104 strResult := strResult + '&';
108 strResult := strResult + '<';
112 strResult := strResult + '>';
116 strResult := strResult + '"';
120 if strValue[ i ] in kYofKanji then
122 strResult := strResult + strValue[ i ];
125 strResult := strResult + strValue[ i ];
138 const strValue : string
144 strResult := StringReplace( strValue, '<', '<', [rfReplaceAll] );
145 strResult := StringReplace( strResult, '>', '>', [rfReplaceAll] );
146 strResult := StringReplace( strResult, '"', '"', [rfReplaceAll] );
147 strResult := StringReplace( strResult, '&', '&', [rfReplaceAll] );
154 const strValue : string
162 kHexCode : array [0..15] of char = (
163 '0', '1', '2', '3', '4', '5', '6', '7',
164 '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' );
167 strLen := Length( strValue );
173 case strValue[ i ] of
174 '0' .. '9', 'a' .. 'z', 'A' .. 'Z', '*', '-', '.', '@', '_':
176 strResult := strResult + strValue[ i ];
180 b := Integer( strValue[ i ] );
181 strResult := strResult + '%'
182 + kHexCode[ b div $10 ]
183 + kHexCode[ b mod $10 ];
195 //
\82Æ
\82è
\82 \82¦
\82¸
\82Ì
\91ã
\97p
\95i
\82È
\82Ì
\82Å []
\82ð
\8eg
\82Á
\82½
\90³
\8bK
\95\
\8c»
\82ð
\8dl
\97¶
\82µ
\82Ä
\82¢
\82È
\82¢
\82±
\82Æ
\82É
\92\8d\88Ó
\81I
\81I
\81I
196 function MatchesMask(
197 const filename, mask : string
200 pName, pMask : Integer;
201 nameLen, maskLen : Integer;
205 nameLen := Length( filename );
206 maskLen := Length( mask );
210 while (pMask < maskLen) and (pName < nameLen) do
213 case mask[ pMask ] of
216 //
\82±
\82Ì 1
\8e\9a\82Í
\89½
\82à
\82µ
\82È
\82¢
221 // mask
\82ð
\91\96\8d¸
\82µ
\90Ø
\82Á
\82½
\82ç
\8fI
\97¹
222 if pMask >= maskLen then
228 // *
\82Ì
\8e\9f\82Ì
\95¶
\8e\9a\82ª
\97\88\82é
\82Ü
\82Å
\94ò
\82Î
\82·
229 chrUpMask := upcase( mask[ pMask ] );
230 while chrUpMask <> UpCase( filename[ pName ] ) do
233 if pName >= nameLen then
240 // *
\82Ì
\8e\9f\82Ì
\95¶
\8e\9a\82ª
\8c©
\82Â
\82©
\82ç
\82È
\82©
\82Á
\82½
\82ç
\8fI
\97¹
241 if chrUpMask <> UpCase( filename[ pName ] ) then
252 //
\82±
\82Ì 1
\95¶
\8e\9a\82ª
\88á
\82Á
\82½
\82ç
\8fI
\97¹
253 if UpCase( mask[ pMask ] ) <> UpCase( filename[ pName ] ) then
262 //
\8e\9f\82Ì
\95¶
\8e\9a\82Ö
268 if (pMask >= maskLen) and (pName >= nameLen) then
276 //
\83\81\83^
\83L
\83\83\83\89\83N
\83^
\82ð
\90³
\8bK
\95\
\8c»
\88µ
\82¢
\82É
\82È
\82ç
\82È
\82¢
\82æ
\82¤
\82É
\92u
\8a·
277 function RegExpEncode(
284 strResult := StringReplace( text, '\', '\\', [rfReplaceAll] );
285 strResult := StringReplace( strResult, '[', '\[', [rfReplaceAll] );
286 strResult := StringReplace( strResult, ']', '\]', [rfReplaceAll] );
287 strResult := StringReplace( strResult, '(', '\(', [rfReplaceAll] );
288 strResult := StringReplace( strResult, ')', '\)', [rfReplaceAll] );
289 strResult := StringReplace( strResult, '[', '\[', [rfReplaceAll] );
290 strResult := StringReplace( strResult, ']', '\]', [rfReplaceAll] );
291 strResult := StringReplace( strResult, '*', '\*', [rfReplaceAll] );
292 strResult := StringReplace( strResult, '?', '\?', [rfReplaceAll] );
293 strResult := StringReplace( strResult, '.', '\.', [rfReplaceAll] );
294 strResult := StringReplace( strResult, '+', '\+', [rfReplaceAll] );
295 strResult := StringReplace( strResult, '|', '\|', [rfReplaceAll] );
296 strResult := StringReplace( strResult, '^', '\^', [rfReplaceAll] );
297 strResult := StringReplace( strResult, '$', '\$', [rfReplaceAll] );