请输入代码需求:
请解析config.txt,文件格式包括段落名称、字段名称和字段值。段落名称的值为:"segment:"右边的字符串,在一个文件中不会有重复的段落名称;字段的名称为"="左边的字符串,字段的值为"="右边的字符串。例如:ipconfig是段落,ip是字段名称,字段值是"192.168.0.1",文件中以#起始的行为注释行,需要跳过,不做解析。
要求:
文件名称、段落名称、字段名称需要作为最终执行程序的命令行参数输入,程序返回字段值,输出到屏幕;
文件行中可能有多余的空白(空格或者制表符),比如等号前、等号后、前导空白符等,需要过滤这些空白符,只输出字段值;
需要注意:要判断是否是注释行,如果是注释行则跳过不做处理;
需要注意:要判断文件中是否有空白行,如果有空白行则跳过不做处理;
需要注意:段落名称不可能重复,但是,不同的段落中可能存在相同的字段名称;
需要注意:如果出现非法的命令行输入参数,需要有明确并恰当的提示;
环境提示:
linux操作系统默认安装选项包括了C开发环境,命令行可以直接编译;
windows操作系统的C程序开发可以使用VC等IDE环境编写。
java和操作系统无关,建议安装JDK后,使用文本编辑器编辑程序(如notepad、UE、vi等),在命令提示符下直接使用javac命令编译成class文件,使用java命令执行程序。
示例(java程序):
输入:javac GetConfig.java #进行编译;
java GetConfig config.txt jdbcconfig username #命令行执行程序
#三个参数:
1、文件名称
2、段落名称
3、字段名称
#本程序实现:根据段落名称和字段名称从指定的文件中取值。
输出:zhangsan #输出结果
这是txt文档内容
# net.conf
# 2009/12/20
#ipconfig
segment:ipconfig
ip= 192.168.0.1
port=81
timeout=600000
#idbcconfig
segment:jdbcconfig
ip = 192.168.0.2
port=8080
username=zhangsan
password=000000
#ftpconfig
segment:ftpconfig
ip= 192.168.0.3
port=21
username=mng
password=qqhbc
#websit
segment:websit
ip=192.168.0.222
port=8000
address= http://www.sina.com.cn
#netconfig
segment:netconfig
ip = 192.168.9.28
port= 1045
mac= AA.EF.FF.BA.3F.7A
timeout=600000
캐릭터별로 스캔하고 분석하는 것은 어렵지 않습니다.
이런 질문은 먼저 스스로 분석할 수 있는 프로그램을 작성해보고 문제가 있는지 물어보세요. 질문을 게시하면 다른 사람이 직접 프로그램을 제공할 것이라고 기대하지 마세요.
스스로 할 수 있다는 인식이 있어야 하고, 먹을 것과 입을 것이 충분하고, 프로그래밍을 배워야 합니다.
복잡하지 않습니다. . 파일 읽기를 살펴보겠습니다. 먼저 txt를 읽은 다음 문자열을 분석합니다.
아이디어:
를 검색하세요.1.
javac GetConfig.java
명령의 기능을 이해하시나요?java GetConfig config.txt jdbcconfig username
이 명령은 컴파일된 GetConfig 파일을 실행하는 것이므로 프로그램에서 해당 매개변수를
config.txt jdbcconfig username
어떻게 얻습니까? "java main args"2. 대상 파일 이름을 알면 java를 사용하여 로컬 파일을 메모리로 읽어들이고 "java 읽기 파일"을 직접 검색하는 방법
3. 파일을 메모리로 읽은 후 질문의 요구 사항에 따라 문자열 처리를 수행하고 "java String Usage"를 직접 검색할 수 있습니다.
팁: 파일을 한 줄씩 읽을 수 있으며, 요구 사항에 따라 각 줄을 구문 분석하여 대상 필드 이름을 찾으면 값을 직접 출력할 수 있습니다.
더 시도해 보세요.