解析配置文件的变量|用C语言读取一个文件中的内容如何对不同的行进行解析比如是配置文件

① ci怎么从配置文件读取变量

你不用读取这个配置文件, 直接加载文件即可。如在param中定义了A=1B=3你需要在myshell中获取param文件中的变量, 可以这样写. /PATH/param (或者source /PATH/param)echo $A $B

② 用C语言读取一个文件中的内容,如何对不同的行进行解析,比如是配置文件

很简单的 配置文件 微软有抓们的一套解析函数 INI文件是Windows系统中一类比较重要的文件,通常用来存放系统或者应用程序的配置信息,以方便系统或者应用 程序在初始化时再次读入。比如Windows系统中的配置文件win.ini和system.ini,它们就主要存放系统启动或用户登陆时的系统信息。这 项功能在方便了系统配置的同时,也为非法程序的自动运行提供了可乘之机。显然,这类文件的重要性应该引起我们的重视。但是对于这样的ini文件的读写操作 却与普通文本文件有着种种的不同,尤其体现在编程实现上。笔者曾经尝试用手动更改的方法在文件中加入一些项,使得自己的程序能够在初始化时自动运行,但是 却没有成功,最后还是藉由编程的方法来实现了。这里主要涉及到一些API函数,而这些函数又往往不被人们所熟知,本文的任务就是在介绍这些函数的同时,用 简单的程序作了示例,下面我们言归正传。先来看几个往配置文件中写入信息的函数:(1)WritePrivateProfileSection()用来在ini文件中直接向指定区域写入键和值的信息,其原型如下:BOOL WritePrivateProfileSection(LPCTSTR lpAppName, // 指向指定字段的字符串LPCTSTR lpString, // 指向要写入的键与值字符串LPCTSTR lpFileName // 指向文件名称字符串,如果不包含完整路径,则在windows目录下创建);用法示例:WritePrivateProfileSection(_T(“windows”),_T(“load=c:\\winnt\\notepad.exe”),_T(“c:\\winnt\\win.ini”));(2)WritePrivateProfileString()与上一个函数的不同点在于其将键和值分开了,原型如下:BOOL WritePrivateProfileString(LPCTSTR lpAppName, // 指向指定字段的字符串LPCTSTR lpKeyName, // 指向指定键的字符串LPCTSTR lpString, // 指向指定值的字符串LPCTSTR lpFileName // 指向文件名称字符串);用法示例:WritePrivateProfileString(_T(“windows”),_T(load”)_T(“c:\\winnt\\notepad.exe”),_T(“c:\\winnt\\win.ini”));(3)WritePrivateProfileStruct()与前面两个的不同在于文件尾有校验和,原型如下:BOOL WritePrivateProfileStruct(LPCTSTR lpszSection, //指向指定字段的字符串LPCTSTR lpszKey, //指向指定键的字符串LPVOID lpStruct, //指向存放要加入的数据的缓冲区,如果为NULL,则删除键UINT uSizeStruct, //缓冲区大小,以字节为单位LPCTSTR szFile //以零结尾的文件名称字符串,如果为空,则向win.ini写入);用法示例:WritePrivateProfileStruct(_T(“windows”),_T(“load”),pBuffer,sizeof(pBuffer),_T(“c:\\winnt\\win.ini”));(4)还有两个函数,是专门用来向win.ini文件写入的,函数原型如下:BOOL WriteProfileSection(LPCTSTR lpAppName, //指向指定字段的字符串LPCTSTR lpString //指向指定值的字符串);BOOL WriteProfileString(LPCTSTR lpAppName, //指向指定字段的字符串LPCTSTR lpKeyName, //指向指定键的字符串LPCTSTR lpString //指向指定值的字符串);下面来看几个对应的从ini文件获取信息的API函数,上面已经说得很详细了,这里只说其中两个:Dword GetPrivateProfileString(LPCTSTR lpAppName, //指向指定字段的字符串LPCTSTR lpKeyName, //指向键的字符串LPCTSTR lpDefault, //如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量LPTSTR lpReturnedString, //存放INI文件中值的目的缓存区DWORD nSize, //目的缓冲区的大小,以字节为单位LPCTSTR lpFileName //指向INI文件名称的字符串); UINT GetPrivateProfileInt(LPCTSTR lpAppName, //指向指定字段的字符串LPCTSTR lpKeyName, //指向键的字符串INT nDefault, //如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量LPCTSTR lpFileName //指向INI文件名称的字符串);程序示例1: 我们在这里建立了一个应用程序“App Name”,并且使用了一个INI文件“appname.ini”,在此INI文件中,我们写入如下内容:[Section1] FirstKey = It all worked out okay. SecondKey = By golly, it works. ThirdKey = Another test. 代码分析如下:#include <stdio.h> #include <windows.h>//主函数main() { //定义局部CHAR inBuf[80]; HKEY hKey1, hKey2; DWORD dwDisposition; LONG lRetCode; // 试图创建INI文件的键值lRetCode = RegCreateKeyEx ( HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows NT \\CurrentVersion\\IniFileMapping\\appname.ini", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey1, &dwDisposition); //判断是否出错if (lRetCode != ERROR_SUCCESS){ printf ("Error in creating appname.ini key\n"); return (0) ; } //试图设置一个节区的值lRetCode = RegSetValueEx ( hKey1, "Section1", 0, REG_SZ, "USR:App Name\\Section1", 20); //判断是否出错if (lRetCode != ERROR_SUCCESS) { printf ( "Error in setting Section1 value\n"); return (0) ; } //试图创建一个应用名称键值lRetCode = RegCreateKeyEx ( HKEY_CURRENT_USER, "App Name", 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey2, &dwDisposition); //判断是否出错if (lRetCode != ERROR_SUCCESS) { printf ("Error in creating App Name key\n"); return (0) ; }//强制系统重新读取映射区的内容到共享内存中,以便于将来对应用程序的调用可//以找到它,而不需要重新启动系统 WritePrivateProfileStringW( NULL, NULL, NULL, L"appname.ini" ); //向INI文件中添加一些键值 WritePrivateProfileString ("Section1", "FirstKey", "It all worked out okay.", "appname.ini"); WritePrivateProfileString ("Section1", "SecondKey", "By golly, it works.", "appname.ini"); WritePrivateProfileSection ("Section1", "ThirdKey = Another Test.", "appname.ini"); //测试一下添加的正确性GetPrivateProfileString ("Section1", "FirstKey", "Bogus Value: Get didn't work", inBuf, 80, "appname.ini"); printf ("%s", inBuf); return(0); }程序示例2:通过修改win.ini中的字段[windows]中的键load或run,或者是为system.ini中的字段[boot]中的键 shell增加值,可以达到设置程序自动运行的目的。假设我们要自动运行notepad.exe,修改后的win.ini或system.ini文件象这 样就可以:win.ini[windows]load=c:\winnt\notepad.exerun=c:\winnt\notepad.exesystem.ini[boot]shell=c:\winnt\explorer.exe c:\winnt\notepad.exe注意:system.ini文件的修改要特别注意,如果你单纯改成shell=c:\winnt\notepad.exe,则不能首先运行 explorer.exe,很明显你将看不到桌面和任务栏,呵呵,笔者在做实验时就曾因为粗心造成了这样的后果,不过不用害怕,只要你用我们下面提供的程 序,将它修改过来就可以了,默认时,系统在system.ini中的[boot]下是shell=c:\winnt\explorer.exe。很多非法 程序就是通过修改这两个文件来达到自启动的目的的。下面这个程序可以在附书光盘中找到,名称为“AutoPlay”,使用VC++6.0写成,核心程序源代码如下:void CAutoRunDlg::OnBrowse() {//只浏览exe文件CfileDialog fileDlg(TRUE,_T("EXE"),_T("*.exe"),OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,(_T("Executable Files (*.exe) |*.exe ||")));//显示打开文件的对话框//当操作者选择OK时,程序取得选择文件的全路径名(包括文件的路径及文件名称),并将相应的数值传输给相关的控件变量。if(fileDlg.DoModal()==IDOK){ m_strFileName=fileDlg.GetPathName();//向将变量中的数值传输给控件显示出来。 UpdateData(FALSE);} }void CAutoRunDlg::OnApply() {//更新数据UpdateData(TRUE); //写入ini文件LPCTSTR filename; filename=m_strFileName; WritePrivateProfileString(_T("windows"),_T("load"),filename,_T("c:\\winnt\\win.ini"));}您如果要更改system.ini,可以将WritePrivateProfileString(_T("windows"),_T("load"),filename,_T("c:\\winnt\\win.ini"));改为 WritePrivateProfileString(_T("boot"),_T("shell"),filename,_T("c:\\winnt \\system.ini"));并且在输入文件名时输入c:\winnt\explorer.exe c:\winnt\notepad.exe。写到这里,本文的意图基本达到,如果您可以把某些代码亲自实现,相信读者会有比较大的收获。

③ 如何在spring中读取properties配置文件里面的信息

首先我使用的是注解的方式。

创建properties配置文件Key=value的形式

在spring的配置文件中进行导入专代码如下:属

<util:properties id="test" location="classpath:test.properties"/>

提示:路径问题自己把握

3.在你需要使用的类中这样:

private @Value("#{test['isOpen']}") String isOpen;

记得写getset方法

isOpen这个在test.properties中是这样的:

isOpen=true

如果有任何问题,可追加。望采纳

④ 请问一下,flash as3做游戏怎么样使用配置文件,请问一下游戏的配置文件是怎么写和调用的

建议初学者配置直接写在游戏里,并不建议使用单独的配置文件。

如果有一定基础了,对as3的相关api和机制都有了了解,那么就可以考虑分离配置了。

配置的加载并无官方的api直接支持,一般都是自行封装相应功能,根据as3的语言特点,json和xml比较适合作为配置文件,如果需要表格配置,可以考虑自行实现csv的解析。

一般配置文件的实现思路如下:

配置文件的加载

配置文件要使用首先得加载到游戏中,这里主要是封装URLLoader这个类,用其加载文本或者二进制数据。

配置文件的解析

这方面因为as3中原生支持xml和json数据,因此这两种配置文件很容易从文本转为代码可以识别的数据,xml可以使用XML(text),json可以使用JSON.parse(text)。

配置文件的调用

基于解析之后的配置文件可以保存为相应变量,直接在代码中读取即可,比如xml文件可以解析为XML,json数据可以解析为Object,可以很方便的调用。

⑤ 怎样查看yum配置文件中的变量$r

你的问题不太明确,下面是相关yum的一些内容。yum使用仓库保存管理rpm的软件包、仓库的配置文件保存在/etc/yum.repos.d/目录下格式如下:[LinuxCast] #仓库的名字 name = 对名字的解释 #描述仓库的基本信息 baseurl = 仓库的地址 #本地的或者以http、ftp、file、ntfs enable = 1 #是否启用 gpgcheck = 1 #是否校验yum配置文件必须以.repo结尾,一个配置文件中可以保存多个yum仓库的配置信息,/etc/yum.repos.d/目录下可以存在多个配置文件.使用yum操作软件的相关命令:yum install software-name #安装指定的软件 yum remove software-name #卸载指定的软件 yum update software-name #更新指定的软件使用yum进行查询操作:yum search keyword #搜索 yum list (all|installed|recent|updates) #列出全部、安装的、最近的、软件更新 yum info packagename #显示指定软件信息 yum whatprovides packagename #查询哪个rpm包含软件包自己创建yum仓库:1、通过rpm安装createrepo文件2、运行命令:createrepo -v /yum-dir #创建yum仓库的索引文件3、创建一个yum仓库的配置文件4、yum clean all #清除yum缓存信息5、使用yum对软件包进行分组:createrepo -g /tmp/comps.xml /yum-dir

⑥ 组织配置文件和变量问题,怎么解决

1.docker环境变量是在制作镜像的时候就需要提前想好,有哪些参数是部署容器的时候会经常更改,然后把这些参数抽出来做成容器的环境变量,然后在部署的容器的时候填入不同的参数即可。(如果后续发现有一些参数不同场景下部署的时候也会修改,那就需要再重新制作镜像了。)2.应用配置文件可以有多种管理方法,上述的管理方式不太灵活。灵活的管理方式是将配置文件和镜像剥离开,这样就不会被镜像给绑定了。

⑦ ci怎么从配置文件读取变量

你不用读取这个配置文件,直接加载文件即可。如在param中定义了A=1B=3你需要在myshell中获取param文件中的变量,可以这样写./PATH/param(或者source/PATH/param)echo$A$B

⑧ 用shell读取一个配置文件,文件里面如果设置两个变量,又如何用shell读取这两个变量

你不用读取这个配置文件, 直接加载文件即可。如在param中定义了A=1B=3你需要在myshell中获取param文件中的变量, 可以这样写. /PATH/param (或者source /PATH/param)echo $A $B


赞 (0)