(FieldDefs[i].FieldClass = TVarBytesField) then
FieldTypes[i] := sf_UnKnown { ignore }
end
finally
Free
end;
2.1.4. ΠΠ°ΠΏΠΈΡΠΈ
ΠΠΎΡΠ»Π΅ Π°Π½Π°Π»ΠΈΠ·Π° ΠΏΠΎΠ»Π΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠΉΡΠΈΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΌΡ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌ HTML-ΡΡΡΠ°Π½ΠΈΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»Π΅ΠΉ ΠΊΠ°ΠΊ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅Π³ <H2> Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΡΠ΅Π³ <H3> Π΄Π»Ρ Π½Π΅ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΏΠΎΠ»Π΅ΠΉ. ΠΠΎΠ΄ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ Π²ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»Ρ Π² ΡΠ΅ΠΊΡΡ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΈΡ Π² HTML-ΡΠ°ΠΉΠ»:
while not Eof do
begin
Inc(RecNr);
System.Assign(f,FileName+'/'+PageNr(RecNr));
System.Rewrite(f);
writeln(f,'<HTML>');
writeln(f,'<HEADER>');
writeln(f,'<TITLE>');
writeln(f,Format('%s %d/%d',[ATable,RecNr,RecordCount]));
writeln(f,'</TITLE>');
writeln(f,'</HEADER>');
writeln(f,'<BODY>');
{ print fields }
for i:=0 to Pred(FieldCount) do
if FieldTypes[i] > sf_UnKnown then
begin
if (keys >= i) then writeln(f,'<H2>')
else writeln(f,'<H3>');
writeln(f,FieldDefs[i].Name,':');
if (keys >= i) then writeln(f,'</B><BR>') { </H2> }
else writeln(f,'</B><BR>'); { </H3> }
if FieldTypes[i] = sf_Memo then
writeMemo(f,Fields[i])
else writeln(f,Fields[i].AsString);
if (keys = i) then writeln(f,'<HR>');
end;
writeln(f,'</BODY>');
writeln(f,'</HTML>');
System.Close(f);
Next
end;
ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π·Π΄Π΅ΡΡ ΠΎΠ΄Π½ΠΎ Π½Π΅Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ HTML: Π΄Π»Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ </B>, Π½ΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ <BR> Π΄Π»Ρ ΡΠ°Π·ΡΡΠ²Π° ΡΡΡΠΎΠΊΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, ΠΈ ΡΠ΅ΠΊΡΡ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΉΡΡ ΠΏΡΠ°Π²Π΅Π΅ ΠΈ Π½ΠΈΠΆΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΡΡΠΈΡΠ΅, ΡΡΠΎ ΡΡΠΎ Π½Π΅Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΈ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ ΡΠ°ΡΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π² </H2> ΠΈ </H3> Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΆΠ΅Π»Π°Π΅ΡΠ΅ ΠΆΠΈΡΡ Π½Π° ΡΠ³Π»Π΅ <ΡΠΌΠΎΡ>. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ Π»ΠΈΡΡΠΈΠ½Π³ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· ΠΌΠ΅ΠΌΠΎ ΠΏΠΎΠ»Ρ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π΅Π³ΠΎ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ». Π Π½Π°ΠΊΠΎΠ½Π΅Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΌΡ ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, ΠΏΠΎΠΌΠ½Ρ ΡΡΠΎ HTML ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Ρ ΡΡΡΠΎΠΊΠΈ ΠΈ ΠΏΡΠΎΠ±Π΅Π»Ρ.
procedure WriteStream(var f: Text; var Stream: TMemoryStream);
const
LF = #10;
BufSize = 8192; { bigger memos are chopped off!! }
var
Buffer: Array[0..Pred(BufSize)] of Char;
i: Integer;
begin
Stream.Seek(0,0);
if Stream.Size > 0 then
begin
Stream.Read(Buffer,Stream.Size);
for i:=0 to Pred(Pred(Stream.Size)) do
begin
{ empty line converted to <P> break }
if (Buffer[i] = LF) and (Buffer[i+1] = LF) then writeln(f,'<P>');
{ strip multiple spaces (are ignored anyway) }
if not ((Buffer[i] = ' ') and (Buffer[i+1] = ' ')) then write(f,Buffer[i]);
{ start new sentence on a new line (but only in HTML doc itself }
if (Buffer[i] = '.') and (Buffer[i+1] = ' ') then writeln(f)
end;
writeln(f,Buffer[Pred(Stream.Size)])
end
else writeln(f,' ') { empty memo }
end {WriteStream};
procedure WriteMemo(var f: Text; Field: TField);
var Stream: TMemoryStream;
begin
Stream := TMemoryStream.Create;
(Field AS TMemoField).SaveToStream(Stream);
WriteStream(f,Stream);
Stream.Free
end {WriteMemo};
2.1.5. Π‘ΡΡΠ°Π½ΠΈΡΡ
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² HTML ΡΡΡΠ°Π½ΠΈΡΡ, Π½Π°ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π½ΡΠΆΠ΅Π½ ΠΏΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ. ΠΠΎΠΏΡΡΡΠΈΠΌ, ΡΡΠΎ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ Π½Π΅ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΠΎΠ»Π΅Π΅ 100,000 Π·Π°ΠΏΠΈΡΠ΅ΠΉ (ΠΡΠ»ΠΈ ΡΠ°Π±Π»ΠΈΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ²ΡΡΠ΅ 100,000 Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΡΠΎ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡ Π² HTML ΡΡΡΠ°Π½ΠΈΡΡ Π½Π°Π²Π΅ΡΠ½ΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ Ρ ΠΎΡΠΎΡΠ°Ρ ΠΈΠ΄Π΅Ρ), Π― Π΄ΡΠΌΠ°Ρ ΡΡΠΎ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ ΡΡ Π΅ΠΌΠ° Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Π°Ρ Π·Π°ΠΏΠΈΡΡ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΡΠ°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ "pag#####.htm", Π³Π΄Π΅ ##### Π½ΠΎΠΌΠ΅Ρ Π·Π°ΠΏΠΈΡΠΈ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΠ»Ρ ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ° ΠΈΠΌΠ΅Π½, ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠ°Π±Π»ΠΈΡΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, BIOLIFE.HTM ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π΄Π»Ρ BIOLIFE.DB ΡΠ°Π±Π»ΠΈΡ, ΡΠ°ΠΊ ΡΡΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΠΌΠ΅ΡΡ BIOLIFE.HTM/PAG00001.HTM Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· BIOLIFE.DB ΡΠ°Π±Π»ΠΈΡΡ).
const
FirstPage = 'pag00001.htm';
LastPage: TPageName = 'pag%.5d.htm'; { format }
function PageNr(Nr: Word): TPageName;
begin
Result := Format('pag%.5d.htm',[Nr])
end {PageNr};
ΠΡΠΎΠΌΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ PAG00001.HTM, Π½Π°ΠΌ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ ΠΈΠΌΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΈ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°ΠΌ Π΄Π°ΡΡ Π½ΠΎΠΌΠ΅Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π΄Π»Ρ Π½ΠΎΠΌΠ΅ΡΠ° Π·Π°ΠΏΠΈΡΠΈ.
2.1.6. HTML "ΠΠΈΠ²ΡΠ΅" ΠΊΠ»Π°Π²ΠΈΡΠΈ
ΠΠ΅ΠΏΠ»ΠΎΡ ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΏΡΡΡ Π΄Π»Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΏΠΎ Π·Π°ΠΏΠΈΡΡΠΌ ΡΠ°Π±Π»ΠΈΡΡ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ IMAGE MAP, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π² HTML-ΡΡΡΠ°Π½ΠΈΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π±ΡΠ°ΡΠ·Π΅Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ». HTML-ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
<IMG SRC="image.gif">
Π³Π΄Π΅ image.gif ΡΡΠΎ ΡΠ°ΠΉΠ» ΡΠΈΠΏΠ° .GIF ΠΈΠ»ΠΈ .JPEG. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΡΠ°Π²ΠΈΡΡ ΠΎΠΏΡΠΈΡ USEMAP Π² ΡΠ΅Π³, Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ°ΡΡΡ ΠΎΠ±ΡΠ°Π·Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
<IMG SRC="image.gif" USEMAP="#map">
ΠΠ½ΡΡΡΠΈ ΡΡΡΠ°Π½ΠΈΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° "#map", Π° Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ. Image map Π½ΠΈΡΠ΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΈ ΡΡΡΠ»ΠΎΠΊ. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π½Π° ΡΡΡΠ»ΠΊΡ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ, ΠΌΡ ΡΠ΅Π»ΠΊΠ½Π΅ΠΌ ΠΌΡΡΠΊΠΎΠΉ Π² ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°Ρ . HTML-ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠ°ΡΡΡ ΠΎΠ±ΡΠ°Π·Π°, the image map Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΠΊΠ°ΠΊ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½Π°Ρ ΠΏΠ°Π½Π΅Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 25x125 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ:
<MAP NAME="map">
<AREA SHAPE="rect" COORDS="51,0,75,25" HREF="next">
<AREA SHAPE="rect" COORDS="76,0,100,25" HREF="last">
<AREA SHAPE="rect" COORDS="101,0,125,25"HREF="this">
</MAP>
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΠΎΠΉ Π½Π°Π²ΠΈΠ³Π°ΡΠΎΡ ΠΏΠΎ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅ΡΡ ΡΡΠΈ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠΈ: ΠΎΠ΄Π½Π° Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ (ΠΊΠ»Π°Π²ΠΈΡΠΈ ΠΏΠ΅ΡΠ²Π°Ρ ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ°Ρ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ), ΠΎΠ΄Π½Π° Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π·Π°ΠΏΠΈΡΠΈ (ΠΊΠ»Π°Π²ΠΈΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π·Π°ΠΏΠΈΡΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ) ΠΈ ΠΎΠ΄Π½Π° Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΡΠ°Π±Π»ΠΈΡΡ (Π²ΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½Ρ). Π ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Ρ Π½Π°Π·Π½Π°ΡΠ°Ρ ΡΡΡΠ»ΠΊΡ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠ»Π°Π²ΠΈΡ Π½Π° Π΄ΡΡΠ³ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠΈΠ»ΡΠ½ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π°ΠΆΠ°ΡΠΈΡΠΌΠΈ Π½Π° ΠΊΠ»Π°Π²ΠΈΡΠΈ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΊΠ»Π°Π²ΠΈΡΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π°Π΄Π°Π²Π»Π΅Π½Ρ, Π½ΠΎ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ ΠΎΡΠ΅Π½Ρ Π±ΡΡΡΡΡΠΉ ΠΎΡΠ²Π΅Ρ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Java ΠΈΠ»ΠΈ CGI-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ (Π²ΡΠ΅ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΡΠΆΠΎΠΊ Π½Π° Π΄ΡΡΠ³ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ).
NAVIGATL.GIF:
NAVIGAT.GIF:
NAVIGATR.GIF:
ΠΠΎΡ ΠΊΠΎΠ΄ Π½Π° ΠΠ΅Π»ΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π· ΠΈ ΠΊΠ°ΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ:
if (RecNr = 1) then { first record }
begin
writeln(f,'<IMG SRC="../images/navigatl.gif" '+
'ALIGN=RIGHT USEMAP="#map" BORDER="0">');
writeln(f,'<MAP NAME="map">');
writeln(f,'<AREA SHAPE="rect" COORDS="51,0,75,25" HREF="'+
PageNr(2)+'">');
writeln(f,'<AREA SHAPE="rect" COORDS="76,0,100,25" HREF="'+
LastPage+'">');
writeln(f,'<AREA SHAPE="rect" COORDS="101,0,125,25"HREF="'+
PageNr(RecNr)+'">');
end
else
if (RecNr = RecordCount) then { last record }
begin
writeln(f,'<IMG SRC="../images/navigatr.gif" '+
'ALIGN=RIGHT USEMAP="#map" BORDER="0">');
writeln(f,'<MAP NAME="map">');
writeln(f,'<AREA SHAPE="rect" COORDS="0,0,25,25" HREF="'+
FirstPage+'">');
writeln(f,'<AREA SHAPE="rect" COORDS="26,0,50,25" HREF="'+
PageNr(RecNr-1)+'">');
writeln(f,'<AREA SHAPE="rect" COORDS="101,0,125,25"HREF="'+
PageNr(RecNr)+'">');
end
else { middle record }
begin
writeln(f,'<IMG SRC="../images/navigat.gif" '+
'ALIGN=RIGHT USEMAP="#map" BORDER="0">');
writeln(f,'<MAP NAME="map">');
writeln(f,'<AREA SHAPE="rect" COORDS="0,0,25,25" HREF="'+
FirstPage+'">');
writeln(f,'<AREA SHAPE="rect" COORDS="26,0,50,25" HREF="'+
PageNr(RecNr-1)+'">');
writeln(f,'<AREA SHAPE="rect" COORDS="51,0,75,25" HREF="'+
PageNr(RecNr+1)+'">');
writeln(f,'<AREA SHAPE="rect" COORDS="76,0,100,25" HREF="'+
LastPage+'">');
writeln(f,'<AREA SHAPE="rect" COORDS="101,0,125,25"HREF="'+