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

我用excle的解决方案

在空白单元里输入公式
  1. =LEFT(REPLACE(A1,1,3,200),4)&"年"&RIGHT(A1,2)&"月"
复制代码
然后按照内容多少把数据全部选中后,全部数据转换成下列:
  

2000年01月 2000年02月 2001年06月 2000年01月  2000年06月 2001年08月


然后把数据全部选中,右键选择复制-->选择性粘贴-->选择数值,这样就把单元格的公式属性去掉了
选择编辑菜单下的,替换 输入 "年0" 全部替换为 "年",就得到你要的数据了!

这是用函数方法完成,用vba的方法也可以完成,也是用到for循环,和批处理的方法类似!

[ 本帖最后由 bater 于 2008-9-11 22:34 编辑 ]

TOP

原帖由 huahua0919 于 2008-9-11 13:07 发表
这些数据是在Excle中的吗.斑竹是否能够上传这个文件来看看
我对Excle小有研究。也许能够解决

兄弟可以直接把a.txt的内容复制到execel中进行处理啊。。。
***共同提高***

TOP

这些数据是在Excle中的吗.斑竹是否能够上传这个文件来看看
我对Excle小有研究。也许能够解决

TOP

&&这题真的不难,不知大家为什么不愿尝试呢?本版块的出题环节一直在继续中,但个人
觉得并没有达到预期的效果,具体表现在:基本上都是几个版主和技术人员在解答题目,却
鲜见其他会员跟贴解题。
  于是,个人有所反省,是不是这样的题目超越了大多数会员的能力范围了?是不是这样
的题目并不具有代表性?是不是这样的题目脱离实际太远了?是不是大家不能接受这样的学
习形式?
  为了加强论坛学习指导的针对性,还请大家畅所欲言,就你所认为的,论坛应从哪些方
面出发来引导和提高大家学习批处理,来提出自已的建议;我们将根据大家的建议,不断完
善论坛的学习功能,健全学习机制,以达到共同提高的最终目的。

[ 本帖最后由 batman 于 2008-9-11 13:08 编辑 ]
***共同提高***

TOP

我的方案

利用shift移位:
  1. @echo off
  2. for /f "tokens=1,2* delims=-" %%i in (a.txt) do set "s=%%k"&call :lp %%i %%j %%k   
  3. pause>nul&goto :eof
  4. :lp
  5. set "str=%1"
  6. set "a=%str:~3,1%"&set /a b=1%str:~-2%%%100
  7. set "var=%var%--200%a%年%b%月"
  8. if "%1" neq "%s%" shift&goto lp
  9. echo %var:~2%&set "var="
复制代码

[ 本帖最后由 batman 于 2008-9-11 08:10 编辑 ]
***共同提高***

TOP

版主保重身体
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (a.txt) do (
  3.    set "str=%%a"
  4.    set str=!str:-= !&set "str=!str:330=200!"
  5.    for %%i in (!str!) do (
  6.      set "var=%%i"
  7.      set /a num=100!var:~-2!%%100
  8.      set "ok=!ok!--!var:~0,4!年!num!月"
  9. )
  10.     echo !ok:~2!
  11.     set "ok="
  12. )
  13. pause
复制代码
1

评分人数

    • batman: 蒙兄挂念,已无大碍PB + 10
技术问题请到论坛发帖求助!

TOP

先来抛砖,拿来献丑了,看下是否是这样的输出:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (a.txt) do (
  3.       set "str=%%a"&set "var="
  4.       set "str=!str:330=200!"
  5.       for /f "tokens=1-3 delims=-" %%i in ("!str!") do (
  6.            set/a i=%%i,j=%%j,k=%%k
  7.            for %%s in (i j k) do (
  8.                 set "c=!%%s:~-2!"
  9.                 if "!c!" neq "10" set "c=!c:0=!"
  10.                 set "var=!var!!%%s:~,4!年!c!月--"
  11.            )
  12.            echo !var:~,-2!
  13. ))
  14. echo.&pause
复制代码
在excel表格中操作,我也不知如何完成,对OFFICE一窍不通,求教高人。

[ 本帖最后由 pusofalse 于 2008-9-10 19:43 编辑 ]
1

评分人数

    • batman: 代码稍复杂了点PB + 10
心绪平和,眼藏静谧。

TOP

BATMAN兄多注意休息,一切安好。
另想问一下,文本中有无类似于330125--330125--330125这样的数据
即330之后的125,要替换为2012年5月--2012年5月--2012年5月吗?
还是说表示月份的后两个数字一定leq 12?

[ 本帖最后由 pusofalse 于 2008-9-10 17:30 编辑 ]
心绪平和,眼藏静谧。

TOP

返回列表