资源简介
可以快速批量生成HTML/XML/WORD文档/EXCEL文档的简易模板库,模板库为C语言实现,非常简单,只有一个文件。能够按照模板格式生成HTML/XML/WORD文档/EXCEL文档等等各种文档。比如,需要批量生成报表、单据、静态网页、配置文件等等,都可以编辑一个模板,然后用此代码快速批量生成。
代码片段和文件信息
/*++
Copyright(C) Fang.
Module Name:
htmtmpl.c
Abstract:
HTML Template helps CGI C to easy manipulate HTML code output.
Author:
Fang(fangguicheng@21cn.com) 4/13/2007
Revision History:
--*/
#include
#include
#include
#include
#include “linklist.h“
/************************************************************************/
/* Type declaration. */
/************************************************************************/
#define MAX_HT_FILE_SIZE (32*1024)
#define MAX_HT_NAME_SIZE 32
#define HT_TYPE_TEXT 0
#define HT_TYPE_VAR 1
#define HT_TYPE_BLOCK 2
typedef struct _HT_BLOCK
{
LIST_ENTRY Node;
int Type;
char Name[MAX_HT_NAME_SIZE+1];
union
{
char* Text;
char* Value;
LIST_ENTRY SubBlockList;
};
}HT_BLOCK *PHT_BLOCK;
#define HT_OUTPUT_NULL 0
#define HT_OUTPUT_STDOUT 1
#define HT_OUTPUT_STRING 2
/************************************************************************/
/* Global variables. */
/************************************************************************/
LIST_ENTRY MainList;
/************************************************************************/
/* Help functions. */
/************************************************************************/
char* LoadFile(char* File int* Length)
{
FILE* HtmFile;
char* Buffer;
int FileSize;
/*
* Read file to buffer.
*/
HtmFile = fopen(File “r+b“);
if(HtmFile == NULL)
return NULL;
fseek(HtmFile 0 SEEK_END);
FileSize = ftell(HtmFile);
if(FileSize == -1 || FileSize > MAX_HT_FILE_SIZE)
{
fclose(HtmFile);
return NULL;
}
Buffer = (char*)malloc(FileSize+1);
if(Buffer == NULL)
{
fclose(HtmFile);
return NULL;
}
fseek(HtmFile 0 SEEK_SET);
if(fread(Buffer 1 FileSize HtmFile) != (size_t)FileSize)
{
fclose(HtmFile);
free(Buffer);
return NULL;
}
fclose(HtmFile);
Buffer[FileSize] = ‘\0‘;
*Length = FileSize;
return Buffer;
}
int DeterminType(char* Buffer int Length)
{
if(Buffer[0] == ‘{‘)
return HT_TYPE_VAR;
if(Length > 9 && memcmp(Buffer “