标题: [文本处理] [已解决]BAT如何处理文本中的股票信息? [打印本页]
作者: quartz123 时间: 2012-11-25 00:29 标题: [已解决]BAT如何处理文本中的股票信息?
我是看到了这个贴子http://www.bathome.net/viewthrea ... amp;extra=#pid94611,才知道这里的老师高手们能解决这个问题!特此求助!!
一、假设有3000个文件(每个文件名都是6位数字组成,后缀为.003,是股票代码,这些文件是大智慧F10的资料,不知道是什么类型,但是可以用txt打开);每个文件开头都是"◆ 主营构成 ◆"这一行,能不能做个批处理把他们所有合并为一
个txt文件,暂时取名AA.txt,在AA.txt文件里面每次出现“ ◆ 主营构成 ◆”的时候,自动在上面增加一个空行,写入本来的文件名(也就是股票代码),因为后面还要用到文件名(也就是股票代码),所以要写进去才行;例如文件600012.003合并进去以后在AA.txt文件里写成:
600012
◆ 主营构成 ◆
我尝试合并了以下五个文件,因为没有代码,所以根本不知道每个" ◆ 主营构成 ◆"对应的是哪支股票,特此求助老师们,感谢!
二、接下来我还想在这个AA.txt文件里,采集出每只股票的第一栏内容(这里讲的第一栏是指每支股票资料中前两根横线中的内容,是图中用框框起来的部分),因为有的股票只有一两行,有的股票有十几行,所以应该只能以文件中的两根横线来定位,还有我只想要图中红框起来的这一列,而不想要后面的“主营收入”,“同比增长”,“主营收入占比”,“主营利润”这四列,不知道能不能实现;如果能实现的话,采集后新生成的文件,暂时取名NEW.txt;在NEW.txt里的格式,我想写成这样的(还是以600012为例):
600012 合宁高速公路,高界高速公路,宣广高速公路,连霍公路安徽段,宁淮高速公路天长段,广祠高速公路,205国道天长段新线,高速公路委托管理,路损赔偿,租金,施救;
{下面就一直这样写}
600013 …………
600014 …………
特此求助各位高手,达人,大师,老师,版主,管理员们!万分感谢!!!
作者: Demon 时间: 2012-11-25 00:41
batman已经退隐江湖了。
作者: quartz123 时间: 2012-11-25 09:11
请大师们出手江湖救急!感谢!
作者: test 时间: 2012-11-25 11:37
本帖最后由 test 于 2012-11-25 21:39 编辑
第一个:- @echo off
- cd.>AA.txt
- for %%i in (*.003) do (
- echo %%~ni>>AA.txt
- copy /b AA.txt+%%i AA.txt>nul
- )
- start AA.txt
复制代码
第二个:
在6字开头的股票代码前添加SH字符串,其他的股票代码前添加SZ- @echo off
- setlocal enabledelayedexpansion
- (for %%i in (*.003) do (
- set "str1=%%~ni "
- if "!str1:~0,1!"=="6" (
- set str1=SH!str1!
- ) else set str1=SZ!str1!
- set num=0
- for /f %%j in (%%i) do (
- set str2=%%j
- if !num! equ 1 (
- if not "!str2:~0,3!"=="───" set str1=!str1!%%j,
- )
- if "!str2:~0,3!"=="───" set /a num+=1
- )
- if defined str1 echo !str1:~0,-1!;
- ))>NEW.txt
- start NEW.txt
复制代码
作者: quartz123 时间: 2012-11-25 19:28
本帖最后由 quartz123 于 2012-11-25 19:32 编辑
遇到一个新问题,再请老师帮助下,谢谢!!
在上面的第二个批处理中,能不能自动识别出:6字头的代码,在前面加入SH两个字符,如600012,生成后变为SH600012;其他的如3字头、0字头的代码,在前面加入SZ两个字符,如300001,生成后变为SZ300001;000001,生成后变为SZ000001;
因为大智慧软件的自定义数据识别需要在前面区分出是上海(SH),还是深圳(SZ)的股票,再次感谢老师!
作者: test 时间: 2012-11-25 21:40
4楼的第二个代码已经修改为:6字头的代码前添加SH字符,其余的添加SZ字符
作者: quartz123 时间: 2012-11-25 22:43
本帖最后由 quartz123 于 2012-11-25 23:18 编辑
4楼的第二个代码已经修改为:6字头的代码前添加SH字符,其余的添加SZ字符
test 发表于 2012-11-25 21:40
无与伦比的多谢老师,我搜索了下论坛,自己解决了制表符问题,再次向您致敬!!!多谢!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |