我的想法是把一个局域网的所有聊天记录都保存在一台电脑上(当主机),每个人都可以查看自己发给别人的记录和别人发给自己的记(不能看不是自己发的,也不是发给自己的聊天记录),这里用的是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 ]