无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 6200|回复: 22
打印 上一主题 下一主题

INIFILE for GRUB4DOS

[复制链接]
跳转到指定楼层
1#
发表于 2011-1-19 01:25:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
尝试着写了一个INIFILE。。

目前只是最初的版本,,功能非常的少。。目前只有50行的代码,所以暂时别指望有什么高级功能了。。

例子:
1、显示aa.ini [test]段 test的值
inifile /aa.ini [test] test

2、显示aa.ini [test]段全部的内容
inifile /aa.ini [test]

BUG是在所难免的,嘻嘻,下班之前临时兴起就写了一下。

可以先用一下,如果是标准的INI格式文件应该是没有什么问题,复杂的就不太清楚的。

目前还没有考虑注释,即注释也会被显示出来。。

2011-01-19的更新介绍在这里。。
http://bbs.wuyou.net/attachment.php?aid=111643

[ 本帖最后由 chenall 于 2011-1-20 15:06 编辑 ]

INIFILE-2011-01-20.zip

890 Bytes, 下载次数: 87, 下载积分: 无忧币 -2

2#
发表于 2011-1-19 07:40:02 | 只看该作者
一直希望解决的问题啊,先测试再说。

不知有没区分大小写?
--------------------------
不错,目前不分大小写。

[ 本帖最后由 zhaohj 于 2011-1-19 08:22 编辑 ]

Snap1.jpg (86.83 KB, 下载次数: 71)

Snap1.jpg
回复

使用道具 举报

3#
发表于 2011-1-19 09:37:26 | 只看该作者
楼主继续努力啊,不错的啊。
回复

使用道具 举报

4#
发表于 2011-1-19 12:37:46 | 只看该作者
限制体积,例如60k吗?
回复

使用道具 举报

5#
发表于 2011-1-19 12:47:56 | 只看该作者
我测试了一下,>60kb没问题。
估计<1M都没问题,还是听权威的吧。
回复

使用道具 举报

6#
 楼主| 发表于 2011-1-19 13:33:15 | 只看该作者
没有任何限制。。
不过如果文件比较大的话处理会比较慢。因为是直接把所有文件内容都读入内存再进行处理了。。

嗯,这几天把它完善一下,希望SRS_F6模块可以更方便。。嘿嘿

可能会加入修改的功能(会比较麻烦一些,因为GRUB4DOS目前不支持修改文件大小,所以只好想其它办法了)

[ 本帖最后由 chenall 于 2011-1-19 13:36 编辑 ]
回复

使用道具 举报

7#
发表于 2011-1-19 14:31:14 | 只看该作者
嘿嘿,等待......
新年的礼物!
回复

使用道具 举报

8#
发表于 2011-1-19 14:36:33 | 只看该作者
chenall大师又有新作品了,哈哈,以后的F6是否都要加速了?
回复

使用道具 举报

9#
发表于 2011-1-19 14:59:49 | 只看该作者
呵呵,一直对写GRUB4DOS的外部命令有兴趣,就是不知道如何下手。
回复

使用道具 举报

10#
 楼主| 发表于 2011-1-19 15:06:02 | 只看该作者
原帖由 Plantsoot 于 2011-1-19 14:59 发表
呵呵,一直对写GRUB4DOS的外部命令有兴趣,就是不知道如何下手。


呵呵,写GRUB4DOS外部命令, 除了必须在LINUX以下用GCC编译以外,其实是非常简单的。。。

只是不能使用C语言的函数库,需要的函数只能用GRUB4DOS自带的或自己编写。

只要懂得一点C语言,自己去试着编译一个就很清楚了。
回复

使用道具 举报

11#
发表于 2011-1-19 15:32:13 | 只看该作者

回复 #10 chenall 的帖子

多谢C大指导,我把我的小黑装LINUX,也学着写写,到时候可能还要麻烦C大指导。
回复

使用道具 举报

12#
 楼主| 发表于 2011-1-19 15:41:57 | 只看该作者
原帖由 Plantsoot 于 2011-1-19 15:32 发表
多谢C大指导,我把我的小黑装LINUX,也学着写写,到时候可能还要麻烦C大指导。


欢迎加入,嘿嘿。。



新的INIFILE已经上传。。

支持修改
例子:会把abcd的值设为def
inifile /aa.ini [test] abcd=def

注:这个修改功能有以下限制。。

1.修改的内容不能太长(不过超过原来一行的总长度)多的会被截断。
2.文件太小了也不能改(NTFS格式的)
3.修改的时候会先对原来的空格进行压缩,尽量保证修改成功。

其它改进。
1.支持带空格的section
2.一些优化调整。
3.支持过滤注释内容。

嗯,算是完成了,没有写帮助。。懒啊。

可以开始进行最终的测试了。希望没有什么问题才好。

[ 本帖最后由 chenall 于 2011-1-19 15:43 编辑 ]
回复

使用道具 举报

13#
发表于 2011-1-19 16:19:32 | 只看该作者
把名字也改了?一下大到22KB,呵呵。
原来名字不是挺好的吗?!

--------------------

传错了吧,出来是wenv界面

[ 本帖最后由 zhaohj 于 2011-1-19 16:26 编辑 ]
回复

使用道具 举报

14#
 楼主| 发表于 2011-1-19 16:37:32 | 只看该作者
汗啊,传错了,已重传。。
回复

使用道具 举报

15#
发表于 2011-1-19 17:05:40 | 只看该作者
能否加一个参数 /remove
如 inifile /remove file [disks]
将清空[disks]段落的内容(填空)
回复

使用道具 举报

16#
 楼主| 发表于 2011-1-19 17:35:43 | 只看该作者
原帖由 zhaohj 于 2011-1-19 17:05 发表
能否加一个参数 /remove
如 inifile /remove file [disks]
将清空[disks]段落的内容(填空)


如果简单处理,只需要把[disks]修改掉就可以了...
比如改成[;disks]

这样比较快速。
回复

使用道具 举报

17#
 楼主| 发表于 2011-1-19 17:51:49 | 只看该作者
加一个/remove参数

删除某个段,并没有真正的删除。。。只是让这个段失效而已。。

INIFILE-2011-01-19.zip

858 Bytes, 下载次数: 23, 下载积分: 无忧币 -2

回复

使用道具 举报

18#
发表于 2011-1-19 20:33:07 | 只看该作者
C大,/clear 比/remove更实用。
建议不要注释掉段落名,最好注释掉内容,相当于/clear
如:
[hardwareids.scsi.symmpi]
id="PCI\VEN_1000&DEV_0030","SYMMPI"
id="PCI\VEN_1000&DEV_0032","SYMMPI"
=====INIFILE file [hardwareids.scsi.symmpi] /clear =====>
[hardwareids.scsi.symmpi]
;d="PCI\VEN_1000&DEV_0030","SYMMPI"
;d="PCI\VEN_1000&DEV_0032","SYMMPI"
回复

使用道具 举报

19#
发表于 2011-1-19 20:35:16 | 只看该作者
见鬼,最近无忧怎么啦,老断网...
回复

使用道具 举报

20#
 楼主| 发表于 2011-1-19 23:06:45 | 只看该作者
因为这样处理起来比较麻烦。。如果要注释掉内容,还不如直接删除更快速。。

目前的处理方式是最快速的,只改写文件的两个字节。

如果要弄成其它方式要改写的内容比较多,若非必要的话还是尽量不要改写原文件的内容

这样可以避免出错。

对了,准备把
以下的输出改变一下,只输出它的值,不输出=之前的内容。

inifile /file.ini [section] item

这样也可以方便直接设置变量。

不知这样输出对其它方面有没有什么影响?如果没有的话就改成这样子处理起来也比较方便。

[ 本帖最后由 chenall 于 2011-1-19 23:09 编辑 ]
回复

使用道具 举报

21#
发表于 2011-1-20 08:26:44 | 只看该作者
“不输出=之前的内容”这个好。
不过现在如果直接在原文件中改写,还是有点不大方便,如下面
[hardwareids.scsi.symmpi]
id="PCI\VEN_1000&DEV_0030","SYMMPI"
id="PCI\VEN_1000&DEV_0032","SYMMPI"
id="PCI\VEN_1000&DEV_0060","SYMMPI"
直接在原文件中想改成
[hardwareids.scsi.symmpi]
id="PCI\VEN_1000&DEV_0032","SYMMPI"
-----------------------------
算了,已经很好了,还是另建个文件通过inifile输出再导入方便。
回复

使用道具 举报

22#
 楼主| 发表于 2011-1-21 17:31:46 | 只看该作者
再更新了一下,传到grubutils.googlecode.com上面了

更好的支持注释符号";"

支持无section的情况

比如文件内容
aa=bb
cc=dd

可以使用inifile file []
来获得这些内容。
回复

使用道具 举报

23#
发表于 2011-3-1 10:39:02 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-21 20:47

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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