| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 940 人关注过本帖
标题:求大神帮忙,文件操作程序
只看楼主 加入收藏
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:0 
回复 20楼 寒风中的细雨
饿。。。太悲剧了
那我整理一下需求告诉你
2012-11-20 15:09
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:0 
回复 20楼 寒风中的细雨
图一
图片附件: 游客没有浏览图片的权限,请 登录注册

图二:
图片附件: 游客没有浏览图片的权限,请 登录注册


需求是把.c文件中的所有子函数分离出来
图一:源文件
图二:命令行生成的文件
如:Delay    fuction.c    668;"    f
Delay(代表的是子函数名称)    fuction.c(代表的是子函数所在的.C文件)    668(代表子函数所在源文件中的行号)    f(代表是子函数)

1.需要把Delay    fuction.c    668;"    f 这四项分离出来,各自存在一个数组中。
2.提取出行号668
3.回源文件查找该行在子函数前加#if 0,后加#endif
2012-11-20 15:20
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
回复 22楼 daniel_
看着情况你应该比较清楚呀  怎么还在纠结啥?


你的哪个子函数  加上  宏开关之后  还是存在原来的文件中吧?

2012-11-20 16:25
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:0 
回复 23楼 寒风中的细雨
不是的
是要导出N(子函数的个数)个。
2012-11-20 17:13
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
回复 24楼 daniel_
然后  导出来 放那儿?
2012-11-20 17:20
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:0 
回复 23楼 寒风中的细雨
我是知道大体的理论思路,但是没有编码经验的。
我只知道怎么写,但是细节问题不会处理。

下午搞了一下午的strtok_r,发现这个函数改名了strtok_s

现在能把做到这一步了,
图片附件: 游客没有浏览图片的权限,请 登录注册

能把行号这一栏提取出来了
下一步不知道怎么把后面的;"除掉
再atoi(),转换成数字,file1的简单模块就搞定了

-----
这是个实验版本
后期还是要用结构体什么的做的
大神给点建议吧
2012-11-20 17:24
daniel_
Rank: 5Rank: 5
等 级:职业侠客
帖 子:212
专家分:307
注 册:2012-11-13
收藏
得分:0 
回复 25楼 寒风中的细雨
倒出来的是要用命令行做的  这个不是C实现的
-------
附加刚刚上面实现的简单程序
#include<stdio.h>
#include<string.h>
#define INFO_MAX_SZ 1024
int main()
{
int in=0;
int m = 0;
int j=0;
int k=0;
char buffer[INFO_MAX_SZ]="Timer1_isr  fucti.c   219;\"           f1\nTimer2_isr    fuc.c             21;\" f2\nTimer3_isr    f.c             219;\" f3\nTimer4_isr    fuction.c             2;\" f";

char *p[20];
char *buf=buffer;

char *outer_ptr=NULL;
char *inner_ptr=NULL;

while((p[in]=strtok_s(buf,"\n",&outer_ptr))!=NULL) {
buf=p[in];
while((p[in]=strtok_s(buf," ",&inner_ptr))!=NULL) {
in++;
buf=NULL;
}
buf=NULL; }

printf("Here we have %d strings\n",in);
for (j=0; j<in; j++){
printf(">p[%d]=%s<\n",j,p[j]);

}
for(k= 2;k< in;k+=4)
printf("%s ",p[k]);

return 0;
}
2012-11-20 17:25
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
回复 27楼 daniel_
那建议你直接弄个脚本 过滤
2012-11-20 17:34
快速回复:求大神帮忙,文件操作程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038304 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved