[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]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        …………

特此求助各位高手,达人,大师,老师,版主,管理员们!万分感谢!!!
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

batman已经退隐江湖了。

TOP

请大师们出手江湖救急!感谢!

TOP

本帖最后由 test 于 2012-11-25 21:39 编辑

第一个:
  1. @echo off
  2. cd.>AA.txt
  3. for %%i in (*.003) do (
  4. echo %%~ni>>AA.txt
  5. copy /b AA.txt+%%i AA.txt>nul
  6. )
  7. start AA.txt
复制代码
第二个:
在6字开头的股票代码前添加SH字符串,其他的股票代码前添加SZ
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for %%i in (*.003) do (
  4. set "str1=%%~ni "
  5. if "!str1:~0,1!"=="6" (
  6. set str1=SH!str1!
  7. ) else set str1=SZ!str1!
  8. set num=0
  9. for /f %%j in (%%i) do (
  10. set str2=%%j
  11. if !num! equ 1 (
  12. if not "!str2:~0,3!"=="───" set str1=!str1!%%j,
  13. )
  14. if "!str2:~0,3!"=="───" set /a num+=1
  15. )
  16. if defined str1 echo !str1:~0,-1!;
  17. ))>NEW.txt
  18. start NEW.txt
复制代码
1

评分人数

    • quartz123: 太强大了,太感谢老师啦!感谢!!!技术 + 1
namejm的马甲
不安全网络环境下的专用账号

TOP

本帖最后由 quartz123 于 2012-11-25 19:32 编辑

遇到一个新问题,再请老师帮助下,谢谢!!

在上面的第二个批处理中,能不能自动识别出:6字头的代码,在前面加入SH两个字符,如600012,生成后变为SH600012;其他的如3字头、0字头的代码,在前面加入SZ两个字符,如300001,生成后变为SZ300001;000001,生成后变为SZ000001;

因为大智慧软件的自定义数据识别需要在前面区分出是上海(SH),还是深圳(SZ)的股票,再次感谢老师!

TOP

4楼的第二个代码已经修改为:6字头的代码前添加SH字符,其余的添加SZ字符
namejm的马甲
不安全网络环境下的专用账号

TOP

本帖最后由 quartz123 于 2012-11-25 23:18 编辑
4楼的第二个代码已经修改为:6字头的代码前添加SH字符,其余的添加SZ字符
test 发表于 2012-11-25 21:40



无与伦比的多谢老师,我搜索了下论坛,自己解决了制表符问题,再次向您致敬!!!多谢!

TOP

返回列表