搜索
bottom↓
回复: 89

开源一个小程序,删除C源代码里的注释!

  [复制链接]

出10入23汤圆

发表于 2014-1-4 17:42:53 | 显示全部楼层 |阅读模式
本帖最后由 zouzhichao 于 2014-1-4 17:45 编辑

自己写的,用来删除C源代码文件的注释,刚写完还热乎着,Ubuntu GCC 编译通过,做了简单测试,还不能保证无BUG,先贴代码
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>

  4. typedef signed char int8_t;
  5. typedef unsigned char uint8_t;
  6. typedef signed short int16_t;
  7. typedef unsigned short uint16_t;
  8. typedef signed int int32_t;
  9. typedef unsigned int uint32_t;
  10. typedef float flt_t;
  11. typedef double lflt_t;

  12. /*********************************************************************************
  13. * 此处有一个逻辑锁,三种状态:正常模式,注释模式,字符串模式
  14. * 1,一旦进入注释模式,必须结束注释模式才能进入别的模式,此间所有代码不输出
  15. * 2,一旦进入字符串模式,必须结束字符串模式才能进入别的模式,此间所有代码输出
  16. * 3,正常模式下,检测最先进入那个模式
  17. *********************************************************************************/
  18. int8_t _note_clr_(const int8_t* file_path_src, const int8_t* file_path_dst)
  19. {
  20.         enum MODE{_MODE_NORMAL_, _MODE_NOTE_, _MODE_STR_};
  21.         uint8_t mode; // 注释状态标志,字符串状态标志位
  22.         FILE* file_src; // 源文件
  23.         FILE* file_dst; // 目标文件
  24.         int8_t buffer[512]; // 文件缓存区,单行最多支持512个字符
  25.         int8_t* buffer_beg; // 字符串起始地址
  26.         int8_t* buffer_temp1; // 字符串指针1,用于查找
  27.         int8_t* buffer_temp2; // 字符串指针2,用于查找
  28.         int8_t* buffer_temp3; // 字符串指针3,用于查找
  29.         file_src = fopen(file_path_src, "r"); // 打开源文件
  30.         if (NULL == file_src)
  31.         {
  32.                 printf("error = 0!");
  33.                 return -1; // 源文件打开失败,返回-1
  34.         }
  35.         file_dst = fopen(file_path_dst, "w"); // 打开目标文件
  36.         if (NULL == file_dst)
  37.         {
  38.                 printf("error = 1!");
  39.                 fclose(file_src); // 目标文件打开失败,关闭源文件
  40.                 return -1; // 目标文件打开失败,返回-1
  41.         }
  42.         if (NULL == fgets((int8_t*)buffer, 512, file_src))
  43.         {
  44.                 fclose(file_src); // 关闭源文件
  45.                 fclose(file_dst); // 关闭目标文件
  46.                 return -1;
  47.         }
  48.         for (mode = _MODE_NORMAL_, buffer_beg = (int8_t*)buffer; ; )
  49.         {
  50.                 if (_MODE_NOTE_ == mode) // 注释模式
  51.                 {
  52.                         buffer_temp1 = (int8_t*)strstr((const int8_t*)buffer_beg, (const int8_t*)"*/"); // 查找"*/"
  53.                         if (NULL != buffer_temp1) // 如果找到了
  54.                         {
  55.                                 buffer_beg = buffer_temp1 + 2; // 找到新的起始点
  56.                                 mode = _MODE_NORMAL_; // 进入正常模式
  57.                                 continue;
  58.                         }
  59.                 }
  60.                 else if (_MODE_STR_ == mode)
  61.                 {
  62.                         buffer_temp1 = (int8_t*)strstr((const int8_t*)buffer_beg, (const int8_t*)""");
  63.                         if (NULL != buffer_temp1) // 如果找到了
  64.                         {
  65.                                 if (buffer_temp1 == buffer_beg)
  66.                                 {
  67.                                         mode = _MODE_NORMAL_; // 进入正常模式
  68.                                 }
  69.                                 else if ('\\' != *(buffer_temp1 - 1))
  70.                                 {
  71.                                         mode = _MODE_NORMAL_; // 进入正常模式
  72.                                 }
  73.                                 *buffer_temp1 = '\0'; // 截取有效字符串
  74.                                 fprintf(file_dst, (const int8_t*)"%s"", (const int8_t*)buffer_beg); // 输出有效字符串
  75.                                 buffer_beg = buffer_temp1 + 1; // 找到新的起始点
  76.                                 continue;
  77.                         }
  78.                 }
  79.                 else if (_MODE_NORMAL_ == mode)
  80.                 {
  81.                         buffer_temp1 = (int8_t*)strstr((const int8_t*)buffer_beg, (const int8_t*)"/*");
  82.                         buffer_temp2 = (int8_t*)strstr((const int8_t*)buffer_beg, (const int8_t*)""");
  83.                         buffer_temp3 = (int8_t*)strstr((const int8_t*)buffer_beg, (const int8_t*)"//");
  84.                         if ((NULL != buffer_temp1) && ((buffer_temp1 < buffer_temp2) || (NULL == buffer_temp2)) && ((buffer_temp1 < buffer_temp3) || (NULL == buffer_temp3)))
  85.                         {
  86.                                 // 如果最先出现"/*"
  87.                                 *buffer_temp1 = '\0'; // 截取有效字符串
  88.                                 fprintf(file_dst, (const int8_t*)"%s", (const int8_t*)buffer_beg); // 输出有效字符串
  89.                                 buffer_beg = buffer_temp1 + 2; // 找到新的起始点
  90.                                 mode = _MODE_NOTE_; // 进入注释模式
  91.                                 continue;
  92.                         }
  93.                         if ((NULL != buffer_temp2) && ((buffer_temp2 < buffer_temp1) || (NULL == buffer_temp1)) && ((buffer_temp2 < buffer_temp3) || (NULL == buffer_temp3)))
  94.                         {
  95.                                 // 如果最先出现"""
  96.                                 *buffer_temp2 = '\0'; // 截取有效字符串
  97.                                 fprintf(file_dst, (const int8_t*)"%s"", (const int8_t*)buffer_beg); // 输出有效字符串
  98.                                 buffer_beg = buffer_temp2 + 1; // 找到新的起始点
  99.                                 mode = _MODE_STR_; // 进入字符串模式
  100.                                 continue;
  101.                         }
  102.                         if ((NULL != buffer_temp3) && ((buffer_temp3 < buffer_temp1) || (NULL == buffer_temp1)) && ((buffer_temp3 < buffer_temp2) || (NULL == buffer_temp2)))
  103.                         {
  104.                                 // 如果最先出现"//"
  105.                                 *buffer_temp3 = '\0'; // 截取有效字符串
  106.                         }
  107.                         fprintf(file_dst, (const int8_t*)"%s", (const int8_t*)buffer_beg); // 输出有效字符串
  108.                 }
  109.                 if (feof(file_src) || (NULL == fgets((int8_t*)buffer, 512, file_src)))
  110.                 {
  111.                         fclose(file_src); // 关闭源文件
  112.                         fclose(file_dst); // 关闭目标文件
  113.                         return 0;
  114.                 }
  115.                 buffer_beg = (int8_t*)buffer;
  116.         }
  117.         return -1;
  118. }

  119. int main(int argc, char** argv)
  120. {
  121.         if (_note_clr_((const int8_t*)"test.c", (const int8_t*)"test-dst.c"))
  122.         {
  123.                 printf("error!");
  124.                 return EXIT_FAILURE;
  125.         }
  126.         printf("ok!");
  127.         return EXIT_SUCCESS;
  128. }
复制代码

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出10入23汤圆

 楼主| 发表于 2014-1-4 17:45:58 | 显示全部楼层
自己坐沙发

出0入4汤圆

发表于 2014-1-4 17:58:51 | 显示全部楼层
支持一下

出0入0汤圆

发表于 2014-1-4 18:18:49 | 显示全部楼层

出0入0汤圆

发表于 2014-1-4 18:20:34 | 显示全部楼层
哈哈,测试成功,但输出格式较乱哦。。。。。。

出0入0汤圆

发表于 2014-1-4 18:34:12 | 显示全部楼层
好厉害的说

出0入0汤圆

发表于 2014-1-4 18:37:42 | 显示全部楼层
哇塞,这个可是好东西啊,楼主要是能做出一个exe文件直接发布就更爽了

出0入0汤圆

发表于 2014-1-4 18:56:01 | 显示全部楼层
谢谢楼主分享。。。。

出0入0汤圆

发表于 2014-1-4 18:56:26 | 显示全部楼层
先顶 删除C源代码里的注释

出0入0汤圆

发表于 2014-1-4 19:00:59 | 显示全部楼层
非常感谢!学习一下

出0入0汤圆

发表于 2014-1-4 19:39:02 | 显示全部楼层

有没有加注释的?例如函数说明,文件说明,添加固定的格式

出0入0汤圆

发表于 2014-1-4 19:54:04 | 显示全部楼层
这个可以有 格式 要不能变呀 呵呵

出0入0汤圆

发表于 2014-1-4 19:54:27 | 显示全部楼层
将删掉的 变空格吧  不然 后面行的会上去

出0入0汤圆

发表于 2014-1-4 20:06:59 | 显示全部楼层
支持原创!

出0入0汤圆

发表于 2014-1-4 20:07:52 | 显示全部楼层
貌似很高端的样子哦

出0入0汤圆

发表于 2014-1-4 20:08:08 | 显示全部楼层
LZ辛苦了

出0入0汤圆

发表于 2014-1-4 20:12:45 | 显示全部楼层
$contents =~ s/((?<=\n)|^)[ \t]*\/\*.*?\*\/\n?|\/\*.*?\*\/|((?<=\n)|^)[ \t]*\/\/[^\n]*\n|\/\/[^\n]*//gs;

出0入0汤圆

发表于 2014-1-4 20:43:45 | 显示全部楼层

能解决宏定义导致的注释吗

出10入23汤圆

 楼主| 发表于 2014-1-4 21:10:16 | 显示全部楼层
coding2011 发表于 2014-1-4 18:20
哈哈,测试成功,但输出格式较乱哦。。。。。。

刚出炉的,BUG是难免的

出0入0汤圆

发表于 2014-1-4 21:10:25 | 显示全部楼层
这篇帖子怎么回事很奇怪啊,用手机UC上网一进这篇帖子浏览器就自动退出了。

出10入23汤圆

 楼主| 发表于 2014-1-4 21:11:15 | 显示全部楼层
enovo2468 发表于 2014-1-4 19:39
有没有加注释的?例如函数说明,文件说明,添加固定的格式

这个暂时还没考虑,不过以后会考虑试试

出10入23汤圆

 楼主| 发表于 2014-1-4 21:11:42 | 显示全部楼层
turf456 发表于 2014-1-4 21:10
这篇帖子怎么回事很奇怪啊,用手机UC上网一进这篇帖子浏览器就自动退出了。 ...

BUG  BUG  BUG  BUG

出10入23汤圆

 楼主| 发表于 2014-1-4 21:12:58 | 显示全部楼层
wuguoyan 发表于 2014-1-4 18:37
哇塞,这个可是好东西啊,楼主要是能做出一个exe文件直接发布就更爽了

额,我用的Ubuntu,没有windows了,要做成exe有点麻烦

出0入0汤圆

发表于 2014-1-4 21:13:54 | 显示全部楼层
很早以前已经用过哦。

出10入23汤圆

 楼主| 发表于 2014-1-4 21:14:24 | 显示全部楼层
coding2011 发表于 2014-1-4 18:20
哈哈,测试成功,但输出格式较乱哦。。。。。。

嗯,多谢反馈BUG

出10入23汤圆

 楼主| 发表于 2014-1-4 21:15:36 | 显示全部楼层
richards 发表于 2014-1-4 20:07
貌似很高端的样子哦

很简陋的,暂时还不能保证处理后,还能正常通过编译

出10入23汤圆

 楼主| 发表于 2014-1-4 21:31:32 | 显示全部楼层
修改一个BUG:
当有“//”型注释的时候,格式会乱,下一行会窜上来
原因:
当检测到“//”时,之前的处理方式是将“//”所在的位置的内容置为'\0',因此最后少了一个换行符
解决办法:
将“//”所在的位置的内容置为“\r\n\0”
原部分代码:
  1.                         if ((NULL != buffer_temp3) && ((buffer_temp3 < buffer_temp1) || (NULL == buffer_temp1)) && ((buffer_temp3 < buffer_temp2) || (NULL == buffer_temp2)))
  2.                         {
  3.                                 // 如果最先出现"//"
  4.                                 *buffer_temp3 = '\0'; // 截取有效字符串
  5.                         }
复制代码

新代码:
  1.                         if ((NULL != buffer_temp3) && ((buffer_temp3 < buffer_temp1) || (NULL == buffer_temp1)) && ((buffer_temp3 < buffer_temp2) || (NULL == buffer_temp2)))
  2.                         {
  3.                                 // 如果最先出现"//"
  4.                                 *buffer_temp3++ = '\r'; // 截取有效字符串
  5.                                 *buffer_temp3++ = '\n'; // 截取有效字符串
  6.                                 *buffer_temp3 = '\0'; // 截取有效字符串
  7.                         }
复制代码

出10入23汤圆

 楼主| 发表于 2014-1-4 21:33:23 | 显示全部楼层
希望大家测试时发现的BUG都提交上来,以便修改改进之

出0入0汤圆

发表于 2014-1-4 22:36:56 | 显示全部楼层
aheadlead 发表于 2014-1-4 20:43
能解决宏定义导致的注释吗

宏定义导致的注释?什么样?举个例子

出0入0汤圆

发表于 2014-1-4 22:45:34 | 显示全部楼层
没必要搞得这么复杂吧,莫非楼主想锻炼下文件方面的操作?
如果有人喜欢printf("/*****内容****/"),那怎么办?

出10入23汤圆

 楼主| 发表于 2014-1-4 22:51:54 | 显示全部楼层
haffman1 发表于 2014-1-4 22:45
没必要搞得这么复杂吧,莫非楼主想锻炼下文件方面的操作?
如果有人喜欢printf("/*****内容****/" ...

貌似你说的情况这个已经考虑了,不会误删
写这个虽然不成熟,也暂时看不到什么价值,但不是练手这么简单,自有用处

出10入23汤圆

 楼主| 发表于 2014-1-4 22:54:51 | 显示全部楼层
haffman1 发表于 2014-1-4 22:45
没必要搞得这么复杂吧,莫非楼主想锻炼下文件方面的操作?
如果有人喜欢printf("/*****内容****/" ...

比如说有人要源码,而你又不想给的太明白。。。。。。。

出0入0汤圆

发表于 2014-1-4 23:03:33 | 显示全部楼层
把自己的注释先删了吧

出0入0汤圆

发表于 2014-1-4 23:06:01 | 显示全部楼层
不错,代码保护

出0入0汤圆

发表于 2014-1-4 23:24:36 | 显示全部楼层
最好能把变量定义也改成无意义的,就跟牛气了

出0入0汤圆

发表于 2014-1-4 23:40:06 | 显示全部楼层
在 gitHub找到一个类似的 ,发给楼主参考参考

https://github.com/pebble8888/delcmt/blob/master/src/delcmt.cpp

出10入23汤圆

 楼主| 发表于 2014-1-4 23:42:25 | 显示全部楼层
lzl000 发表于 2014-1-4 23:03
把自己的注释先删了吧

测试的时候就是用的代码本身 ,哈哈,挥刀自宫,神功必成

出10入23汤圆

 楼主| 发表于 2014-1-4 23:44:09 | 显示全部楼层

初衷是尝试编译前端分析,然后感觉难度太大,做不下去,就换了这个难度稍小的怪胎

出10入23汤圆

 楼主| 发表于 2014-1-4 23:44:41 | 显示全部楼层
tsb0574 发表于 2014-1-4 23:24
最好能把变量定义也改成无意义的,就跟牛气了

这个是下一步计划

出10入23汤圆

 楼主| 发表于 2014-1-4 23:46:12 | 显示全部楼层
y574924080 发表于 2014-1-4 23:40
在 gitHub找到一个类似的 ,发给楼主参考参考

https://github.com/pebble8888/delcmt/blob/master/src/del ...

多谢

出0入0汤圆

发表于 2014-1-4 23:51:49 | 显示全部楼层
记号一个

出0入0汤圆

发表于 2014-1-4 23:56:19 | 显示全部楼层

嘿嘿,不用谢,

现在发现github sourceforge 都是好东西

有什么想法可以去这些地方搜搜,看看别人做过没有

出0入0汤圆

发表于 2014-1-5 00:06:54 | 显示全部楼层
很不错的说

出0入0汤圆

发表于 2014-1-5 00:16:34 | 显示全部楼层
rcdny123 发表于 2014-1-4 22:36
宏定义导致的注释?什么样?举个例子

http://bbs.csdn.net/topics/80412856

出0入0汤圆

发表于 2014-1-5 00:17:08 | 显示全部楼层
rcdny123 发表于 2014-1-4 22:36
宏定义导致的注释?什么样?举个例子

我这么搞纯属作死= =
不要在意

出0入0汤圆

发表于 2014-1-5 00:33:06 | 显示全部楼层
处理后就很难读懂了。

出10入23汤圆

 楼主| 发表于 2014-1-5 00:41:20 | 显示全部楼层
witlong 发表于 2014-1-5 00:33
处理后就很难读懂了。

要的就是这效果

出0入0汤圆

发表于 2014-1-5 00:58:52 | 显示全部楼层

遇到不想给,但是要给的情形,这段程序希望能给你点安慰。

出0入0汤圆

发表于 2014-1-5 04:04:12 | 显示全部楼层
楼主用LINUX啊,拿LEX做这个事情就几句话啊

出10入23汤圆

 楼主| 发表于 2014-1-5 11:50:48 | 显示全部楼层
stdio 发表于 2014-1-5 04:04
楼主用LINUX啊,拿LEX做这个事情就几句话啊

是的,正在学lex

出0入0汤圆

发表于 2014-1-5 12:21:34 | 显示全部楼层

要是能自动把变量全部换成a1,a2,a3,a4,a5,a6,不管是全局还是局部,无限排下去,那也叫一个强大啊!

出0入0汤圆

发表于 2014-1-5 14:45:45 | 显示全部楼层
不错,继续努力

出30入25汤圆

发表于 2014-1-5 15:08:40 | 显示全部楼层
我只想说为什么不用python.......匿了

出0入0汤圆

发表于 2014-1-6 16:10:37 | 显示全部楼层
本帖最后由 JQ_Lin 于 2014-1-6 16:17 编辑

“刚写完还热乎着,......”。
也就是写了个自用的小程序,还不知道咋样,晒出来,让大家帮助找BUG。所以,也算不上什么开源。

用刚刚找到的一个删除代码注释小程序得到的实际效果截图(点击图片看清晰大图)



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出10入23汤圆

 楼主| 发表于 2014-1-6 17:47:23 | 显示全部楼层
JQ_Lin 发表于 2014-1-6 16:10
“刚写完还热乎着,......”。
也就是写了个自用的小程序,还不知道咋样,晒出来,让大家帮助找BUG。所以, ...

标题就已说明了是小程序,难入你的法眼
只是不知道阁下心中的开源是如何?让在下见识见识?

出0入0汤圆

发表于 2014-1-6 23:20:39 来自手机 | 显示全部楼层
太感谢了!前还没离职,项目一完就要给源码,不爽。给就算了,现在还派老板亲戚专门验证学习!

出10入23汤圆

 楼主| 发表于 2014-1-6 23:32:37 | 显示全部楼层
zyw19987 发表于 2014-1-6 23:20
太感谢了!前还没离职,项目一完就要给源码,不爽。给就算了,现在还派老板亲戚专门验证学习! ...

代码尚未测试很久,建议你处理完后再编译一次,比较hex文件是否一致,以免出漏子

出0入0汤圆

发表于 2014-1-7 09:06:44 | 显示全部楼层
居然这么干    不让别人看懂你的代码吗?

出10入23汤圆

 楼主| 发表于 2014-1-7 22:06:46 | 显示全部楼层
condor 发表于 2014-1-7 09:06
居然这么干    不让别人看懂你的代码吗?

人在江湖,身不由己
对不爽的人,给不爽的代码,无可非议吧?
你若觉得我这么做不齿的话,不妨看看楼主位的代码注释是否详细
这东西只是防小人,不防君子的
更何况这东西的初衷是做编译前端处理的,只是虎头蛇尾,成了这个玩意

出0入0汤圆

发表于 2014-1-7 22:58:22 | 显示全部楼层
再加把劲,争取扎成马尾

出0入0汤圆

发表于 2014-1-7 23:11:08 | 显示全部楼层
请问楼主 ,删除代码注释干什么啊?呵呵 不懂求教?

出0入0汤圆

发表于 2014-1-8 08:12:26 | 显示全部楼层
zouzhichao 发表于 2014-1-7 22:06
人在江湖,身不由己
对不爽的人,给不爽的代码,无可非议吧?
你若觉得我这么做不齿的话,不妨看看楼主位 ...

不好意思呀 你误会我的意思了  我没有说你不好的意思

出0入0汤圆

发表于 2014-1-8 09:21:49 | 显示全部楼层
tsb0574 发表于 2014-1-4 23:24
最好能把变量定义也改成无意义的,就跟牛气了

最好又能再变回来。哈哈

出0入0汤圆

发表于 2014-1-8 10:26:59 | 显示全部楼层
支持一下,也个EXE文件更直接点

出0入8汤圆

发表于 2014-1-8 10:35:36 | 显示全部楼层
好东西  收藏

出0入0汤圆

发表于 2014-1-8 10:38:39 | 显示全部楼层
这种拿脚本语言写比较方便。

那个python正则匹配一下。

出0入0汤圆

发表于 2014-1-8 11:17:34 | 显示全部楼层
zouzhichao 发表于 2014-1-4 21:31
修改一个BUG:
当有“//”型注释的时候,格式会乱,下一行会窜上来
原因:

单纯替换到可能影响原来的格式
其实可以考虑:读原文件,边读边处理,再写入新文件,注释部分不保存到新文件。这样一致性会比较好。

出10入23汤圆

 楼主| 发表于 2014-1-8 12:42:01 | 显示全部楼层
condor 发表于 2014-1-8 08:12
不好意思呀 你误会我的意思了  我没有说你不好的意思

不好意思,误会了

出10入23汤圆

 楼主| 发表于 2014-1-8 12:44:53 | 显示全部楼层
lyyyuna 发表于 2014-1-8 10:38
这种拿脚本语言写比较方便。

那个python正则匹配一下。

是的,python lex yacc这些做这个简单些,无奈刚开始不会lex这些,只好硬着头皮拿C写了一个简陋的

出10入23汤圆

 楼主| 发表于 2014-1-8 12:46:47 | 显示全部楼层
wns245249509 发表于 2014-1-7 23:11
请问楼主 ,删除代码注释干什么啊?呵呵 不懂求教?

1,做编译前端词法,语法分析,最好是删掉注释
2,遇到不爽的老板,给源代码也让他不爽一下

出10入23汤圆

 楼主| 发表于 2014-1-8 12:54:05 | 显示全部楼层
wns245249509 发表于 2014-1-7 23:11
请问楼主 ,删除代码注释干什么啊?呵呵 不懂求教?

BTW,不过其实很多人开发的时候,本来就不写注释,我也极少写注释,一般只有在交流的时候才加注释

出0入0汤圆

发表于 2014-1-8 13:06:05 | 显示全部楼层
zouzhichao 发表于 2014-1-7 22:06
人在江湖,身不由己
对不爽的人,给不爽的代码,无可非议吧?
你若觉得我这么做不齿的话,不妨看看楼主位 ...

对不爽的人,给不爽的代码

出0入0汤圆

发表于 2014-1-8 22:28:06 来自手机 | 显示全部楼层
不错      

出0入0汤圆

发表于 2014-1-9 16:25:03 | 显示全部楼层
顶起来!
支持原创

出0入0汤圆

发表于 2014-1-10 20:05:59 | 显示全部楼层
JQ_Lin 发表于 2014-1-6 16:10
“刚写完还热乎着,......”。
也就是写了个自用的小程序,还不知道咋样,晒出来,让大家帮助找BUG。所以, ...

ls用的什么文件比较软件呢

我用 WinMerge 2.14.0,但是不能显示行号,每次找不同的地方比较麻烦。我看你的这个有显示行号功能,比较效果如何呢?

出0入0汤圆

发表于 2014-1-10 20:10:55 | 显示全部楼层
我来传一个可以使用的exe文件


缺点:速度有点慢,一个23466行的c文件删除了10分钟都没弄完,最后给强制终止了。。可能是我的电脑慢了?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-1-10 20:18:16 | 显示全部楼层
guxingganyue 发表于 2014-1-10 20:05
ls用的什么文件比较软件呢

我用 WinMerge 2.14.0,但是不能显示行号,每次找不同的地方比较麻烦。我看你 ...

哈哈,你看错了,没有行号的。
截图中的行号是 Total Commander 软件在比较两个文件时自动产生的行号。无用。

出0入0汤圆

发表于 2014-1-10 22:41:20 | 显示全部楼层
多谢楼主!!

出0入0汤圆

发表于 2014-1-10 23:33:57 | 显示全部楼层
本帖最后由 liufabing 于 2014-1-10 23:35 编辑

上传个网上下的,EXE文件.
用MSE扫过.
软件简介:

在我们写程序的时候为了区分程序或者模块,都会使用注释,假如源代码过多,注释又太多,最后你想清理一下注释内容的时候,这时候你会发现是个庞大的工程,不过现在有了“C类语言源代码注释去除程序”,让您这一工作变的很轻松就可以完成!只要选择好源程序文件点“开始处理”按钮进行处理即可!

提示:C类语言源代码注释去除程序支持文件格式有:c、c++、h、hpp、java

-----------------------------------------------------------------------------------------------------------
修改:
没注意76楼已经有了,删除附件.

出0入0汤圆

发表于 2014-1-11 11:23:05 | 显示全部楼层
mark 删注释。76l 有EXE程序

出0入0汤圆

发表于 2014-1-11 14:40:18 | 显示全部楼层
其实这个帖子中的4个软件有2个是非常的好用,快速。大家可以试试


http://www.amobbs.com/thread-4691467-1-1.html

出10入23汤圆

 楼主| 发表于 2014-1-13 14:25:15 | 显示全部楼层
guxingganyue 发表于 2014-1-11 14:40
其实这个帖子中的4个软件有2个是非常的好用,快速。大家可以试试

貌似给你写过代码

出0入0汤圆

发表于 2014-1-13 19:36:56 | 显示全部楼层
zouzhichao 发表于 2014-1-13 14:25
貌似给你写过代码

嗯,对,把一个文件夹下N个txt文件中的16进制转成10进制保存

再次感谢一下

出10入23汤圆

 楼主| 发表于 2014-1-13 19:50:14 | 显示全部楼层
guxingganyue 发表于 2014-1-13 19:36
嗯,对,把一个文件夹下N个txt文件中的16进制转成10进制保存

再次感谢一下 ...

看你的ID好眼熟

出0入0汤圆

发表于 2014-1-13 20:09:51 | 显示全部楼层
mark 删注释。

出0入0汤圆

发表于 2017-1-3 15:37:45 | 显示全部楼层
收藏下      

出0入0汤圆

发表于 2017-1-10 14:06:37 | 显示全部楼层

这个怎么使用呀

出10入23汤圆

 楼主| 发表于 2017-1-10 14:23:23 来自手机 | 显示全部楼层
GZLJZ 发表于 2017-1-10 14:06
这个怎么使用呀

刚学了点皮毛,要不贴个flex版本的?

出0入0汤圆

发表于 2017-1-10 15:27:40 | 显示全部楼层
本帖最后由 GZLJZ 于 2017-1-10 15:38 编辑
zouzhichao 发表于 2017-1-10 14:23
刚学了点皮毛,要不贴个flex版本的?


怎么删除C文件的注析呀。哦,看到了76l 有EXE程序,确定好用

出0入0汤圆

发表于 2017-2-7 19:22:55 | 显示全部楼层
学习了,谢谢                          
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 20:12

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表