Nickolay.info. Алгоритмы. Генерация таблицы имен цветов Internet Explorer и Netscape Navigator |
Эта старая программка создавала таблицу с именами и кодами цветов, понимаемых браузрами Internet Explorer и Netscape Navigator. Данные читались из файла colors.txt текущей папки, на выходе получался файл 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"); }
# 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
гостевая; E-mail |