📄 9933.txt
字号:
response.write“<a href=show.asp?id=”&rs(“id”)&“>”&rs(i)&“</a
>”
response.write“<B> from </B>”
response.write“<font color=#FFFF00>”&rs(“addr”)&“</font>”
else
response.write rs(i)
end if
%></td>
<%next%>
</tr>
<%rs.movenext
loop
rs.close
conn.close
%>
</table>
它所完成的工作为:将所有的留言的标题和作者,时间,留言者的ip
地址以表格的形式显示在你的浏览器上,以便进行连接和阅读.
第三步:
用来显示留言的具体内容,执行脚本设为show.asp,其代码如下:
<%
id = Request.QueryString(“id”)
If id = “” Then
Response.Redirect(“test.asp”)
End If
%>
<%
set conn = server.createobject(“adodb.connection”)
conn.open “bbs-lh”
set rs = conn.execute(“select name,title,email,
mem from bbs where id=”&id&“”)
%>
<center>
<% = rs(“name”) %>
</p>
<% = rs(“title”) %>
</p>
<% = rs(“email”) %>
</p>
<% = rs(“mem”) %>
</center>
第四步:
如何进行留言填写的asp脚本设为subbs.asp,代码如下:
<%
set conn = server.createobject(“adodb.connection”)
conn.open “bbs-lh”
sql=“insert into bbs(name,email,title,mem,addr)
values(‘”&request.form(“t1”)&“’,‘”&request.form(“t2”)&
“’,‘”&request.form(“t3”)&“’,‘”&request.form(“s1”)&
“’,‘”&request.servervariables(“remote_addr”)&“’)”
set rs = conn.execute(sql)
Response.Redirect(“test.asp”)
%>
第五步:
设计留言簿的书写介面guest.htm,html的代码如下:(或为guest.asp)
<html>
<head>
<meta http-equiv=“Content-Type” content=“text/html;charset=gb2312”>
<title>bbs</title>
<meta name=“GENERATOR” content=“Microsoft FrontPage 3.0”>
</head>
<body background=“Soapston.jpg”>
<p align=“center”><strong><big><big>
<font color=“#0000FF”>发表文章</font>
</big></big></strong></p></p>
<form action=“subbs.asp” method=“POST”>
<!--webbot bot=“SaveResults”
startspan U-File=“_private/form_results.txt”
S-Format=“TEXT/CSV” S-Label-Fields=“TRUE” -->
<!--webbot bot=“SaveResults” endspan -->
<font color=“#0000FF”>您的姓名:</font>
<font color=“#FF0000”>
<input type=“text” name=“T1” size=“20”></font></p>
<font color=“#0000FF”>您的email</font>
<font color=“#FF0000”>
<input type=“text” name=“T2” size=“23”></font></p>
<font color=“#0000FF”>文章标题:</font>
<font color=“#FF0000”>
<input type=“text” name=“T3” size=“23”></font></p>
<font color=“#0000FF”>文章内容:</font></p>
<textarea rows=“7” name=“S1” cols=“41”>
</textarea></p>
<font color=“#FF0000”>  注:在您的文章内容和文章标题
中,请不要用"<"">"的</font>
</p>
<font color=“#FF0000”>符号,谢谢合作.</font></p>
     
<input type=“submit” value=“发送” name=“action”>
        
       
<input type=“reset” value=“清除” name=“reset”></p>
</form>
</p>
</body>
</html>
这样一个bbs站的基本结构就已经完成。在NT服务器上就可以完成留言
和查询留言的工作。
最后,对于该模式下的bbs站还可以进行线上维护,对于有不适当的留
言进行删除的工作,这个留言簿还有一此细节的东西没有完善,如:对留言
的格式的前期检查,及为防止有的留言者将标题写成很大的字,即防止在特
定的栏有“<”或“>”的出现。这些内容本人将下次推出。
****************************************************************
****************************************************************
◆下载专区◆
RegTool (457K)
一个简单的 ActiveX 控件,可以用来操作 Windows 注册信息。
RegTool 有一个内置的加密能力。这个工具使得读取、书写、存储和展开
加密的 Windows 注册表信息变得很容易。
相关站点: http://www.biomechsystems.com/
下载地址: http://www.biomechsystems.com/RegTool/RegToolSetup.exe
3D Engine for VB6 1.6 (89K)
使你进行三维的图像编程。这个引擎没有任何附加的控件和 DLL。
下载地址: ftp://ftp.simtel.net/pub/simtelnet/win95/visbasic/3dvb6.zip
如果想要更多的编程工具、程序源码和控件的话,请来我的主页看看吧。
http://person.zj.cninfo.net/~yao
****************************************************************
****************************************************************
◆有问必答◆
★本期回答★
●114. 回答请mailto: yaozheng@kali.com.cn?subject=114
请问如何在 C++ Builder 中注册 AnsiString 类的属性编辑器?例如我
定义了一个 FileName 的属性,并且我也写好了该属性的编辑器类
TFileNameProperty, 但当我用 RegisterPropertyEditor 函数进行注册
时竟然不行,具体情况如下:
第一种情况:
RegisterPropertyEditor( __typeinfo( AnsiString ), NULL, "FileName",
__classid( TFileNameProperty ) );
这种情况将有错误返回,表示 __typeinfo 仅支持 VCL 类。
第二种情况:
TTypeInfo ti;
ti.Kind = tkString; // 或 tkLString、tkWString、...
ti.Name = "AnsiString"; // 或 String、...
RegisterPropertyEditor( &ti, NULL, "FileName", __classid( TFileNameProperty ) );
这种情况没有错误,但却没有注册该属性编辑器。
我知道如果用 Delphi,可以很轻松地实现:
RegisterPropertyEditor( TypeInfo( String ), nil, 'FileName', TFileNameProperty );
但我的程序全部用 C++ 做,不可能都转成 Delphi, 请问有没有只用
C++ 就可解决的办法? fslz@163.net
答:
在C++ Builder 中不是用函数来注册属性的.
你只要在你的类TFileName的定义中加一个关键词:_published:,然后再将你要在属性对话框中定义
的属性放在其下就行了.
如下是一个例子:
class TMyObject : public TComponent
{
private:
int FSomeInteger;
protected:
int AnotherInteger;
public:
int PublicInteger;
__published:
__property int SomeInteger={read=FSomeInteger, write=FSomeInteger};
};
这样你安装TMyObject时,SomeInteger就会出现在属性对话框中了.
详见:<<Charlie Calvert's C++ Builder Unleashed>> chap3: C++Builder and the VCL
(从下列地址下载: http://users.aol.com/charliecal )
●120. 回答请mailto: yaozheng@kali.com.cn?subject=120
我在SCO上装了SYBASE11,要求如下
1。一个客户程序(SCO或W95)向一个表里不定时追加数据。
2。另一个客户程序(可在SYBASE服务器上或远端的SCO、W95)尽可能快地
响应数据的变化。
我现在的方法,是这第二个程序不停轮询表,如果发现新数据,程序执行
其后操作。这种方法是不是太笨了?系统开销应该很大的。
设想能不能在表里数据变化时,由数据库server触发(调用、通知)客户
进程?发出一个消息,产生一个信号或生成一个操作系统级的标记文件等
等。我知道数据库里有触发器,但触发器的作用范围是否只局限于数据库
内部?谢谢 chenhao@263.net
答:
一般来说,触发器是定义在某个表上的,当对这个表有一定的操作时,就
会触发触发器。
●110. 回答请mailto: yaozheng@kali.com.cn?subject=110
有一数列,“123456”,请穷尽这一组数列。
如:123456
123465
123546
123564
123645
123654
:
:
:
654321
编一程序打印这一组数列的所有组合。请各位将源程序写出来,尽快发
给我好吗?李欢 li_huan@netease.com
答:
DIM A(6)
FOR I1 = 1 TO 6: A(1) = I1: FOR I2 = 1 TO 6: A(2) = I2
FOR I3 = 1 TO 6: A(3) = I3: FOR I4 = 1 TO 6: A(4) = I4
FOR I5 = 1 TO 6: A(5) = I5: FOR I6 = 1 TO 6: A(6) = I6
T = 0
FOR K1 = 1 TO 6: FOR K2 = 1 TO 6
IF K1 <> K2 AND A(K1) = A(K2) THEN T = 1
NEXT K2: NEXT K1
IF T = 0 THEN PRINT I1; I2; I3; I4; I5; I6: S = S + 1
NEXT I6: NEXT I5: NEXT I4: NEXT I3: NEXT I2: NEXT I1
PRINT "ADD UP TO:"; S
_______________________________________________________________
★本期提问★
123. 回答请mailto: yaozheng@kali.com.cn?subject=123
我在编写一wave文件播放器时遇见一棘手问题:
当文件较大,不能一次读入内存缓冲时,我用了两块内存缓冲区,一块数据
从硬盘读入后即送waveOutWrite()供播放,同时准备下一块数据,当第一块
缓冲区数据播完,第二块数据已准备好,立即交换两块缓冲区角色,如此循
环.但实际发现,再把硬盘数据读入缓冲时,播放的声音发生混乱,一旦读
盘动作结束,声音又恢复正常,不知是读硬盘要抢占cpu时间,还是影响声卡
的处理性能.特此请教,不知那诸多的媒体播放器是如何解决读盘与回放的
矛盾的?Zhou Zhendong zhouzd@126.com
124. 回答请mailto: yaozheng@kali.com.cn?subject=124
我想知道在mfc activeX control中,怎么才能控制控件的x, y,width & height
我希望的调用方式
CMyControl ctrlMy;
ctrlMy.height = 200;
ctrlMy.x = 500;
....
125. 回答请mailto: yaozheng@kali.com.cn?subject=125
各位好!有一个问题想请教。请问如何用DELPHI编程读取当前机器当前
的IP地址?应用什么函数?简单举例说明,谢谢! snow@kali.com.cn
126. 回答请mailto: yaozheng@kali.com.cn?subject=126
DOS应用程序怎样才可以包含进C++ Builder应用程序中?
我在一个实际的C++ Builder应用中,希望调用Dos应用程序Arj.exe,
但是我不希望Arj是以外部程序的形式存在,而希望将Arj包含进我的应
用程序中。也就是说,Arj成为了我的应用程序的一部分,而最终表现
只是一个exe文件!望各位高手指点一二. Amily_HJQ@gf.com.cn
127. 回答请mailto: yaozheng@kali.com.cn?subject=127
请问如何把汇编程序变成.hex文件格式。如可以的话请把这个软件传给我。
shuangding@990.net
128. 回答请mailto: yaozheng@kali.com.cn?subject=128
请问如何将一个Htm文件转换为一个文本文件。最近我在用VB6开发一个类
似电子书库的程序,我需要将网页文件导入到数据库中,我想将网页文件
转换成文本文件,请问如何用算法实现(不是用控件)?如果能够将网页
和网页中的图片一起生成一个rtf文件最好。请各位高手帮忙,我在这里
感谢大家了!我的邮件地址: masmfan@yeah.net
129. 回答请mailto: yaozheng@kali.com.cn?subject=129
怎样用MCISENDSTRING 函数检测光驱的开关状况??
(是检测而不是实现光驱的开与关)
我曾用Ret=Mcisendstring("Status Cdaudio ready",returnstring,127,0)
检测,但无论光驱是否开或关,它总是返回相同的数值。请各位前辈赐教!
谢谢!! jimven@21cn.com
提问信箱: yaozheng@kali.com.cn?subject=question
如果您有什么疑难问题,请发到上面的信箱里,我会及时把您的问题放在
杂志上的,希望编程高手们能不吝赐教,也希望这个栏目能成为大家交流
的场所。
****************************************************************
****************************************************************
◆编者的话◆
本刊已加入【CHINA-EZL】中国电子杂志联盟
联盟主页地址 http://china-ezl.yeah.net
◆欢迎光临我的个人主页
●《编程技术》 http://person.zj.cninfo.net/~yao
本刊的同名主页,主要以收集各类编程工具控件和程序源代码为主。
●《C++ Builder世界》 http://cppbuilder.myrice.com
本人最新制作的个人主页,是一个探讨C++ Builder编程的专题
网站,为广大的C++ Builder爱好者搜集关于C++ Builder的一切。
◆《编程技术》订、退方法:
请到本刊主页进行订退工作 http://person.zj.cninfo.net/~yao
如果您觉得这份刊物还不错的话,欢迎把它介绍给您的朋友.
不知道您看了这期刊物有什么想法或者是意见,欢迎向我提出来.
本人感激不尽,我的联系方法如下:
E-mail:yaozheng@kali.com.cn
ICQ#: 43260473
**************************THE END**************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -