切换导航
首页
技术问答
编程语言
前端开发
移动开发
开发工具
程序设计
行业应用
CMS系统
服务器
频道导航
▸ PHP
▸ Java
▸ Java SE
▸ Python
▸ C#
▸ C&C++
▸ Ruby
▸ VB
▸ asp.Net
▸ Go
▸ Perl
▸ netty
▸ Django
▸ Delphi
▸ Jsp
▸ .NET Core
▸ Spring
▸ Flask
▸ Springboot
▸ SpringMVC
▸ Lua
▸ Laravel
▸ Mybatis
▸ Asp
▸ Groovy
▸ ThinkPHP
▸ Yii
▸ swoole
▸ HTML
▸ HTML5
▸ JavaScript
▸ CSS
▸ jQuery
▸ Bootstrap
▸ Angularjs
▸ TypeScript
▸ Vue
▸ Dojo
▸ Json
▸ Electron
▸ Node.js
▸ extjs
▸ Express
▸ XML
▸ ES6
▸ Ajax
▸ Flash
▸ Unity
▸ React
▸ Flex
▸ Ant Design
▸ Web前端
▸ 微信小程序
▸ 微信公众号
▸ iOS
▸ Android
▸ Swift
▸ Hybrid
▸ Cocos2d-x
▸ Flutter
▸ Xcode
▸ Silverlight
▸ cocoa
▸ Cordova
前端之家
Sqlite
SQLite cominbed source file splitter
SQLite cominbed source file splitter
2020-06-01
Sqlite
前端之家
前端之家
收集整理的这篇文章主要介绍了
SQLite cominbed source file splitter
,
前端之家
小编觉得挺不错的,现在分享给大家,也给大家做个参考。
This program splits the combined version of
sql
ite source code. See
http://www.sqlite.org/
or
http://www.sqlite.org/download.html
for more of
sql
ite.
#include <st
dio
.h>
typedef enum
{
Error = -1,
None = 0,
Common,
BeginInc,
EndInc,
BeginFile,
EndFile,
} LineType;
typedef int Bool;
typedef struct
{
FILE *file;
char *fname;
} Writer;
void writeToCur (Writer *cur,char *line)
{
fprintf(cur->file,"%s",line);
}
void writeIncToCur (Writer *cur,char *chbuf)
{
fprintf(cur->file,"#include /"%s/"",chbuf);
}
Bool nextEq (char **s,const char *t)
{
Bool res = strncmp((*s),(t),strlen(t))==0;
if (res)
{
*s += strlen(t);
}
return res;
}
void getFileName (char *fname,const char *p)
{
while (*p != '*' && *p != ' ' && *p != 0)
{
*fname++ = *p++;
}
*fname = 0;
}
#define LineBufSize 1024
LineType readLine (FILE *file,char *line,char *fname)
{
int lenLine;
LineType type;
if (!fgets(line,LineBufSize - 1,file))
{
return None;
}
if (strlen(line) == LineBufSize - 1)
{ // possibly error
return Error;
}
lenLine = strlen(line);
if (lenLine > 20 && line[0] == '/' && line[1] == '*')
{
char *pEnd = line + lenLine;
char *p = line + 2;
for ( ; (*p == '*' || *p == ' ') && *p != 0; p++);
if (p - line < 10)
{
return Common;
}
if (nextEq(&p,"Begin file "))
{
getFileName(fname,p);
return BeginFile;
}
else if (nextEq(&p,"End of "))
{
getFileName(fname,p);
return EndFile;
}
else if (nextEq(&p,"Include pager.h in the middle of "))
{
getFileName(fname,p);
return BeginInc;
}
else if (nextEq(&p,"Continuing where we left off in "))
{
getFileName(fname,p);
return EndInc;
}
}
return Common;
}
void parse (char *sfname)
{
#define StackSize 32
char chbuf[128];
char fnbuf[256];
char line[LineBufSize];
Writer stack[StackSize];
Writer *cur;
int depth = 0;
FILE *srcFile = fopen(sfname,"r");
cur = stack + depth;
sprintf(fnbuf,"out/%s",sfname);
cur->file = fopen(fnbuf,"w");
while (1)
{
LineType type = readLine(srcFile,line,chbuf);
if (type == Error)
{
printf("An error has occurred during parsing./n");
break;
}
else if (type == None)
{
break;
}
switch (type)
{
case Common:
writeToCur(cur,line);
break;
case BeginInc:
writeIncToCur(cur,chbuf);
break;
case EndInc:
break;
case BeginFile:
printf("Found file embedded %s/n",chbuf);
depth++;
cur = stack + depth;
sprintf(fnbuf,chbuf);
cur->file = fopen(fnbuf,"w");
writeToCur(cur,line);
break;
case EndFile:
writeToCur(cur,line);
fclose(cur->file);
depth--;
cur = stack + depth;
break;
}
if (depth < 0)
{
break;
}
}
for ( ; depth >= 0; depth--)
{
cur = stack + depth;
fclose(cur->file);
}
}
int main (void)
{
parse("
sql
ite3.c");
return 0;
}
上一篇:Evolution与funambol(sync4j)同步
下一篇:Ext 2.02 API新增功能
猜你在找的Sqlite相关文章
SQLite学习笔记
安装 在Windows上安装SQLite。 访问官网下载下Precompliled Binaries for Windows的两个压...
作者:前端之家 时间:2021-01-12
windows上如何安装Sqlite
一、安装 下载地址:http://www.sqlite.org/download.html 将Precompiled Binaries for Wi...
作者:前端之家 时间:2020-11-05
【Android数据存储】SQLite使用实例(附源码)
实例: 会员信息管理 功能:1.查看数据库 2.清空数据库 3.增加会员 4.删除会员 5.更新会员 ...
作者:前端之家 时间:2020-08-07
SQLite数据库管理
作者:前端之家 时间:2020-08-07
SQLite3常用命令
作者:前端之家 时间:2020-08-07
加密你的SQLite
关于SQLite SQLite是一个轻量的、跨平台的、开源的数据库引擎,它的在读写效率、消耗总量、...
作者:前端之家 时间:2020-08-07
SQLite这么娇小可爱,不多了解点都不行啊
在我眼里,MySQL和Oracle是这样的 而SQLite在是这样的 所以这么萌的数据库,我真的应该多了...
作者:前端之家 时间:2020-08-07
SQLite这么娇小可爱,不多了解点都不行啊
在我眼里,MySQL和Oracle是这样的 而SQLite在是这样的 所以这么萌的数据库,我真的应该多了...
作者:前端之家 时间:2020-08-07
SQLite 这么娇小可爱,不多了解点都不行啊
(点击上方蓝字,快速关注我们) 作者:空之境界 网址:http://supermao.cn/sqlitezhe-yao-...
作者:前端之家 时间:2020-08-07
SQLITE3 使用总结
SQLITE3 使用总结 投稿:hebedich 字体:[ 增加 减小] 类型:转载 时间:2014-08-19 Sql...
作者:前端之家 时间:2020-08-07
编程分类
MySQL
MsSQL
Oracle
Sqlite
Postgre SQL
Mariadb
MongoDB
NoSQL
HBase
JDBC
最新文章
• SQLite学习笔记
• windows上如何安装Sqlite
• 【Android数据存储】SQLit
• SQLite数据库管理
• SQLite3常用命令
• 加密你的SQLite
• 加密你的SQLite
• SQLite这么娇小可爱,不多
• SQLite这么娇小可爱,不多
• SQLite 这么娇小可爱,不多
热门标签
更多 ►
undo日志
persistent-c
mysql-error-
postal-code
sql-match-al
mysql-5.6
mysql-8.0
database-tri
安装路径
系统错误
data_dir
丢失文件
主从同步
sql_mode
数据库目录
匿名用户
character_se
ID归零
数据库位置
查询表
重复字段
查询字段
截断日志
SUSPECT
7391
Remote Serve
Linked Serve
玄学问题
登录不上
开启远程访问