c语言程序查看配置文件,c语言读写配置文件

1.CException.h

2./************************************************************************/

3./* make0000@msn.com */

4./************************************************************************/

5./************************************************************************/

6.#include "stdio.h"

7.#include "conio.h"

8.#include "signal.h"

9.#include "setjmp.h"

10.#include "assert.h"

11.#ifdef __cplusplus

12.#include "iostream"

13.#include "exception"

14.extern "C"{

15.#define dllexport __declspec(dllexport)

16.jmp_buf Jmp_Buf;

17.int E;

18.#define Exception 0x00000

19.#define e Exception

20.#define try if(!(E=setjmp(Jmp_Buf)))

21.#define last_error() E

22.#define catch(val) else

23.#define throw(val) longjmp(Jmp_Buf,val)

24.#define check(expersion) assert(expersion)

25.#define GetError() errno

26.dllexport void sig_usr(int);

27.dllexport char* getTime();

28.}

29.#else

30.#define dllexport __declspec(dllexport)

31.jmp_buf Jmp_Buf;

32.int E;

33.#define Exception 0x00000

34.#define e Exception

35.#define try if(!(E=setjmp(Jmp_Buf)))

36.#define last_error() E

37.#define catch(val) else

38.#define throw(val) longjmp(Jmp_Buf,val)

39.#define check(expersion) assert(expersion)

40.#define GetError() errno

41.dllexport void sig_usr(int);

42.dllexport char* getTime();

43.

44.#endif

45.

46.

47.File.h

48.#include

49.#include

50.#include

51.#include

52.#define SIZE 128

53.#include "CException.h"

54.#define export __declspec(dllexport)

55.//读取配置文件.

56.int read_file(char* filename,char* key,char* value);

57.//写配置文件.

58.int write_file(char* filename,char* key,char* value);

59.//释放文件.

60.int release();

61.//写入节.

62.int write_section(char* filename,char* section);

63.int read_section(char* filename);

64.int getAuthor(char* value);

65.void getVersion(char* value);

66.

67.File.c

68.#include "File.h"

69.#include

70.

71.int read_file(char* filename,char* key,char* value)

72.{

73.int flag=0;

74.char buffer[SIZE];

75.FILE *file=fopen(filename,"r");

76.try

77. {

78. if(file==NULL)

79. {

80. flag=1;

81. throw(flag);

82. }

83. else

84. {

85. while(fgets(buffer,SIZE,file)!=NULL)

86. {

87. int i=0,j=0,len=strlen(key);

88. while(buffer[i]!='\0')

89. {

90. if(buffer[i]=='$'&&buffer[i+len+1]=='=')

91. {

92. j=i+len+2;

93. while(buffer[j]!='\0'&&buffer[j]!=';')

94. {

95. int h=0;

96. if(buffer[i+1]==key[i])

97. {

98. //printf("%c",buffer[j]);

99. value[j-i-len-2]=buffer[j];

100. }

101. j++;

102. }

103. break;

104. }

105. else if(buffer[i]=='/'&&buffer[i+1]=='/'||buffer[i]==';')

106. {

107. break;

108. //comment

109. }

110.

111.

112. i++;

113. }

114. }

115. }

116. }

117. catch(Exception)

118. {

119. flag=2;

120. fclose(file);

121. printf("can't open file %s",filename);

122. exit(1);

123. }

124.fflush(file);

125.fclose(file);

126.return flag;

127.

128.}

129.

130.int write_file(char* filename,char* key,char* value)

131.{

132.int flag=0;

133.FILE* file;

134.file=fopen(filename,"a");

135.try

136.{

137. if(file==NULL)

138. {

139. flag=1;

140. throw(flag);

141. }

142. fprintf(file,"$%s=%s\n",key,value);

143.}

144.catch(Exception)

145.{

146. printf("Can't write file %s",filename);

147. exit(1);

148.}

149.fflush(file);

150.fclose(file);

151.return flag;

152.}

153.

154.int write_section(char* filename,char* section)

155.{

156.int flag=0;

157.FILE* file=NULL;

158.try

159.{

160. file=fopen(filename,"a");

161. if(file!=NULL)

162. {

163. fprintf(file,"[%s]\n",section);

164. }

165. else

166. {

167. int flag=1;

168. throw(flag);

169. }

170.}

171.catch(Exception)

172.{

173. printf("can't open file %s",filename);

174. exit(0);

175.}

176.fflush(file);

177.fclose(file);

178.return flag;

179.}

180.int release()

181.{

182.int flag=1;

183.return flag;

184.}

185.int read_section(char* filename)

186.{

187.return 0;

188.}

189.int getAuthor(char* value)

190.{

191.char author[128]="武汉软件工程职业学院计算机应用系孟德军";

192.int i=0;

193.for(i=0;i

194.{

195.value[i]=author[i];

196.}

197.return 0;

198.}

199.void getVersion(char* value)

200.{

201.char version[128]="2009//05//01";

202.int i=0;

203.for(i=0;i

204.{

205.value[i]=version[i];

206.}

207.

208.}

209./**************************************************************************

210.void main()

211.{

212.char* str=NULL;

213.char author[120];

214.char buffer[128];

215.char buffer1[128];

216.char buffer2[128];

217.read_file("F:\\exercise\\C++!C\\sys.ini","password",buffer);

218.read_file("F:\\exercise\\C++!C\\sys.ini","username",buffer1);

219.read_file("F:\\exercise\\C++!C\\sys.ini","driver",buffer2);

220.printf("password=%s\n",buffer);

221.printf("\n");

222.printf("username=%s\n",buffer1);

223.printf("\n");

224.printf("driver=%s\n",buffer2);

225.getAuthor(author);

226.printf("\n");

227.printf("author=%s",author);

228.release();

229.}

230.****************************************************************************/

231.

232.sys.ini

233.

234.[mysql]

235.$username=root

236.$password=123456

237.$driver=com.mysql.jdbc.Driver

238.$url=jdbc:mysql://localhost:3306/mysql

239.

240.动态链接库测试:

241.

242.#include

243.typedef (* write)(char* filename,char* key,char* value);

244.typedef (* writes)(char* filename,char* value);

245.typedef (* read)(char* filename,char* key,char* value);

246.HINSTANCE hInstance;

247.write write_file;

248.writes write_section;

249.read read_file;

250.char buffer[128];

251.char buffer1[128];

252.void main()

253.{

254.hInstance=LoadLibrary("File.dll");

255.if(hInstance!=NULL)

256.{

257.

258.write_file=(write)GetProcAddress(hInstance,"write_file");

259.write_section=(writes)GetProcAddress(hInstance,"write_section");

260.read_file=(read)GetProcAddress(hInstance,"read_file");

261.

262.write_section("config.ini","mysql");

263.write_file("config.ini","username","root");

264.write_file("config.ini","password","admin");

265.write_file("config.ini","driverClassName","com.mysql.jdbc.Driver");

266.write_file("config.ini","url","jdbc:mysql://localhost:3306/user");

267.

268.read_file("config.ini","username",buffer);

269.printf("username=%s",buffer);

270.

271.read_file("config.ini","password",buffer1);

272.printf("password=%s",buffer1);

273.}

274.else

275.{

276.printf("can't load dynamic file File.dll");

277.}

278.FreeLibrary(hInstance);

279.}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值