| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 210 人关注过本帖
标题:怎么匹配数组,然后提取数据更新到文件呢?
只看楼主 加入收藏
szchen2018
Rank: 2
等 级:论坛游民
帖 子:36
专家分:21
注 册:2021-11-20
结帖率:90.91%
收藏
已结贴  问题点数:20 回复次数:7 
怎么匹配数组,然后提取数据更新到文件呢?
例如:
test.rar (19.66 KB)

把amp1-l_format.h里面m_reg_tab数组数据更新到amp1.h 中m_reg_tab_move_l数组;
把amp1-r_format.h里面m_reg_tab数组数据更新到amp1.h 中m_reg_tab_move_r数组;
把amp1-c_format.h里面m_reg_tab数组数据更新到amp1.h 中m_reg_tab_move_cen数组;

把amp2-l_format.h里面m_reg_tab数组数据更新到amp2.h 中m_reg_tab_music_l数组;
把amp2-r_format.h里面m_reg_tab数组数据更新到amp2.h 中m_reg_tab_music_r数组;
把amp2-c_format.h里面m_reg_tab数组数据更新到amp2.h 中m_reg_tab_music_cen数组;

把amp3-lformat.h里面m_reg_tab数组数据更新到amp3.h 中m_reg_tab_news_l数组;
把amp3-r_format.h里面m_reg_tab数组数据更新到amp3.h 中m_reg_tab_news_r数组;
把amp3-c_format.h里面m_reg_tab数组数据更新到amp3.h 中m_reg_tab_news_cen数组;

把amp1-l_format.h里面m_ram1_tab数组数据更新到amp1.h中 eq_tables_ram1_left_move数组;
把amp1-r_format.h里面m_ram1_tab数组数据更新到amp1h中 eq_tables_ram1_right_move数组;
把amp1-c_format.h里面m_ram1_tab数组数据更新到amp1.h中 eq_tables_ram1_cen_move数组;

把amp2-l_format.h里面m_ram1_tab数组数据更新到amp2.h中 eq_tables_ram1_left_music数组;
把amp2-r_format.h里面m_ram1_tab数组数据更新到amp2.h中 eq_tables_ram1_right_music数组;
把amp2-c_format.h里面m_ram1_tab数组数据更新到amp2.h中 eq_tables_ram1_cen_music数组;

把amp3-l_format.h里面m_ram1_tab数组数据更新到amp3.h中 eq_tables_ram1_left_news数组;
把amp3-r_format.h里面m_ram1_tab数组数据更新到amp3.h中 eq_tables_ram1_right_news数组;
把amp3-c_format.h里面m_ram1_tab数组数据更新到amp3.h中 eq_tables_ram1_cen_news数组;
搜索更多相关主题的帖子: 更新 文件 提取 数据 数组 
2022-06-19 11:13
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:453
帖 子:8410
专家分:49994
注 册:2011-1-18
收藏
得分:0 
把amp1-l_format.h里面m_reg_tab数组数据更新到amp1.h 中m_reg_tab_move_l数组;
是m_reg_tab_movie_l吧;
另外,前者类型是 const REG_TAB m_reg_tab[],后者类型是 const cfg_reg m_reg_tab_movie_l[],那 REG_TAB 与 cfg_reg 是不是同一个类型?

直接#include就行了,不需要拷贝,比如
amp1.h 中
#define REG_TAB cfg_reg
#define m_reg_tab m_reg_tab_movie_l
#include "amp1-l_format.h所在目录/amp1-l_format.h"
#undef m_reg_tab
#undef REG_TAB
其它以同样的方式处理
2022-06-19 20:35
szchen2018
Rank: 2
等 级:论坛游民
帖 子:36
专家分:21
注 册:2021-11-20
收藏
得分:0 
回复 2楼 rjsp
谢谢大佬回答!

把amp1-l_format.h里面m_reg_tab数组数据更新到amp1.h 中m_reg_tab_move_l数组;
是m_reg_tab_movie_l吧;
>>是的

另外,前者类型是 const REG_TAB m_reg_tab[],后者类型是 const cfg_reg m_reg_tab_movie_l[],那 REG_TAB 与 cfg_reg 是不是同一个类型?
>>是同一类型,cfg_reg也可以改为REG_TAB。

直接#include就行了,不需要拷贝,比如
amp1.h 中
#define REG_TAB cfg_reg
#define m_reg_tab m_reg_tab_movie_l
#include "amp1-l_format.h所在目录/amp1-l_format.h"
#undef m_reg_tab
#undef REG_TAB
其它以同样的方式处理
>>那amp1.h中原本的m_reg_tab_movie_l这些可以删除了是吗?
2022-06-19 21:40
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:453
帖 子:8410
专家分:49994
注 册:2011-1-18
收藏
得分:0 
那amp1.h中原本的m_reg_tab_movie_l这些可以删除了是吗?
是,必须删除
2022-06-19 22:21
szchen2018
Rank: 2
等 级:论坛游民
帖 子:36
专家分:21
注 册:2021-11-20
收藏
得分:0 
回复 4楼 rjsp
好的,谢谢!编译通过了,明天验证下实际跑起来数据数据是否能正确。
2022-06-19 22:58
szchen2018
Rank: 2
等 级:论坛游民
帖 子:36
专家分:21
注 册:2021-11-20
收藏
得分:0 
回复 4楼 rjsp
另外,请教一下,用C提取数据是不是非常麻烦和费力呢?我看了网上文件处理视频和文章,基本没人细讲这部分如何应用
2022-06-20 00:04
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:453
帖 子:8410
专家分:49994
注 册:2011-1-18
收藏
得分:20 
用C提取数据是不是非常麻烦和费力呢?
“麻烦和费力”是你自身的主观感受,别人又未必与你一样,这无法回答。对于同一件事,有的人觉得麻烦,有的人觉得简单。

程序代码:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>

bool pickup_array( const char* filename, const char* section_name )
{
    FILE* fp = fopen( filename, "rt" );
    if( !fp )
        return false;

    bool bfound = false;

    char section_line[1000];
    char* section_line_end = section_line;
    for( int ch; ch=fgetc(fp), ch!=EOF; )
    {
        if( bfound )
            putchar( ch );

        if( ch == '\n' )
        {
            *section_line_end = '\0';

            char sname[100], tmp;
            if( !bfound && sscanf(section_line," const %*s %[_0-9A-Za-z] [ ] = %c",sname,&tmp)==2 && tmp=='{' && strcmp(sname,section_name)==0 )
            {
                puts( section_line );
                bfound = true;
            }
            else if( bfound && sscanf(section_line," } %c",sname)==1 && *sname==';' )
                break;

            section_line_end = section_line;
        }
        else if( section_line_end != section_line+sizeof(section_line)-1 )
            *section_line_end++ = (char)ch;
    }

    bool result = ferror(fp)!=0;
    fclose( fp );
    return result;
}

int main( void )
{
    //pickup_array( "C:/Users/BruceTeen/Desktop/test/test-a/amp1-l_format.h", "m_reg_tab" );
    pickup_array( "C:/Users/BruceTeen/Desktop/test/test-a/amp1-l_format.h", "m_ram1_tab" );
}


基本没人细讲这部分如何应用
听不懂,这不就是简单的文件读写嘛,我不信网上找不到文件读写的讲解。
假如你想说的是没有人讲解怎么从源代码中提取数组定义,…嗯…,相当于老师讲了“一个苹果加一个苹果等于两个苹果”后小明要求将“苹果”换成“鸭梨”、“中华”、“茅台”等世上有的可数名词后再讲一遍。
不管你想用在何处,关于文件的操作就是 打开、关闭、读、写 等等几个简单操作。
2022-06-20 13:03
szchen2018
Rank: 2
等 级:论坛游民
帖 子:36
专家分:21
注 册:2021-11-20
收藏
得分:0 
回复 7楼 rjsp
谢谢解答,验证可以,我再尝试修改把提取到的数据写到amp1.h等文件去。
我的意思是老师讲了水泥、砖块,钢筋可以建房子,但没教怎么建民宅,别墅,高楼大厦....
数据提取和处理,可以推荐一些书或资料学习嘛。
2022-06-20 14:56
快速回复:怎么匹配数组,然后提取数据更新到文件呢?
数据加载中...
 
   



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

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