|
provem
初级用户
积分 92
发帖 82
注册 2007-11-13
状态 离线
|
『楼 主』:
新。怎么从一个文本中提取特定内容追加到另一个文件
比如
boy于2008-12-09 星期二 0:18:29.28对girl说: 在哪里
boy于2008-12-09 星期二 0:32:19.29对lily说: 现在有空吗?
girl于2008-12-09 星期二 19:38:15.81对lily说:今天好郁闷
lily于2008-12-09 星期二 19:39:43.12对boy说: 现在在上班
girl于2008-12-09 星期二 19:40:32.41对boy说: 在家呢
boy于2008-12-09 星期二 19:40:50.16对girl说: 出来吧!
lily于2008-12-09 星期二 22:06:13.67对boy说: 有事吗?
只提取以下内容出来,并保存到另一个文本文件
boy于2008-12-09 星期二 0:18:29.28对girl说: 在哪里
boy于2008-12-09 星期二 0:32:19.29对lily说: 现在有空吗?
lily于2008-12-09 星期二 19:39:43.12对boy说: 现在在上班
girl于2008-12-09 星期二 19:40:32.41对boy说: 在家呢
boy于2008-12-09 星期二 19:40:50.16对girl说: 出来吧!
lily于2008-12-09 星期二 22:06:13.67对boy说: 有事吗?
就比如我是boy,只提取我和lily和girl的聊天记录,而不能提取lily和girl的聊天记录,文件内容格式是固定的
先谢谢各位大哥
[ Last edited by provem on 2008-12-10 at 18:27 ]
|
|
2008-12-9 23:10 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
2 楼』:
findstr "boy" a.txt>另一个文本文件.txt
|
|
|
2008-12-9 23:19 |
|
|
provem
初级用户
积分 92
发帖 82
注册 2007-11-13
状态 离线
|
『第
3 楼』:
谢谢Hat版主,注册了一年了,一直没时间来,以后会常来,哈哈
[ Last edited by provem on 2008-12-9 at 23:30 ]
|
|
2008-12-9 23:29 |
|
|
provem
初级用户
积分 92
发帖 82
注册 2007-11-13
状态 离线
|
『第
4 楼』:
Hat,如果lily和girl的聊天内容含有"boy"的话,那不是也被提取出来了吗?能不能根据聊天内容的格式做到准备的提取呢
|
|
2008-12-9 23:31 |
|
|
provem
初级用户
积分 92
发帖 82
注册 2007-11-13
状态 离线
|
『第
5 楼』:
如果我把上面找到的内容从文件里删除应该怎么做呢?就相当于删除聊天记录
|
|
2008-12-10 09:44 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
6 楼』:
Re 4楼
@echo off
type nul>另一个文本文件.txt
for /f "delims=" %%a in (a.txt) do (
set str=%%a
setlocal enabledelayedexpansion
echo !str:~0,36!|findstr "boy">nul
if !errorlevel! equ 0 (
>>另一个文本文件.txt echo.%%a
)
endlocal
)
|
|
|
2008-12-10 10:14 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
『第
7 楼』:
Re 5楼
@echo off
type nul>临时文本文件.txt
for /f "delims=" %%a in (a.txt) do (
set str=%%a
setlocal enabledelayedexpansion
echo !str:~0,36!|findstr "boy">nul
if !errorlevel! neq 0 (
>>临时文本文件.txt echo.%%a
)
endlocal
)
move /y 临时文本文件.txt a.txt
|
|
|
2008-12-10 10:16 |
|
|
provem
初级用户
积分 92
发帖 82
注册 2007-11-13
状态 离线
|
『第
8 楼』:
谢谢,因为在做局域网信使聊天程序,想保存聊天记录,现在已经没什么大问题了,还在学习中
|
|
2008-12-10 10:54 |
|
|
provem
初级用户
积分 92
发帖 82
注册 2007-11-13
状态 离线
|
『第
9 楼』:
版主,我发现当聊天记录文件数据多的时候,这个处理方式有点慢,还有没有处理速度快点的方法
|
|
2008-12-10 16:42 |
|
|
tireless
银牌会员
积分 2025
发帖 1122
注册 2007-9-5
状态 离线
|
『第
10 楼』:
提取:
@echo off
set 原文件=a.txt
set 提取后的文件=b.txt
for /f "delims=: tokens=1,*" %%a in ('^(findstr /n "^boy.*对lily说:" "%原文件%"^&findstr /n "^boy.*对girl说:" "%原文件%"^&findstr /n "^girl.*对boy说:" "%原文件%"^&findstr /n "^lily.*对boy说:" "%原文件%"^)^|sort') do >>"%提取后的文件%" echo.%%b 删除聊天记录:
@echo off
set 原文件=a.txt
set 删除后的文件=d.txt
findstr /v "^boy.*对lily说:" "%原文件%"|findstr /v "^boy.*对girl说:"|findstr /v "^girl.*对boy说:"|findstr /v "^lily.*对boy说:">"%删除后的文件%" [ Last edited by tireless on 2008-12-10 at 21:52 ]
|
|
2008-12-10 20:21 |
|
|
provem
初级用户
积分 92
发帖 82
注册 2007-11-13
状态 离线
|
『第
11 楼』:
谢谢tireless,感觉测试的时候,会产生重复的聊天记录,比如我这次查看聊天记录会产生一次,明天再看聊天记录,又叠加产生昨天产生的那些聊天记录
|
|
2008-12-11 00:08 |
|
|
provem
初级用户
积分 92
发帖 82
注册 2007-11-13
状态 离线
|
『第
12 楼』:
我的想法是把一个局域网的所有聊天记录都保存在一台电脑上(当主机),每个人都可以查看自己发给别人的记录和别人发给自己的记(不能看不是自己发的,也不是发给自己的聊天记录),这里用的是Net send的方法接收信息,所以想到以这种方法保存聊天记录
以下我的正在调试的程序,大家看能不能完善下代码
:A_chat
set /p Main_Messege=请输入你将要发送的信息:
if "%Main_Messege%"=="2" goto ChatLog ::转到查看聊天记录
if "%Main_Messege%"=="" (
goto A_chat
) else (
echo %ME%于%date% %time%对%Local_IP_Name%说: %Main_Messege%>>\\server\news\chatlog\chatlog.txt
echo.正在发送信息,请稍等...
net send %sendname% %Main_Messege%
pause
goto A_chat
)
:ChatLog
cls
echo.-----------------------------------------------------
type nul>%tmp%"\"chatlog.txt
for /f "delims=" %%a in (\\server\news\chatlog\chatlog.txt) do (
set str=%%a
setlocal enabledelayedexpansion
echo !str:~0,40!|findstr "%ME%">nul
if !errorlevel! equ 0 (
>>%tmp%"\"chatlog.txt echo.%%a
)
endlocal
)
::findstr "%COMPUTERNAME%" \\server\news\chatlog\chatlog.txt>%tmp%"\"chatlog.txt
type %tmp%"\"chatlog.txt|more&echo.&echo.&echo.&pause
goto A_chat 以上代码输出的聊天格式为
boy于2008-12-09 星期二 0:18:29.28对girl说: 在哪里
boy于2008-12-09 星期二 0:32:19.29对lily说: 现在有空吗?
girl于2008-12-09 星期二 19:38:15.81对lily说:今天好郁闷
lily于2008-12-09 星期二 19:39:43.12对boy说: 现在在上班
girl于2008-12-09 星期二 19:40:32.41对boy说: 在家呢
boy于2008-12-09 星期二 19:40:50.16对girl说: 出来吧!
lily于2008-12-09 星期二 22:06:13.67对boy说: 有事吗?
以这种代码的处理方式感觉聊天记录多了,速度有点慢,大家帮我看看应该怎么改进
[ Last edited by provem on 2008-12-11 at 12:32 ]
|
|
2008-12-11 00:18 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
|
2008-12-11 11:17 |
|