Nickolay.info. Алгоритмы. Генерация таблицы имен цветов Internet Explorer и Netscape Navigator

Эта старая программка создавала таблицу с именами и кодами цветов, понимаемых браузрами Internet Explorer и Netscape Navigator. Данные читались из файла colors.txt текущей папки, на выходе получался файл colors.htm. Получалось вот такое чудо (новое окно):

 colors.htm

Кстати, из современных браузеров корректно покажет пресловутые "100 оттенков цвета Gray" только Opera, Internet Explorer и Mozilla Firefox - нет. Хотя изначально "100 оттенков" были нетскейповские и могли бы достаться огнелису по наследству.

Листинг программы
// Генерация таблицы имен цветов Internet Explorer и Netscape Navigator
// Нужен файл COLORS.TXT
// Результат в файле COLORS.HTM
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define Cols 8 /*Число столбцов таблицы*/
#define MAX_STR 128 /*Максимальная длина строки*/
 
char Color[Cols][MAX_STR],Syms[MAX_STR],Tmp[MAX_STR],Number[MAX_STR];
int Num;
FILE *r,*w;
 
void PrintLine(void) {
 //Печать готовой строки таблицы
 fprintf (w,"\n <TR>");
 for (int i=0;i<Cols;i++) {
  fprintf (w,"\n  <TD HEIGHT=\"25\" BGCOLOR=\"");
  fprintf (w,"%s",Color[i]);
  fprintf (w,"\">. </TD>");
 }
 fprintf (w,"\n </TR>\n <TR BGCOLOR=\"000000\">");
 for (i=0;i<Cols;i++) {
  fprintf (w,"\n  <TD>");
  if (!strcmp (Color[i],"#000000")) fprintf (w,". ");
  else fprintf (w,"%s",Color[i]);
  fprintf (w,"</TD>");
 }
 fprintf (w,"\n </TR>");
 Num=0;
}
 
void NewLine (void) {
 //Добить строку таблицы пустыми ячейками
 for (int i=Num;i<Cols;i++) {
  strcpy (Color[i],"#000000");
 }
 PrintLine ();
}
 
void Add (void) {
 //Добавить цвет Syms в массив Color
 if (Num==Cols) PrintLine ();
 strcpy (Color[Num++],Syms);
}
 
void AddAll (int n) {
 //Добавить n градаций цвета в массив Color
 int j,k=strlen(Syms);
 Syms[k-1]='\0';
 Add ();
 for (j=2;j<=n;j++) {
  strcpy (Tmp,Syms);
  itoa (j,Number,10);
  strcat (Syms,Number);
  Add ();
  strcpy (Syms,Tmp);
 }
}
 
char *ReadStr (FILE *f, char *Str) { //Чтение строки из файла
 char *Ptr=fgets (Str,MAX_STR,f);
 int l=strlen(Str)-1;
 while ((Str[l]=='\n') || (Str[l]=='\r')) Str[l--]='\0';
 return Ptr;
}
 
 
void main (void) {
 printf ("\n HTML color table designer;");
 r=fopen ("COLORS.TXT","rt");
 if (r==NULL) {
  printf ("\n Cannot open COLORS.TXT to read colors names!");
  exit (1);
 }
 w=fopen ("COLORS.HTM","wt");
 if (w==NULL) {
  printf ("\n Cannot open COLORS.HTM to write the table!");
  exit (2);
 }
 //Headers
 fprintf (w,"<HTML><HEAD><TITLE></TITLE>"
	    "\n</HEAD><BODY BGCOLOR=\"000000\" TEXT=\"CCCCCC\">"
	    "\n<BR>\n<TABLE WIDTH=\"100%\" BORDER=\"1\">");
 //Main part
 Num=0;
 while (!feof(r)) {
  ReadStr (r,Syms);
  int k=strlen(Syms);
  if (Syms[0]=='#') { //Комментарий
   continue;
  }
  else if (Syms[k-1]=='*') //4 градации цвета
   AddAll (4);
  else if (Syms[k-1]=='#') { //100 градаций цвета
   NewLine ();
   AddAll (100);
   NewLine ();
  }
  else //Обычный цвет
   Add ();
 }
 NewLine ();
 //Last tags
 fprintf (w,"\n</TABLE>\n<BR>\n</BODY></HTML>");
 fclose (r); fclose (w);
 printf ("\n See the file COLORS.HTM");
}
Файл colors.txt в папку программы
# This file Windows-1251 coded!
# Файл данных программы HTMCOLORS.EXE
# Выходной файл программы - COLORS.HTM
# # в первой позиции обозначает строку комментария
# * за именем цвета обозначает, что у него 4 градации яркости
# # за именем цвета обозначает, что у него 100 градаций яркости (gray)
#
# Цвета, общие для Internet Explorer и Netscape Navigator:
Aqua
Black
Blue
Fuchsia
Gray
Green
Lime
Maroon
Navy
Olive
Purple
Red
Silver
Teal
Yellow
White
#
# Цвета Netscape Navigator:
Aliceblue
Antiquewhite*
Aquamarine*
Azure*
Beige
Bisque*
Black
Blanchedalmond
Blue*
Blueviolet
Brown*
Burlywood*
Cadetblue*
Chartreuse*
Chocolate*
Coral*
Cornflowerblue
Cornsilk*
Cyan*
Darkblue
Darkcyan
Darkgoldenrod*
Darkgray
Darkgreen
Darkkhaki
Darkmagenta
Darkolivegreen*
Darkorange*
Darkorchid*
Darkred
Darksalmon
Darkseagreen*
Darkslateblue
Darkslategray*
Darkturquoise
Darkviolet
Deeppink*
Deepskyblue*
Dimgray
Dodgerblue*
Firebrick*
Floralwhite
Forestgreen
Gainsboro
Ghostwhite
Gold*
Goldenrod*
Gray#
Green*
Greenyellow
Honeydew*
Hotpink*
Indianred*
Ivory*
Khaki*
Lavender
Lavenderblush*
Lawngreen
Lemonchiffon*
Lightblue*
Lightcoral
Lightcyan*
Lightgoldenrod*
Lightgoldenrodyellow
Lightgray
Lightgreen
Lightpink*
Lightsalmon*
Lightseagreen
Lightskyblue*
Lightslateblue
Lightslategray
Lightsteelblue*
Lightyellow*
Limegreen
Linen
Magenta*
Maroon*
Mediumaquamarine
Mediumblue
Mediumorchid*
Mediumpurple*
Mediumseagreen
Mediumslateblue
Mediumspringgreen
Mediumturquoise
Mediumvioletred
Midnightblue
Mintcream
Mistyrose*
Moccasin
Navajowhite*
Navy
Navyblue
Oldlace
Olivedrab*
Orange*
Orangered*
Orchid*
Palegoldenrod
Palegreen*
Paleturquoise*
Palevioletred
Papayawhip
Peachpuff*
Peru
Pink*
Plum*
Powderblue
Purple*
Red*
Rosybrown*
Royalblue*
Saddlebrown
Salmon*
Sandybrown
Seagreen*
Seashell*
Sienna*
Skyblue*
Slateblue*
Slategray*
Snow*
Springgreen*
Steelblue*
Tan*
Thistle*
Tomato*
Turquoise*
Violet
Violetred*
Wheat*
White
Whitesmoke
Yellow*
Yellowgreen

 Скрипт Все цвета Интернет

Рейтинг@Mail.ru

вверх гостевая; E-mail