不知哪位兄台能搞到文本格式的英汉字典, 这样做起来更爽...
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
精华I
查看 22,407 回复 55
@echo off
:: 功能:
::
:: ① 输入英文,显示该英文条目下的所有内容;
:: 同时显示词库中存在的、词义相同或头部相同的其他单词;
:: ② 输入汉语,显示词义中包含该汉语词汇的所有英文
::
:: 词库文件的格式要求:
::
:: 文件第一行内容必须为空,或者不能出现要查找内容的正文
:: 一个段落块的首行必须为纯英文词汇
:: 中文翻译内容紧接着另起一行(不允许出现纯字母行),可以有多行
:: 翻译之下可以有举例内容
:: 每个解释后面加中文半角状态下的分号和空格
:: 解释内容可以在同一行,也可以在不同行
:: 解释之下的举例内容尽量避免出现中文半角状态下的分号和空格连用的情况
:: 每个段落块允许使用空行分隔
::
:: code by JM 2006-10-11~14 http://www.cn-dos.net Thanks to 3742668
:input_var
title 英汉互译器
cls
set line=
set postil=
set postil_content=
set similar=
set input=
set /p input=请输入要查询的内容(要退出请直接回车):
if "%input%"=="" exit
ren ============== 判断输入类型 ==============
cls
echo %input%|findstr "^*$">nul && goto letters || goto not-letters
ren ============== 英译汉 ==============
:letters
title 英汉互译器-英译汉
:: 先提取匹配单词的第一条记录的行数,然后再从这行之下查找第一次出现的单词
:: 两个单词之间的内容就是英文的翻译
for /f "tokens=1* delims=:" %%i in ('findstr /nirc:"^%input%" 词库.txt') do (
if /i "%%j"=="%input%" set line=%%i&goto word_finded
)
if "%line%"=="" goto no-item
:word_finded
echo _________________________________
echo 要查找的单词:%input%
echo.
setlocal enabledelayedexpansion
for /f "skip=%line% delims=" %%i in (词库.txt) do (
echo %%i|findstr "^*$">nul &&(goto no-postil)||(
echo %%i&if not "%%i"=="" set postil=exist
echo %%i|findstr /c:"; ">nul &&(
set postil_content=!postil_content!%%i
)
)
)
:no-postil
if "%postil%"=="" (echo %input% 条目下没有任何内容 & goto end)
echo _________________________________
echo 词义类似的单词:
echo.
for /f "tokens=1* delims=:" %%i in ('findstr /nr "%postil_content%" 词库.txt') do (
if not "%%j"=="" set /a line=%%i-2&& call :check_similar
)
if "%similar%"=="" echo 暂无。
echo _________________________________
echo 头部相同的其他词汇:
echo.
set similar=
for /f "tokens=1* delims=:" %%i in ('findstr /nirc:"^%input%" 词库.txt') do (
echo %%j|findstr "^*">nul && (
if not "%%j"=="%input%" set similar=exist&echo %%j
)
)
if "%similar%"=="" echo 暂无。
:end
echo _________________________________
echo.
pause
goto input_var
:check_similar
:: 查找词义中含有%postil_content%的所有英文词汇
for /f "skip=%line% delims=" %%i in (词库.txt) do (
echo %%i|findstr "^*$">nul &&(
if not "%%i"=="%input%" (
echo %%i&set similar=exist&goto :eof
) else (goto :eof)
)||(set /a line=%line%-1& goto check_similar)
)
goto :eof
ren ============== 汉译英 ==============
:not-letters
title 英汉互译器-汉译英
:: 先提取包含该汉语词汇的第一条记录的行数,然后再查找位于该行之上的纯字母行
:: 则第一次找到的纯字母行就是要查找的英文单词
:: 重复以上过程就可以查找到词义中包含这个汉语词汇的所有英文词汇
echo _________________________________
echo.
echo %input%:
echo.
for /f "tokens=1* delims=:" %%i in ('findstr /nrc:"%input%; " 词库.txt') do (
if not "%%j"=="" set /a line=%%i-2&& call :check_word
)
if "%postil%"=="" goto no-item
echo _________________________________
echo.
pause
goto input_var
:check_word
:: 查找词义中含有%input%的所有英文词汇
set postil=exist
for /f "skip=%line% delims=" %%i in (词库.txt) do (
echo %%i|findstr "^*$">nul &&(echo %%i&&goto :eof)||(
set /a line=%line%-1&& goto check_word
)
)
goto :eof
ren ============== 出错提示 ==============
:no-item
cls
echo _________________________________
echo.
echo %input%:
echo 没有找到该条目!
echo _________________________________
echo.
pause
goto input_var
① 输入线路名称,显示该线路的所有站点及发车收车时间;
② 输入上车站点和下车站点,显示可搭乘的车次,并显示每条线路中这两个站点及其之间的所有站点及发车收车时间;
| 评分人 | 分数 | 时间 |
|---|---|---|
| redtek | +1 | 2006-10-18 07:09 |
② 输入上车站点和下车站点,显示可搭乘的车次,并显示每条线路中这两个站点及其之间的所有站点及发车收车时间;
Originally posted by namejm at 2006-10-17 12:11:
今天突然想到,用33F的思路可以写一个公交线路信息查询器之类很实用的东西,预计可以实现如下两个功能:
有兴趣的不妨尝试着去 ...
Originally posted by zxcv at 2006-10-17 13:43:
这个复杂了,要判断这些车次的交汇点估计不是易事,而且有可能有3次以上车次
第一张
第二张是 增加和删除窗口
第三张是 查询窗口
第四张是 所以需文件
这样是主文件和一个库文件。
Tel.db文件一开始是没有的。只有用户增加了联系人才会出现。
Originally posted by zouzhxi at 2006-11-14 18:43:
只要把namejm版主的BAT稍稍改了一下,就成了DOS版的通讯录了...
下面我把截图给大家看看...
暂时还不能实现修改功能,只能手工去库里边修改。
@echo off
echo.
set /p 删除人员= 删除人员:
>TelN.db echo ::电话本数据库
>>TelN.db echo --------------------------------------------------
>>TelN.db echo.
setlocal EnableDelayedExpansion
for /f "delims=" %%i in (Tel.db) do (
if "%%i" == "::" set /a Num+=1
)
set Delete=echo
for /f "skip=3 delims=" %%i in (Tel.db) do (
if "%%i" == "%删除人员%" set Delete=rem&&set /a N-=1
!Delete! %%i>>TelN.db
if "%%i" == "::" !Delete!.>>TelN.db&&set /a N+=1&&cls&&echo.&&echo !N!/%Num%&&set Delete=echo
)
pause
exit
::电话本数据库
--------------------------------------------------
张三
联系人姓名:张三
联系人电话:张三
联系人地址:张三
联系人单位:张三
::
李四
联系人姓名:李四
联系人电话:李四
联系人地址:李四
联系人单位:李四
::
王五
联系人姓名:王五
联系人电话:王五
联系人地址:王五
联系人单位:王五
::