找回密码
 立即注册
查看: 1287|回复: 28

求改错,icid转换成txt的程序

[复制链接]

5895

回帖

118

基友

1万

积分

苍海之魂

invincible

Rank: 13Rank: 13Rank: 13Rank: 13

发表于 2013-6-23 21:30:29 | 显示全部楼层 |阅读模式
本帖最后由 time 于 2013-6-24 01:38 编辑

可以编译通过,但是运行有错误
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. long start_end(FILE * icid,long *sta[],long *end[])
  5. {
  6.         long count=0;
  7.         char dcn;
  8.         while((dcn=getc(icid))!=NULL)
  9.         {
  10.                 if(dcn=='\n')
  11.                         count++;
  12.         }
  13.         count++;
  14.         rewind(icid);
  15.         *sta=(long *)malloc(count*sizeof(long));
  16.         *end=(long *)malloc(count*sizeof(long));
  17.         count=0;
  18.         while((dcn=getc(icid))!=NULL)
  19.         {
  20.                 if(dcn=='(')
  21.                         *sta[count]=ftell(icid)+1;
  22.                 count++;
  23.         }
  24.         count=0;
  25.         while((dcn=getc(icid))!=NULL)
  26.         {
  27.                 if(dcn==')')
  28.                         *end[count]=ftell(icid)-1;
  29.                 count++;
  30.         }
  31.         return count;
  32. }
  33. void getidpw(char *id[],FILE *icid,long **sta,long **end,long count)
  34. {
  35.         long ct;
  36.         short len;
  37.         for(ct=0;ct<=count;ct++)
  38.         {
  39.                 fseek(icid,*sta[ct],SEEK_SET);
  40.                 len=*end[ct]-*sta[ct];
  41.                 fgets(id[ct],len,icid);
  42.                 strcpy(id[ct],"\n");
  43.         }
  44. }
  45. void delcom(char fname[])
  46. {
  47.         FILE *fp;
  48.         char chg;
  49.         fp=fopen(fname,"a");
  50.         rewind(fp);
  51.         while((chg=getc(fp))!=NULL)
  52.         {
  53.                 if(chg==',')
  54.                         chg=':';
  55.                 putc(chg,fp);
  56.         }
  57.         puts("转换完成!");
  58.         system("pause");
  59. }
  60. int main(void)
  61. {
  62.         char filename[51];
  63.         char **id;
  64.         long *add1,*add2,count,ct;
  65.         char dcn;
  66.         FILE *icid;
  67.         FILE *txt;
  68.         system("title ICID to TXT");
  69.         puts("请输入文件名");
  70.         gets(filename);
  71.         if((icid=fopen(filename,"r"))==NULL)
  72.         {
  73.                 puts("打开icid文件失败");
  74.                 system("pause");
  75.                 exit(1);
  76.         }
  77.         strcpy(filename,".txt");
  78.         if((txt=fopen(filename,"w"))==NULL)
  79.         {
  80.                 puts("创建txt文件失败");
  81.                 system("pause");
  82.                 exit(2);
  83.         }
  84.         count=start_end(icid,&add1,&add2);
  85.         id=(char **)malloc(count);
  86.         getidpw(id,icid,&add1,&add2,count);
  87.         for(ct=0;ct<=count;ct++)
  88.         {
  89.                 fputs(id[ct],txt);
  90.         }
  91.         delcom(filename);
  92.         return 0;
  93. }
复制代码
回复

使用道具 举报

5895

回帖

118

基友

1万

积分

苍海之魂

invincible

Rank: 13Rank: 13Rank: 13Rank: 13

 楼主| 发表于 2013-6-23 21:32:03 | 显示全部楼层
回复 支持 反对

使用道具 举报

5895

回帖

118

基友

1万

积分

苍海之魂

invincible

Rank: 13Rank: 13Rank: 13Rank: 13

 楼主| 发表于 2013-6-23 21:34:33 | 显示全部楼层
本帖最后由 time 于 2013-6-23 21:43 编辑
  1. “icidtotxt.exe”: 已加载“F:\bc\icidtotxt\Debug\icidtotxt.exe”,已加载符号。
  2. “icidtotxt.exe”: 已加载“C:\Windows\System32\ntdll.dll”,Cannot find or open the PDB file
  3. “icidtotxt.exe”: 已加载“C:\Windows\System32\kernel32.dll”,Cannot find or open the PDB file
  4. “icidtotxt.exe”: 已加载“C:\Windows\System32\KernelBase.dll”,Cannot find or open the PDB file
  5. “icidtotxt.exe”: 已加载“C:\Windows\System32\msvcr100d.dll”,已加载符号。
  6. “icidtotxt.exe”: 已加载“C:\Windows\System32\apphelp.dll”,Cannot find or open the PDB file
  7. 线程 'Win32 线程' (0x1cdc) 已退出,返回值为 -1073741510 (0xc000013a)。
  8. 程序“[10640] icidtotxt.exe: 本机”已退出,返回值为 -1073741510 (0xc000013a)。
复制代码
回复 支持 反对

使用道具 举报

42

回帖

71

基友

192

积分

凡人2阶 Lv.2

Rank: 1

发表于 2013-6-23 21:45:52 | 显示全部楼层
好难的样子0 0
回复 支持 反对

使用道具 举报

7657

回帖

86万

基友

34万

积分

天下一番

Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

伯爵荣耀

发表于 2013-6-23 22:46:41 | 显示全部楼层
。。明天再给你改吧  最近用的都是c++  纯c不熟= =
回复 支持 反对

使用道具 举报

5895

回帖

118

基友

1万

积分

苍海之魂

invincible

Rank: 13Rank: 13Rank: 13Rank: 13

 楼主| 发表于 2013-6-23 22:48:23 | 显示全部楼层
飞龙 发表于 2013-6-23 22:46
。。明天再给你改吧  最近用的都是c++  纯c不熟= =

纯c什么时候可以摆脱黑框框
回复 支持 反对

使用道具 举报

976

回帖

4958

基友

5323

积分

通神6段 Lv.9

人生太郁闷,情何以堪!!!

Rank: 5Rank: 5

发表于 2013-6-23 23:26:38 | 显示全部楼层
这个不会哦
回复 支持 反对

使用道具 举报

1634

回帖

3460

基友

4703

积分

通神6段 Lv.9

Rank: 5Rank: 5

伯爵荣耀

发表于 2013-6-24 00:02:34 | 显示全部楼层
回复 支持 反对

使用道具 举报

4977

回帖

4万

基友

4万

积分

萨菲尔斯

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

伯爵荣耀

发表于 2013-6-24 00:07:43 | 显示全部楼层
看的我头昏脑涨……
话说ICID打开成TXT是什么?能显示密码吗?
回复 支持 反对

使用道具 举报

5895

回帖

118

基友

1万

积分

苍海之魂

invincible

Rank: 13Rank: 13Rank: 13Rank: 13

 楼主| 发表于 2013-6-24 00:15:38 | 显示全部楼层
985761008 发表于 2013-6-24 00:07
看的我头昏脑涨……
话说ICID打开成TXT是什么?能显示密码吗?

有的icid有密码,有的没有啊
回复 支持 反对

使用道具 举报

107

回帖

142

基友

515

积分

通神1段 Lv.4

Rank: 2

发表于 2013-6-24 00:39:24 | 显示全部楼层
我是来学习技术的,求指点
回复 支持 反对

使用道具 举报

7310

回帖

174

基友

1万

积分

仙人2层 Lv.11

有事请@凉茶

Rank: 6Rank: 6

苍海的女仆

发表于 2013-6-24 01:19:55 | 显示全部楼层
如果当时导出icid时导出了密码 在转换成txt时就有密码了吧
红包有限,请尽快领取,不定期埋100个红包- -请戳→《红包领取》
回复 支持 反对

使用道具 举报

88

回帖

184

基友

335

积分

凡人3阶 Lv.3

Rank: 2

伯爵荣耀

发表于 2013-6-24 01:31:06 | 显示全部楼层
我要升级
回复 支持 反对

使用道具 举报

5895

回帖

118

基友

1万

积分

苍海之魂

invincible

Rank: 13Rank: 13Rank: 13Rank: 13

 楼主| 发表于 2013-6-24 01:37:11 | 显示全部楼层
 凉 发表于 2013-6-24 01:19
如果当时导出icid时导出了密码 在转换成txt时就有密码了吧

对啊
回复 支持 反对

使用道具 举报

1655

回帖

2452

基友

7918

积分

通神6段 Lv.9

Rank: 5Rank: 5

发表于 2013-6-24 07:15:42 | 显示全部楼层
-- - 、   不了解
0.0
回复 支持 反对

使用道具 举报

1万

回帖

3146

基友

2万

积分

仙人7层 Lv.16

落世残阳 Lv.MAX

Rank: 10Rank: 10Rank: 10

最佳新人伯爵荣耀

发表于 2013-6-24 08:02:03 | 显示全部楼层
好难的样子
回复 支持 反对

使用道具 举报

204

回帖

829

基友

957

积分

通神2段 Lv.5

Rank: 3Rank: 3

发表于 2013-6-24 08:43:42 | 显示全部楼层
回复 支持 反对

使用道具 举报

204

回帖

829

基友

957

积分

通神2段 Lv.5

Rank: 3Rank: 3

发表于 2013-6-24 08:43:52 | 显示全部楼层
不觉明历
回复 支持 反对

使用道具 举报

5482

回帖

6万

基友

3万

积分

苍海之魂

Rank: 13Rank: 13Rank: 13Rank: 13

发表于 2013-6-24 10:42:59 | 显示全部楼层
一般icid都没密码吧?
回复 支持 反对

使用道具 举报

1809

回帖

6014

基友

6350

积分

通神6段 Lv.9

【再看削你后颈】

Rank: 5Rank: 5

发表于 2013-6-24 11:12:05 | 显示全部楼层
超级高端洋气。。
回复 支持 反对

使用道具 举报

7657

回帖

86万

基友

34万

积分

天下一番

Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

伯爵荣耀

发表于 2013-6-24 11:52:43 | 显示全部楼层
本帖最后由 飞龙 于 2013-6-24 11:55 编辑

在txt里面写了一段  你运行试试= =
  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. int findchr(char *str, char chr, size_t pos = 0);

  4. int main()
  5. {

  6. puts("请输入文件名:\n");
  7. char buff1[256];
  8. if(!fgets(buff1, 256, stdin))
  9. {
  10.         puts("文件名读取失败!\n");
  11.         system("pause");
  12.         exit(0);
  13. }

  14. FILE *fin = fopen(buff1, "r");
  15. if(!fin)
  16. {
  17.         puts("文件打开失败!\n");
  18.         system("pause");
  19.         exit(0);        
  20. }

  21. FILE *fout = fopen("结果.txt", "w");
  22. if(!fout)
  23. {
  24.         puts("文件打开失败!\n");
  25.         fclose(fin);
  26.         system("pause");
  27.         exit(0);        
  28. }

  29. char buff2[1024];


  30. while(!feof(fin))
  31. {
  32.         if(!fgets(buff2, 1024, fin);)
  33.         {
  34.                 puts("文件读取失败!\n");
  35.                 fclose(fin);
  36.                 fclose(fout);
  37.                 system("pause");
  38.                 exit(0);
  39.         }
  40.         
  41.         //(un,pw)[cookie]
  42.         if(buff2[0] != '(') continue;
  43.         int left = findchr(buff2, ',', 1);
  44.         if(left == -1) continue;
  45.         strncpy(buff1, buff2 + 1, left - 1);
  46.         fwrite(buff1);//ID
  47.         fwrite(":");
  48.         
  49.         left += 1;
  50.         int right = findchr(buff2, ')', left);
  51.         if(right == -1) continue;
  52.         strncpy(buff1, buff2 + left, right - left);
  53.         fwrite(buff1);//pw 不过一般icid都不带密码 所以这地方还需要判断
  54.         fwrite("\n");
  55. }
  56.         fclose(fin);
  57.         fclose(fout);

  58.         return 0;

  59. }

  60. //从位置pos开始寻找str中 chr的位置 失败或越界返回-1
  61. int findchr(char *str, char chr, size_t pos)
  62. {
  63.         int size = strlen(str);
  64.         for(int i = pos; i < size; i++)
  65.         {
  66.                 if(str[i] == chr) return i;
  67.         }
  68.         return -1;
  69. }
复制代码
回复 支持 反对

使用道具 举报

1万

回帖

3万

基友

4万

积分

仙人9层 Lv.18

 万般繁华不如初相见

Rank: 12Rank: 12Rank: 12

发表于 2013-6-24 12:13:54 | 显示全部楼层
不明觉厉
                     那一面相见后铭记
                     那一人相遇后别离
                     那样年代传奇背后幸福总姗姗来迟
回复 支持 反对

使用道具 举报

976

回帖

4958

基友

5323

积分

通神6段 Lv.9

人生太郁闷,情何以堪!!!

Rank: 5Rank: 5

发表于 2013-6-24 13:33:28 | 显示全部楼层
这个不会
回复 支持 反对

使用道具 举报

1457

回帖

-447

基友

1634

积分

通神3段 Lv.6

Rank: 3Rank: 3

QQ
发表于 2013-6-24 13:37:42 | 显示全部楼层
厉害了
回复 支持 反对

使用道具 举报

186

回帖

1313

基友

1265

积分

通神3段 Lv.6

Rank: 3Rank: 3

发表于 2013-6-24 14:20:33 | 显示全部楼层
看不懂= =  虽然我是学计算机的  但还没学编程
回复 支持 反对

使用道具 举报

5895

回帖

118

基友

1万

积分

苍海之魂

invincible

Rank: 13Rank: 13Rank: 13Rank: 13

 楼主| 发表于 2013-6-24 19:02:47 | 显示全部楼层
飞龙 发表于 2013-6-24 11:52
在txt里面写了一段  你运行试试= =
  1. 1>------ 已启动生成: 项目: icidtotxt, 配置: Debug Win32 ------
  2. 1>生成启动时间为 2013/6/24 19:01:55。
  3. 1>InitializeBuildStatus:
  4. 1>  正在创建“Debug\icidtotxt.unsuccessfulbuild”,因为已指定“AlwaysCreate”。
  5. 1>ClCompile:
  6. 1>  itt.cpp
  7. 1>f:\bc\icidtotxt\itt.cpp(18): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  8. 1>          c:\program files\microsoft visual studio 10.0\vc\include\stdio.h(234) : 参见“fopen”的声明
  9. 1>f:\bc\icidtotxt\itt.cpp(26): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
  10. 1>          c:\program files\microsoft visual studio 10.0\vc\include\stdio.h(234) : 参见“fopen”的声明
  11. 1>f:\bc\icidtotxt\itt.cpp(40): error C2143: 语法错误 : 缺少“)”(在“;”的前面)
  12. 1>f:\bc\icidtotxt\itt.cpp(40): error C2059: 语法错误:“)”
  13. 1>f:\bc\icidtotxt\itt.cpp(41): warning C4390: “;”: 找到空的受控语句;这是否是有意的?
  14. 1>f:\bc\icidtotxt\itt.cpp(53): error C3861: “strncpy”: 找不到标识符
  15. 1>f:\bc\icidtotxt\itt.cpp(54): error C2660: “fwrite”: 函数不接受 1 个参数
  16. 1>f:\bc\icidtotxt\itt.cpp(55): error C2660: “fwrite”: 函数不接受 1 个参数
  17. 1>f:\bc\icidtotxt\itt.cpp(60): error C3861: “strncpy”: 找不到标识符
  18. 1>f:\bc\icidtotxt\itt.cpp(61): error C2660: “fwrite”: 函数不接受 1 个参数
  19. 1>f:\bc\icidtotxt\itt.cpp(62): error C2660: “fwrite”: 函数不接受 1 个参数
  20. 1>f:\bc\icidtotxt\itt.cpp(74): error C3861: “strlen”: 找不到标识符
  21. 1>
  22. 1>生成失败。
  23. 1>
  24. 1>已用时间 00:00:02.84
  25. ========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
复制代码
回复 支持 反对

使用道具 举报

618

回帖

2506

基友

2105

积分

通神4段 Lv.7

Rank: 4

发表于 2013-6-24 19:47:52 | 显示全部楼层
又是这个帖子
回复 支持 反对

使用道具 举报

7657

回帖

86万

基友

34万

积分

天下一番

Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18

伯爵荣耀

发表于 2013-6-24 20:17:11 | 显示全部楼层
time 发表于 2013-6-24 19:02

哦草我忘了
写上:#include<string.h>

然后所有的fwrite都传上参数fout

你不会改啊= =
回复 支持 反对

使用道具 举报

5895

回帖

118

基友

1万

积分

苍海之魂

invincible

Rank: 13Rank: 13Rank: 13Rank: 13

 楼主| 发表于 2013-6-24 20:20:32 | 显示全部楼层
飞龙 发表于 2013-6-24 20:17
哦草我忘了
写上:#include

我没改
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|苍海国际 ( 鲁ICP备13020644号-1 )

GMT+8, 2024-11-22 12:03 , Processed in 0.102993 second(s), 28 queries .

Powered by Discuz! Theme By eRic Modified by 4bpa

© CangHai International We Do Our Rights!

返回顶部