ВУЗ:
Составители:
Рубрика:
- 24 -
DWORD dwFileSize; // Размер файла шаблона
LPSTR szTemplate; // Адрес шаблона главной страницы
CHAR szBuf[10]; // Временный буфер для работы со счетчиком
INT nCounter; // Текущее значение счетчика
LPSTR szCounterPtr; // Указатель на поле счетчика в шаблоне
char UnikMarker[]="~~~~~"; // Маркер для замены на номер посещения (5 тильд)
//
// Открываем файл счетчика для чтения
CounterFile = fopen("CNTDAT.DAT", "r");
// Читаем из файла строку значения счетчике
fread(szBuf, 7, 1, CounterFile);
// Закрываем файл счетчика
fclose(CounterFile);
// Преобразуем содержимое счетчика из строки в число
sscanf(szBuf, "%d", &nCounter);
// Увеличиваем значение счетчика на 1
nCounter++;
// Записываем в буфер szBuf 5 цифр нового значения счетчика
sprintf(szBuf, "%05.5ld", nCounter);
// Открываем файл счетчика для записи
CounterFile = fopen("CNTDAT.DAT", "w");
// Сохраняем новое эначение счетчика в файле
fprintf(CounterFile, "%d", nCounter);
fclose (CounterFile);
//
// Считываем файл шаблона в оперативную память
//
// Открываем файл шаблона для чтения
TemplateFile = fopen("HOME.TM", "r");
// Определяем размер файла в байтах
fseek(TemplateFile, 0, 2); // на конец файла...
dwFileSize = ftell(TemplateFile); // длина
Оного
// Устанавливаем указатель текущей позиции на начало файла шаблона
fseek(TemplateFile, 0, 0);
// Захватываем память для буфера шаблона
szTemplate = (char *) malloc(dwFileSize);
// Загружаем шаблон в буфер
fread(szTemplate, dwFileSize, 1, TemplateFile);
// Заменяем 5 цифр значения счетчика на новые в буфере шаблона
//
// Ищем уникальный маркер поля счетчика UnikMarker
szCounterPtr = strstr(szTemplate, UnikMarker);
// Копируем в эTO поле новое эначение счетчика
if(szCounterPtr != NULL)
strncpy(szCounterPtr, szBuf, 5);
// Выводим заголовок HTTP и разделительную строку
printf ("Content-type: text/html\n\n");
// Выводим шаблон
с измененным значением поля счетчика
fwrite (szTemplate, dwFileSize, 1, stdout);
// Освобождаем буфер шаблона '
DWORD dwFileSize; // Размер файла шаблона LPSTR szTemplate; // Адрес шаблона главной страницы CHAR szBuf[10]; // Временный буфер для работы со счетчиком INT nCounter; // Текущее значение счетчика LPSTR szCounterPtr; // Указатель на поле счетчика в шаблоне char UnikMarker[]="~~~~~"; // Маркер для замены на номер посещения (5 тильд) // // Открываем файл счетчика для чтения CounterFile = fopen("CNTDAT.DAT", "r"); // Читаем из файла строку значения счетчике fread(szBuf, 7, 1, CounterFile); // Закрываем файл счетчика fclose(CounterFile); // Преобразуем содержимое счетчика из строки в число sscanf(szBuf, "%d", &nCounter); // Увеличиваем значение счетчика на 1 nCounter++; // Записываем в буфер szBuf 5 цифр нового значения счетчика sprintf(szBuf, "%05.5ld", nCounter); // Открываем файл счетчика для записи CounterFile = fopen("CNTDAT.DAT", "w"); // Сохраняем новое эначение счетчика в файле fprintf(CounterFile, "%d", nCounter); fclose (CounterFile); // // Считываем файл шаблона в оперативную память // // Открываем файл шаблона для чтения TemplateFile = fopen("HOME.TM", "r"); // Определяем размер файла в байтах fseek(TemplateFile, 0, 2); // на конец файла... dwFileSize = ftell(TemplateFile); // длина Оного // Устанавливаем указатель текущей позиции на начало файла шаблона fseek(TemplateFile, 0, 0); // Захватываем память для буфера шаблона szTemplate = (char *) malloc(dwFileSize); // Загружаем шаблон в буфер fread(szTemplate, dwFileSize, 1, TemplateFile); // Заменяем 5 цифр значения счетчика на новые в буфере шаблона // // Ищем уникальный маркер поля счетчика UnikMarker szCounterPtr = strstr(szTemplate, UnikMarker); // Копируем в эTO поле новое эначение счетчика if(szCounterPtr != NULL) strncpy(szCounterPtr, szBuf, 5); // Выводим заголовок HTTP и разделительную строку printf ("Content-type: text/html\n\n"); // Выводим шаблон с измененным значением поля счетчика fwrite (szTemplate, dwFileSize, 1, stdout); // Освобождаем буфер шаблона ' - 24 -
Страницы
- « первая
- ‹ предыдущая
- …
- 22
- 23
- 24
- 25
- 26
- …
- следующая ›
- последняя »