- 帖子
- 18
- 积分
- 31
- 技术
- 0
- 捐助
- 0
- 注册时间
- 2014-6-3
|
36楼
发表于 2014-6-27 01:01
| 只看该作者
本帖最后由 观心 于 2014-6-27 01:06 编辑
经过几天论坛上神人们的关心 鄙人的问题得到完美解决 在此结贴 谢谢大家的关心和耐心
在下机器的基本配置 I3 12G
非常感谢 PowerShell 的热情和执着
因为net framework 4.5.2没有装好 c:盘空间竟然不够需要2836MB 可用1403MB 时间匆忙因此没有测试 等后天用2003在ramos中测试看行不行
其次感谢 terse 全程跟踪的默默关心和付出 您的代码测试需要2分钟左右 最终选择了您的代码常用 谢谢
还有 CrLf 麻烦阁下费了许多心思 因为在下的学识浅薄 一个问题难以描述清楚 谢谢您的不厌其烦 让我获益良多 您的代码测试需要3分钟左右
还要感谢 apang 最后的绝杀一剑 您的代码在机器上用了2分钟左右 虽然SH 和SZ没有分别表示 但是将未处理的文件都考虑到了 谢谢您的细心
最后再完整的描述一下鄙人的问题
有两种字符开头的文本文件
1、以SH开头的文本比如 SH600099.TXT
2、以SZ开头的文本比如 SZ000099.TXT
其中 1、
以SH开头的文本比如 SH600099.TXT 格式如下,最后一行以“数据来源:”结束。
2003/08/01;5.86;5.94;5.84;5.91;757319;6021637.000
2003/08/04;5.95;6.14;5.91;6.03;1491738;12023611.000
2003/08/05;6.03;6.12;5.93;5.98;1783220;14456444.000
2003/08/06;5.93;6.06;5.93;5.93;608200;4914825.000
2003/08/07;5.94;6.01;5.92;5.93;490916;3944958.000
2003/08/08;5.95;5.99;5.78;5.83;893227;7121715.000
2003/08/11;5.80;5.84;5.79;5.80;215771;1688739.000
2003/08/12;5.79;5.86;5.79;5.85;298740;2343791.000
2003/08/13;5.84;5.87;5.78;5.81;177700;1396385.000
2003/08/14;5.86;5.92;5.78;5.78;114259;895077.000
2003/08/15;5.87;5.87;5.77;5.84;546519;4263697.000
2003/08/18;5.78;5.80;5.78;5.78;45000;351128.000
2003/08/19;5.84;5.84;5.78;5.79;101390;792405.000
2003/08/20;5.79;5.83;5.74;5.80;69170;539040.000
2003/08/21;5.84;5.84;5.74;5.79;53620;417572.000
2003/08/22;5.79;5.84;5.74;5.79;76800;599503.000
2003/08/25;5.80;5.82;5.74;5.77;91848;715345.000
2003/08/26;5.79;5.79;5.73;5.77;108367;841339.000
2003/08/27;5.77;5.77;5.72;5.74;58160;450937.000
2003/08/28;5.71;5.86;5.67;5.81;315739;2458913.000
2003/08/29;5.84;5.84;5.67;5.69;231281;1794956.000
数据来源:
转换成600099.txt (也就是SH600099.TXT文件名前面的SH 去掉) 格式如下:
$FORMAT Ticker, Date_YMD, Open, High, Low, Close, Volume
600099.SH,2003-08-01,5.86,5.94,5.85,5.91,757319
600099.SH,2003-08-04,5.95,6.14,5.91,6.03,1491738
600099.SH,2003-08-05,6.03,6.12,5.93,5.98,1783220
600099.SH,2003-08-06,5.94,6.06,5.93,5.94,608200
600099.SH,2003-08-07,5.94,6.01,5.92,5.93,490916
600099.SH,2003-08-08,5.95,5.99,5.79,5.83,893227
600099.SH,2003-08-11,5.8,5.85,5.8,5.8,215771
600099.SH,2003-08-12,5.8,5.86,5.8,5.85,298740
600099.SH,2003-08-13,5.85,5.88,5.79,5.82,177700
600099.SH,2003-08-14,5.87,5.92,5.79,5.79,114259
600099.SH,2003-08-15,5.88,5.88,5.78,5.85,546519
600099.SH,2003-08-18,5.79,5.8,5.79,5.79,45000
600099.SH,2003-08-19,5.85,5.85,5.79,5.8,101390
600099.SH,2003-08-20,5.8,5.84,5.75,5.8,69170
600099.SH,2003-08-21,5.85,5.85,5.75,5.8,53620
600099.SH,2003-08-22,5.8,5.85,5.75,5.8,76800
600099.SH,2003-08-25,5.8,5.82,5.74,5.77,91848
600099.SH,2003-08-26,5.8,5.8,5.74,5.77,108367
600099.SH,2003-08-27,5.78,5.78,5.73,5.74,58160
600099.SH,2003-08-28,5.71,5.87,5.68,5.82,315739
600099.SH,2003-08-29,5.85,5.85,5.68,5.7,231281
$SKIPLINES 1
$SEPARATOR ,
$DEBUG 1
$BREAKONERR 1
$AUTOADD 1
2、以SZ开头的文本比如 SZ000099.TXT 格式如下,最后一行以“数据来源:”结束。
2003/08/01;5.86;5.94;5.84;5.91;757319;6021637.000
2003/08/04;5.95;6.14;5.91;6.03;1491738;12023611.000
2003/08/05;6.03;6.12;5.93;5.98;1783220;14456444.000
2003/08/06;5.93;6.06;5.93;5.93;608200;4914825.000
2003/08/07;5.94;6.01;5.92;5.93;490916;3944958.000
2003/08/08;5.95;5.99;5.78;5.83;893227;7121715.000
2003/08/11;5.80;5.84;5.79;5.80;215771;1688739.000
2003/08/12;5.79;5.86;5.79;5.85;298740;2343791.000
2003/08/13;5.84;5.87;5.78;5.81;177700;1396385.000
2003/08/14;5.86;5.92;5.78;5.78;114259;895077.000
2003/08/15;5.87;5.87;5.77;5.84;546519;4263697.000
2003/08/18;5.78;5.80;5.78;5.78;45000;351128.000
2003/08/19;5.84;5.84;5.78;5.79;101390;792405.000
2003/08/20;5.79;5.83;5.74;5.80;69170;539040.000
2003/08/21;5.84;5.84;5.74;5.79;53620;417572.000
2003/08/22;5.79;5.84;5.74;5.79;76800;599503.000
2003/08/25;5.80;5.82;5.74;5.77;91848;715345.000
2003/08/26;5.79;5.79;5.73;5.77;108367;841339.000
2003/08/27;5.77;5.77;5.72;5.74;58160;450937.000
2003/08/28;5.71;5.86;5.67;5.81;315739;2458913.000
2003/08/29;5.84;5.84;5.67;5.69;231281;1794956.000
数据来源:
转换成000099.txt (也就是SZ000099.TXT文件名前面的SZ 去掉) 格式如下:
$FORMAT Ticker, Date_YMD, Open, High, Low, Close, Volume
000099.SZ,2003-08-01,5.86,5.94,5.85,5.91,757319
000099.SZ,2003-08-04,5.95,6.14,5.91,6.03,1491738
000099.SZ,2003-08-05,6.03,6.12,5.93,5.98,1783220
000099.SZ,2003-08-06,5.94,6.06,5.93,5.94,608200
000099.SZ,2003-08-07,5.94,6.01,5.92,5.93,490916
000099.SZ,2003-08-08,5.95,5.99,5.79,5.83,893227
000099.SZ,2003-08-11,5.8,5.85,5.8,5.8,215771
000099.SZ,2003-08-12,5.8,5.86,5.8,5.85,298740
000099.SZ,2003-08-13,5.85,5.88,5.79,5.82,177700
000099.SZ,2003-08-14,5.87,5.92,5.79,5.79,114259
000099.SZ,2003-08-15,5.88,5.88,5.78,5.85,546519
000099.SZ,2003-08-18,5.79,5.8,5.79,5.79,45000
000099.SZ,2003-08-19,5.85,5.85,5.79,5.8,101390
000099.SZ,2003-08-20,5.8,5.84,5.75,5.8,69170
000099.SZ,2003-08-21,5.85,5.85,5.75,5.8,53620
000099.SZ,2003-08-22,5.8,5.85,5.75,5.8,76800
000099.SZ,2003-08-25,5.8,5.82,5.74,5.77,91848
000099.SZ,2003-08-26,5.8,5.8,5.74,5.77,108367
000099.SZ,2003-08-27,5.78,5.78,5.73,5.74,58160
000099.SZ,2003-08-28,5.71,5.87,5.68,5.82,315739
000099.SZ,2003-08-29,5.85,5.85,5.68,5.7,231281
$SKIPLINES 1
$SEPARATOR ,
$DEBUG 1
$BREAKONERR 1
$AUTOADD 1
转换要求:
除了改文件名外,文本内容就是将源文本中第一行加上
$FORMAT Ticker, Date_YMD, Open, High, Low, Close, Volume
文本中间 每一行以文件名中的数字开头 如:000099 接着显示文件名中的字符 如:SZ或SH (根据文件名前两个字符而定)
然后转换日期的格式 然后将分号改为逗号 然后去掉每一行最后分号后面的所有字符
最后一行替换成
$SKIPLINES 1
$SEPARATOR ,
$DEBUG 1
$BREAKONERR 1
$AUTOADD 1
以上 本帖完美获得解决 感谢关心此帖的几位大佬 apang CrLf PowerShell terse 谢谢你们!!!希望批处理之家合家欢乐 和谐安详!!! |
|