精华内容
下载资源
问答
  • 不仅Windows操作系统将大名鼎鼎的win.ini作为记录当前系统状态,并根据其记录内容系统进行配置的一种便捷的方法,而且众多的应用软件也广泛地使用该类型的配置文件软件进行记录、配置。本文

    在Visual C++ 6.0下对Windows配置设置文件的存取访问方法的详细介绍。

      一、 引言

          不论是对于程序开发人员还是软件应用人员,一定不会对扩展名为"ini"的文件感到陌生,不仅Windows操作系统将大名鼎鼎的win.ini作为记录当前系统状态,并根据其记录内容对系统进行配置的一种便捷的方法,而且众多的应用软件也广泛地使用该类型的配置文件来对软件进行记录、配置。本文就针对配置设置文件的使用展开讨论,以期能为软件状态的记录与设置寻求一种方便简洁的实现方法。

      二、 配置设置文件概述

      配置设置文件是Windows操作系统下的一种特殊化的ASCII文件,以"ini"为文件扩展名。该文件也被称做是初始化文件(initialization file)和概要文件(profile),通常应用程序可以拥有自己的配置设置文件来存储自己的状态信息,一般来说私有的配置设置文件比较小,可以减少程序在初始化时读取配置文件时的信息量,从而可以提高程序的启动速度、提高应用程序和系统的性能。但如待存取的信息涉及到Windows系统环境或是其他的应用程序时才必须在Windows系统的配置文件win.ini中记录并在访问的同时发送出消息WM_WININICHANGE给所有的顶层窗口,通知其他的程序系统的配置文件已做了更改。但由于win.ini中不仅记录了系统的有关信息,也存储着许多其他应用软件的一些配置数据,所以访问的数据量要远比私有的配置文件大的多。

      配置文件里的信息之所以能为系统和众多的软件所读取并识别,是由于其内部对数据的存取采用了预先约定好的"项-值对(entry-value pairs)"存储结构来对待存取的数据进行分门别类地进行条理清晰的存储。我们可以打开系统目录下的win.ini文件:

    [windows]
    load=
    run=
    NullPort=None

    [Desktop]
    WallpaperStyle=2
    Pattern=(无)

    [intl]
    s2359=PM
    iCountry=86
    ……

      可见,配置文件把信息分成若干"节",节标题放在方括号中,如[Desktop]就是Desktop节,在一个节内包含了一些与之相关相近的"项",并通过等号对其进行赋值。一般的形式如下所示:

    [SECTION]
    ENTRY=VALUE

      其中VALUE值可以有两种类型:数值型和字符串型,而且Windows操作系统专门为此提供了6个API函数来对配置设置文件进行读、写:

      GetPrivateProfileInt() 从私有初始化文件获取整型数值
      GetPrivateProfileString() 从私有初始化文件获取字符串型值
      GetProfileInt 从win.ini 获取整数值
      GetProfileString 从win.ini 获取字符串值
      WritePrivateProfileString 写字符串到私有初始化文件
      WriteProfileString 写字符串到win.ini

      在这里需要指出:当向配置文件存储信息时,不论是数据还是字符串都要先转换成字符串,然后再行存储。


    利用GetPrivateProfileString读取配置文件(.ini)

    配置文件中经常用到ini文件,在VC中其函数分别为:

    写入.ini文件:bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName);

    读取.ini文件:DWORD GetPrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpDefaut,LPSTR lpReturnedString,DWORD nSize,LPCTSTR lpFileName);

    读取整形值:UINT GetPrivateProfileInt(LPCTSTR lpAppName,LPCTSTR lpKeyName,INT nDefault,LPCTSTR lpFileName);

    其中个参数的意思:

    LPCTSTR lpAppName ------- INI文件中的一个字段名

    LPCTSTR lpKeyName -------- lpAppName 下的一个键名,也就是里面具体的变量名

    LPCTSTR lpString ---------是键值,也就是变量的值, 必须为LPCTSTR或CString类型

    LPCTSTR lpFileName --------完整的INI文件路径名

    LPCTSTR lpDefaut ----------如果没有其前两个参数值,则将此值赋给变量

    LPSTR lpReturnedString --------接收INI文件中的值的CString对象,即接收缓冲区

    DWORD nSize ------接收缓冲区的大小

    例子:

    CString StrName,Strtemp;

    int nAge;

    StrName = "jacky";

    nAge = 13;

    WritePrivateProfileString("Student","Name",StrName,"c:\\setting.ini");

    结果:(INI文件中显示如下:)

    [Student]

    Name=jacky

    读取:

    CString SName;

    GetPrivateProfileString("Student","Name","DefaultName",SName.GetBuffer(MAX_LENGTH),MAX_LENGTH,"c:\\setting.ini");

    结果:SName = "jacky";这里需要注意点就是用完GetBuffer函数后一定要释放(用SName.ReleaseBuffer()函数),不然后面再用到SName的其他子函数就会失灵。

    读整数比较简单,如下

    int Result = GetPrivateProfileInt("Student","nAge",0,"c:\\setting.ini")返回值即为所读取的结果!

    在GetPrivateProfileString最后一个参数是配置文件路径的参数,此路径只能是绝对路径,不能是相对路径,但现在我需要是我的exe文件能和我的配置文件在一起。因此我使用了GetCurrentDirectory函数。

    原代码如下:

    CString server_ip;
    CString des="";
    ::GetCurrentDirectory(MAX_PATHLENGTH,des.GetBuffer(MAX_PATHLENGTH));
    des.ReleaseBuffer();
    des+="
    \\config.ini";
    GetPrivateProfileString("PhoneDemo","Server_IP","",server_ip.GetBufferSetLength(15),15,des);
    server_ip.ReleaseBuffer();

    注意:在这里使用CString变量时,在使用完GetBuffer后,紧接着一定要使用ReleaseBuffer()函数,才可以进行其他的诸如字符串+操作

    转自CSDN-cherryt

    展开全文
  • mysql数据库在渗透过程中能够使用功能还是比较多,除了读取数据之外,还可以进行对文件进行读写(但前提是权限足够)总结下mysql在不同版本读取文件方法大致有这3个:1.load_file()2.load data infile()3.system ...

    mysql数据库在渗透过程中能够使用的功能还是比较多的,除了读取数据之外,还可以进行对文件进行读写(但前提是权限足够)

    总结下mysql在不同版本读取文件方法大致有这3个:

    1.load_file()

    2.load data infile()

    3.system cat

    load_file()和load data infile读取文件的方法为:新建一个表,读取文件为字符串形式插入表中,然后读出表中数据。

    但是通常情况下有两个前提:

    1.在拥有file权限的前提下

    2.secure_file_priv不为NULL

    secure_file_priv的值可以在这样查看

    fdb1667668cf88124c0aa25e7369e854.png

    在mysql 5.6.34版本以后 secure_file_priv的值默认为NULL。可以通过以下方式修改

    windows下:

    修改mysql.ini 文件,在[mysqld] 下添加条目: secure_file_priv =

    保存,重启mysql。

    Linux下:

    在/etc/my.cnf的[mysqld]下面添加local-infile=0选项。

    1.load_file()

    首先我在/tmp目录下创建一个文档

    724b6773cf6f2a4ff16dee0d56d950aa.png

    运行mysql

    sql命令如下:

    1 create table user(cmd text);2 insert into user(cmd) values (load_file('/tmp/1.txt'));3 select * from user;

    11e640de234e5ba4413ffcb8a6b121c3.png

    2.load data infile

    其实load data infile和load_file()用法上没有什么区别,只是在注入过程中,往往会过滤掉load_file()这个函数,但是仍然有load data infile可以使用。

    1 load data infile '/tmp/1.txt' into table user;

    c952329f9121c4e629eb4f1896dff640.png

    3.system cat

    在mysql版本为5.x时,除了可以使用上两种方法外,还可以使用系统命令直接读取文件

    aa2eb7c5b60a4138423949d2ccb5ab65.png

    注意:

    1.此方法只能在本地读取,远程连接mysql时无法使用system。

    2. 无法越权读取。

    展开全文
  • 打开个随机存取文件后,要么进行只读操作,要么就同时进行读写操作。 具体选择是把构造方法的第二个参数指定成一个“r”或“rw”、“rws”、“rwd”来实现。 随机存取文件的行为类似于储存在文件...

    RandomAccessFile是一种特殊的流类,它可以在文件的任何地方读取或写入数据。
    打开一个随机存取文件后,要么对它进行只读操作,要么就同时对它进行读写操作。
    具体的选择是把构造方法的第二个参数指定成一个“r”或“rw”、“rws”、“rwd”来实现的。
    随机存取文件的行为类似于储存在文件系统中的一个大型byte数组,
    它提供了一个指向该数组的游标或索引,称为文件指针,
    该文件指针用来标志要进行读写操作的下一字节的位置。
    getFilePointer方法可以返回文件指针的当前位置。
    而seek方法可以将文件指针移动到文件内部的任意字节位置。

    注意:随机存取文件只限于操作磁盘文件,不能访问来自网络或内存映像的流。

    展开全文
  • 而另外还有一种比较正规的方法是先将要编辑文档“签出”,编辑完成后再“签入”。使用这种方法可能会避免一些问题产生。 下面我们以“行政部”子网站中“行政部文档”文档库文件存取设置”文件做为例子来...
    致的说了一些对文档进行编辑的方法。点击文档库中的文档,可以直接打开相应的软件进行编辑。而另外还有一种比较正规的方法是先将要编辑的文档“签出”,编辑完成后再“签入”。使用这种方法可能会避免一些问题的产生。
    下面我们以“行政部”子网站中的“行政部文档”文档库的“文件存取设置”文件做为例子来做测试。

    1.1签出文件

    要将文件签出,可以在文档库中,点击文件右边的小箭头,在下拉菜单中选择“签出”。



    或者使用office软件打开文档后,点击“office按钮”,在“服务器”菜单中选择“签出”。



    1.2强制签出

    除了上面的方法由用户自行使用签出文件的功能外,还可以由系统来强制用户使用签出功能。
    在文档库的“设置”菜单中,选择“文档库设置”



    选择“常规设置”下面的“版本控制设置”



    在“是否要求先签出文档然后再对其进行编辑?”选项中,选择“是”,单击“确定”完成设置。



    1.3签出文档的保存路径

    经过设置后,当打开文档的时候,会弹出下面的对话框,可以选择“签出并编辑“直接对文档进行编辑。



    如果选择的是只读,可以看到打开文档后,原来的“脱机编辑”按钮变成了“签出”按钮。



    文档签出后,会在前面的图标中看到一个小箭头,显示该文档已经被签出。



    而签出的文档会脱机存放在指定的文件夹中,等待用户编辑。默认情况是存放在“我的文档”中的“SharePoint 草稿”文件夹中。



    如果要改变默认的文档存放位置,可以在office软件选项中,点击“保存”,在其中的“文档管理服务器文件的脱机编辑选项”中进行相应的修改。



    1.4签入文档

    对签出的文档进行编辑后,保存时会弹出一个对话框,询问是否签入文档。如果文档已经编辑完成的,可以点击“是”。



    如果在非编辑状态,要对文档进行“签入”操作,可以按以下步骤:
    在office软件中,点击“office按钮”,选择“服务器”菜单中的“签入”



    在弹出的注释中填入相应的文字。



    或者直接在文档库中,点击文档右边的小箭头,在下拉菜单中选择“签入”



    同样输入相应的注释文字即可。



    1.5强制签入

    如果有某个人签出文档后,迟迟没有使用签入功能,则其他用户就无法对该文档进行编辑。这个时候,除了让该用户签入文档外,还可以由对文档库有“完全控制”权限的用户强制签入文档。

    注:强制签入文档不会保存签出用户在签出文档后编辑的内容

    在文档库右边的“所有文档”下拉菜单中,选择“修改此视图”。



    在“栏”项目中勾选“签出对象”。



    确认后可以看到在文档库中多了一栏“签出对象”,显示签出的文档是由哪个用户签出的。



    使用有权限的用户进入,点击文档右边小箭头,在下拉菜单中选择“签入”。



    填入相关注释文字。



    弹出提示窗口,点击确定后会强制签入该文档。



    1.6使用内容审核

    在我们为文档库设置好权限后,相关的人员就可以新建或者上传文件了。但是我们会发现,如果没有一个控制管理,可能会出现大家随意的上传发布文件,有一些不可以发布的文件也会给散布出去,
    这时候就可以启用文档库的“内容审核”机制,使上传的文件经过审核后其他人才可以浏览。
    在文档库中点击“设置”,选择下拉菜单中的“文档库设置”



    点击“常规设置”下的“版本控制设置”



    在“提交的项目是否需要内容审批?”项中选择“是”
    根据需要选择“草稿项目安全性”,一般保存默认选择“仅限可批准项目的用户(已经该项目的作者)”,也就是只有具备审批权限的用户和作者可以看到未批准的文档。



    用一个普通用户登录后上传一个文档,这里使用“行政部文员”用户上传了一个“版本控制”的文档。上传后可以看到审核状态显示的是“待定”。



    用另一个普通用户“行政部主管”登录,发现文档库中并没有出现刚刚上传的文档。



    使用有审批权限的用户登录,点击该文件右边的小箭头,在下拉菜单中选择“批准/拒绝”



    在审核状态中根据需要选择一个,这里选择“已批准”,并在“注释”中填入相关注释。点击“确定”完成审批。



    再使用刚才的“行政部主管”用户登录,发现已经可以看到新上传的文档了,文档的“审核状态”也变成了“已批准”。

    转载于:https://www.cnblogs.com/jiania1224/archive/2008/06/13/1219460.html

    展开全文
  • 而另外还有一种比较正规的方法是先将要编辑文档“签出”,编辑完成后再“签入”。使用这种方法可能会避免一些问题产生。下面我们以“行政部”子网站中“行政部文档”文档库文件存取设置”文件做为例子来做...
  • vc中读取配置文件的方法

    千次阅读 2009-11-27 13:44:00
    一定不会扩展名为"ini"的文件感到陌生,不仅Windows操作系统将大名鼎鼎的win.ini作为记录当前系统状态,并根据其记录内容系统进行配置的一种便捷的方法,而且众多的应用软件也广泛地使用该类型的配置文件
  •  Preference(配置)提供了一种轻量级数据存取方法,主要应用于数据比较少配置信息。它以“key-value”(是一个Map)对的方式将数据保存在一个XML配置文件中,例如,手机开机问候语,可以将其以Preference方式...
  • 我们可以利用各种文件存取方法完成这些工作,但MFC中也提供了一种读写文件的简单方法——“序列化”。序列化机制通过更高层次接口功能向开发者提供了更利于使用和透明于字节流的文件操纵方法,举一个例来讲你可以...
  • Linux文件系统之

    2017-05-12 19:05:47
    一、文件系统定义: 文件系统是操作系统中负责管理和存放文件信息软件机构,它向用户提供了一种简便、统一的存取和管理信息的方法文件系统是操作系统用于明确存储设备(常见是磁盘、固态硬盘)或分区上的文件...
  •  Preference(配置)提供了一种轻量级数据存取方法,主要应用于数据比较少配置信息。它以“key-value”(是一个Map)对的方式将数据保存在一个XML配置文件中,例如,手机开机问候语,可以将其以Preference方式...
  • 无论是采用传统密钥系统还是公钥系统,其保护方式都是控制文件的存取,即将文件加密成密文,使非法用户不能解读最近几年,许多研究人员放弃了传统密码学技术路线,尝试用各种信号处理方法对声像数据进行隐藏加密...
  • 数据库中文件组织方式数据库组织要考率更新和检索需求,更新涉及到数据存储空间扩展和回收问题,检索涉及到扫描...存取方法是对文件所采取的存取操作方法。 一种文件组织可以采取多种存取方法进行访问无
  • 文档存取个性化配置

    千次阅读 2008-06-19 16:49:00
    而另外还有一种比较正规的方法是先将要编辑文档“签出”,编辑完成后再“签入”。使用这种方法可能会避免一些问题产生。下面我们以“行政部”子网站中“行政部文档”文档库文件存取设置”文件做为例子来做...
  •  Preference(配置)提供了一种轻量级数据存取方法,主要应用于数据比较少配置信息。它以“key-value”(是一个Map)对的方式将数据保存在一个XML配置文件中,例如,手机开机问候语,可以将其以Preference方式...
  • 利用序列化进行文件读写

    千次阅读 2005-06-28 18:30:00
    我们可以利用各种文件存取方法完成这些工作,但MFC中也提供了一种读写文件的简单方法——“序列化”。序列化机制通过更高层次接口功能向开发者提供了更利于使用和透明于字节流的文件操纵方法,举一个例来讲你可以...
  • 8、下面页面分配和置换策略中,哪一种是不合适。( B ) A) 固定分配、局部置换 B) 固定分配、全局置换 C) 可变分配、全局置换 D) 可变分配、局部置换 9、下列那项不是设备控制器功能( D )。 A) 接收和识别...
  • 关键词:FLASH存储器 上电引导 COFF文件格式 DSPFLASH存储器是在EPROM和EEPROM的基础上发展起来的一种非易失性存储器,在掉电情况下仍能保证数据不丢失,并能够在不离开电路板或据设备的情况下实施擦除和再编程操作...
  • 文件系统 物理结构

    千次阅读 2012-11-01 11:33:32
    用户对不同种类文件采取不同的存取方法,以方便对文件进行各种操作。  无论是哪一种存取方法,都是首先搜索到操作对象——记录或某段字符流信息逻辑地址,然后由逻辑地址映射到对应物理地址,再对物理地址...
  • python文件操作

    2017-06-12 23:55:00
    python文件操作 在计算机中,硬盘借助文件系统才能存取数据。在python里,文件是一种类型...之后通过句柄对文件进行操作 关闭文件 打开文件 文件句柄 = open('文件路径', '模式') 这里文件路径可以是相对路径也可以...
  • 文件系统是操作系统的必备软件,文件系统是一个存储设备上的数据(block)和元数据(inode)进行组织的一种机制。文件系统可以帮助用户管理磁盘空间,进行文件的快速存取的功能。文件系统是操作系统用于明确存储...
  • 浅谈文件系统

    2019-07-18 21:55:27
    文件系统狭义概念是一种对存储设备上数据进行组织和控制机制。文件系统功能包括:管理和调度文件的存储空间,提供文件的逻辑结构、物理结构和存储方法;实现文件从标识到实际地址映射,实现文件的控制操作...
  • ldb文件就消失了,网站打开也正常了,但过了数小时后,网站又再次出现以上情况,此情况持续了好段时间,网站后来被虚拟主机供应商屏蔽了,反馈给我说法是因为我网站运行时大量占用CPU资源,所以予暂时屏蔽...
  • 当在Linux下频繁存取文件后,物理内存会很快被.../proc是一个虚拟文件系统,我们可以通过它的读写操作做为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来当前kernel的行为做出调整。...
  • 以下就是你可以采用种方法。你可以选用其中一种你最适应并且就这样坚持这种方法! 从HTML中分离 以下是可以使用方法: <script language="php"> . . . 语句 与Perl和C一样,在PHP中用(;)来分隔...
  • 当在Linux下频繁存取文件后.../proc是一个虚拟文件系统,我们可以通过它的读写操作做为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来当前kernel的行为做出调整。那么我们可以通过调整
  • 对文件进行操纵和管理软件集合 3. 目录 文件管理主要是通过文件目录实现。文件目录也是一种数据结构,用于标识系统中文件及其物理地址,供检索时使用。目录实现基本方法有线性表和Hash表 功能: ①...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 155
精华内容 62
关键字:

对文件进行存取的一种方法是