{急!}VBScript怎样构造函数,通过函数来调用组件?

direct332 2003-10-20 10:15:55
怎样做啊?高手门帮帮忙!
...全文
37 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
JavaScript电子书,包括了JavaScript的大部分知识,可以帮助读者快速入门。内容如下: 第1章 JavaScript语言概述 1.1 JavaScript是什么 1.1.1 JavaScript简史 1.1.2 JavaScript有何特点 1.2 JavaScript能做什么 1.2.1 表单数据合法性验证 1.2.2 页面特效 1.2.3 交互式菜单 1.2.4 动态页面 1.2.5 数值计算 1.3 JavaScript编程起步 1.3.1 “Hello World!”程序 1.3.2 选择JavaScript脚本编辑器 1.4 如何引入JavaScript脚本代码 1.4.1 通过与标记对引入 1.4.2 通过标记的src属性引入 1.4.3 通过JavaScript伪URL引入 1.4.4 通过HTML文档事件处理程序引入 1.5 嵌入JavaScript脚本代码的位置 1.5.1 在与标记对之间放置 1.5.2 在与标记对之间放置 1.5.3 在两个标记对之间混合放置 1.6 选择合适的浏览器 1.7 处理不支持JavaScript脚本的情况 1.7.1 使用标记对直接屏蔽法 1.7.2 使用和标记对给出提示信息 1.8 JavaScript的实现基础 1.8.1 ECMAScript 1.8.2 DOM 1.8.3 BOM 1.9 客户端与服务器端脚本 1.10 JavaScript与JScript、 VBScript 1.11 JavaScript与Java、Java applet 1.12 JavaScript的未来如何 1.13 本章小结 第2章 JavaScript语言入门 2.1 编程准备 2.1.1 编程术语 2.1.2 脚本执行顺序 2.1.3 大小写敏感 2.1.4 空白字符 2.1.5 分号 2.1.6 块 2.2 数值类型 2.2.1 整型和浮点数值 2.2.2 八进制和十六进制 2.3 变量 2.3.1 变量标识符 2.3.2 变量申明 2.3.3 变量作用域 2.4 弱类型 2.5 基本数据类型 2.5.1 Number型 2.5.2 String型 2.5.3 Boolean型 2.5.4 Undefined型 2.5.5 Null型 2.5.6 Function型 2.6 组合类型 2.6.1 Array型 2.6.2 Object型 2.7 运算符 2.7.1 赋值运算符 2.7.2 基本数学运算符 2.7.3 位运算符 2.7.4 位移运算符 2.7.5 自加和自减 2.7.6 比较运算符 2.7.7 逻辑运算符 2.7.8 逗号运算符 2.7.9 空运算符 2.7.10 ?...:运算符 2.7.11 对象运算符 2.7.12 typeof运算符 2.7.13 运算符优先级 2.8 核心语句 2.8.1 基本处理流程 2.8.2 if条件假设语句 2.8.3 switch流程控制语句 2.8.4 for循环语句 2.8.5 while和do-while循环语句 2.8.6 使用break和continue进行循坏控制 2.8.7 with对象操作语句 2.8.8 使用for…in进行对象循坏 2.8.9 含标签的语句 2.9 函数 2.9.1 函数的基本组成 2.9.2 全局函数与局部函数 2.9.3 作为对象的函数 2.9.4 函数递归调用 2.9.5 语言注释语句 2.9.6 函数应用注意事项 2.10 本章小结 第3章 JavaScript事件处理 3.1 什么是事件 3.2 HTML文档事件 3.2.1 事件捆绑 3.2.2 浏览器事件 3.2.3 HTML元素事件 3.2.4 IE扩展的事件 3.3 JavaScript如何处理事件 3.3.1 匿名函数 3.3.2 显式声明 3.3.3 手工触发 3.4 事件处理器的返回值 3.5 事件处理器设置的灵活性 3.6 现代事件模型与Event对象 3.7 IE4中的Event对象 3.7.1 对象属性 3.7.2 事件上溯 3.7.3 阻止事件上溯 3.7.4 事件改向 3.8 NN4中的Event对象 3.8.1 对象属性 3.8.2 事件捕获 3.8.3 关闭事件捕获 3.8.4 事件传递 3.9 DOM的解决之道
源文件程序天下JAVASCRIPT实例自学手册 第1章 JavaScript语言概述 1.1 JavaScript是什么 1.1.1 JavaScript简史 1.1.2 JavaScript有何特点 1.2 JavaScript能做什么 1.2.1 表单数据合法性验证 1.2.2 页面特效 1.2.3 交互式菜单 1.2.4 动态页面 1.2.5 数值计算 1.3 JavaScript编程起步 1.3.1 “Hello World!”程序 1.3.2 选择JavaScript脚本编辑器 1.4 如何引入JavaScript脚本代码 1.4.1 通过[removed]与[removed]标记对引入 1.4.2 通过[removed]标记的src属性引入 1.4.3 通过JavaScript伪URL引入 1.4.4 通过HTML文档事件处理程序引入 1.5 嵌入JavaScript脚本代码的位置 1.5.1 在<head>与</head>标记对之间放置 1.5.2 在<body>与</body>标记对之间放置 1.5.3 在两个标记对之间混合放置 1.6 选择合适的浏览器 1.7 处理不支持JavaScript脚本的情况 1.7.1 使用<!--和-->标记对直接屏蔽法 1.7.2 使用VBScript 1.11 JavaScript与Java、Java applet 1.12 JavaScript的未来如何 1.13 本章小结 第2章 JavaScript语言入门 2.1 编程准备 2.1.1 编程术语 2.1.2 脚本执行顺序 2.1.3 大小写敏感 2.1.4 空白字符 2.1.5 分号 2.1.6 块 2.2 数值类型 2.2.1 整型和浮点数值 2.2.2 八进制和十六进制 2.3 变量 2.3.1 变量标识符 2.3.2 变量申明 2.3.3 变量作用域 2.4 弱类型 2.5 基本数据类型 2.5.1 Number型 2.5.2 String型 2.5.3 Boolean型 2.5.4 Undefined型 2.5.5 Null型 2.5.6 Function型 2.6 组合类型 2.6.1 Array型 2.6.2 Object型 2.7 运算符 2.7.1 赋值运算符 2.7.2 基本数学运算符 2.7.3 位运算符 2.7.4 位移运算符 2.7.5 自加和自减 2.7.6 比较运算符 2.7.7 逻辑运算符 2.7.8 逗号运算符 2.7.9 空运算符 2.7.10 ?...:运算符 2.7.11 对象运算符 2.7.12 typeof运算符 2.7.13 运算符优先级 2.8 核心语句 2.8.1 基本处理流程 2.8.2 if条件假设语句 2.8.3 switch流程控制语句 2.8.4 for循环语句 2.8.5 while和do-while循环语句 2.8.6 使用break和continue进行循坏控制 2.8.7 with对象操作语句 2.8.8 使用for…in进行对象循坏 2.8.9 含标签的语句 2.9 函数 2.9.1 函数的基本组成 2.9.2 全局函数与局部函数 2.9.3 作为对象的函数 2.9.4 函数递归调用 2.9.5 语言注释语句 2.9.6 函数应用注意事项 2.10 本章小结 第3章 JavaScript事件处理 3.1 什么是事件 3.2 HTML文档事件 3.2.1 事件捆绑 3.2.2 浏览器事件 3.2.3 HTML元素事件 3.2.4 IE扩展的事件 3.3 JavaScript如何处理事件 3.3.1 匿名函数 3.3.2 显式声明 3.3.3 手工触发 3.4 事件处理器的返回值 3.5 事件处理器设置的灵活性 3.6 现代事件模型与Event对象 3.7 IE4中的Event对象 3.7.1 对象属性 3.7.2 事件上溯 3.7.3 阻止事件上溯 3.7.4 事件改向 3.8 NN4中的Event对象 3.8.1 对象属性 3.8.2 事件捕获 3.8.3 关闭事件捕获 3.8.4 事件传递 3.9 DOM的解决之道 3.9.1 事件流方向 3.9.2 Event对象 3.9.3 事件类型 3.10 本章小结 第4章 JavaScript基于对象编程 4.1 面向对象编程与基于对象编程 4.1.1 什么是对象 4.1.2 面向对象编程 4.1.3 面向对象编程:继承 4.1.4 面向对象编程:封装 4.1.5 面向对象编程:多态 4.1.6 基于对象编程 4.2 JavaScript对象的生成 4.2.1 HTML文档结构 4.2.2 DOM框架 4.2.3 顶级对象之间的关系 4.2.4 浏览器载入文档时对象的生成 4.3 JavaScript核心对象 4.4 文档对象的引用 4.4.1 通过对象位置访问文档对象 4.4.2 通过name属性访问文档对象 4.4.3 通过id属性访问文档对象 4.4.4 通过联合数组访问文档对象 4.5 创建和使用自定义对象 4.5.1 通过定义对象的构造函数的方法 4.5.2 通过对象直接初始化的方法 4.5.3 修改、删除对象实例的属性 4.5.4 通过原型为对象添加新属性和新方法 4.5.5 自定义对象的嵌套 4.5.6 内存的分配和释放 4.6 本章小结 第5章 文档对象模型(DOM) 5.1 DOM概述 5.1.1 基本对象模型 5.1.2 Netscape Navigator浏览器扩展 5.1.3 Internet Explorer浏览器扩展 5.1.4 Opera、Mozilla和其他浏览器扩展 5.1.5 W3C DOM 5.1.6 W3C DOM规范级别 5.2 文档对象模型的层次 5.3 文档对象的产生过程 5.4 对象的属性和方法 5.4.1 何谓节点 5.4.2 元素节点(element node) 5.4.3 文本节点(text node) 5.4.4 属性节点(attribute node) 5.4.5 对象属性 5.4.6 id属性和class属性 5.4.7 通过id属性返回指定对象 5.4.8 通过元素标签返回指定对象 5.4.9 通过name属性返回指定对象 5.4.10 获取特定属性的取值 5.4.11 设置特定属性的取值 5.4.12 删除特定的属性 5.5 附加的节点处理方法 5.5.1 生成节点 5.5.2 插入和添加节点 5.5.3 复制节点 5.5.4 删除和替换节点 5.5.5 文本节点操作 5.6 对象的事件处理程序 5.7 浏览器兼容性策略 5.8 本章小结 第6章 String、Math、Array等数据对象 6.1 String对象 6.1.1 如何使用String对象方法操作字符串 6.1.2 获取目标字符串长度 6.1.3 连接两个字符串 6.1.4 验证电子邮件地址的合法性 6.1.5 返回指定位置的字符串 6.1.6 在URL中定位字符串 6.1.7 分隔字符串 6.1.8 将字符串标记为HTML语句 6.1.9 常见属性和方法汇总 6.2 Math对象 6.2.1 基本数学运算 6.2.2 任意范围随机数发生器 6.2.3 访问其基本属性 6.2.4 使用with声明简化表达式 6.2.5 常见属性汇总 6.2.6 常见方法汇总 6.3 Array对象 6.3.1 创建数组并访问其特定位置元素 6.3.2 数组中元素的顺序问题 6.3.3 模拟堆栈和队列操作的方法 6.3.4 使用splice()方法添加和删除数组元素 6.3.5 修改length属性更改数组 6.3.6 调用Array对象的方法生成字符串 6.3.7 连接两个数组 6.3.8 常见属性和方法汇总 6.4 Date对象 6.4.1 生成日期对象的实例 6.4.2 如何提取日期各字段 6.4.3 如何设置日期各字段 6.4.4 将日期转化为字符串 6.5 Number对象 6.5.1 创建Number对象的实例 6.5.2 将Number对象转化为字符串 6.5.3 通过原型属性为对象添加属性和方法 6.5.4 常见属性和方法汇总 6.6 Boolean对象 6.6.1 创建Boolean对象的实例 6.6.2 将Boolean对象转化为字符串 6.6.3 常见属性和方法汇总 6.7 Function对象 6.7.1 两个概念:Function与function 6.7.2 使用Function对象构造函数 6.7.3 常见属性和方法汇总 6.8 Object对象 6.8.1 创建Object对象的实例 6.8.2 常见属性和方法列表 6.9 本章小结 第7章 Window及相关顶级对象 7.1 顶级对象模型参考 7.2 Window对象 7.2.1 警告框 7.2.2 确认框 7.2.3 提示框 7.2.4 实例:学生信息采集系统 7.2.5 设定时间间隔 7.2.6 事件超时控制 7.2.7 创建和管理新窗口 7.2.8 常见属性和方法汇总 7.3 Navigator对象 7.3.1 获取浏览器信息 7.3.2 常见方法和属性汇总 7.4 Screen对象 7.4.1 获取客户端屏幕信息 7.4.2 定位窗口到指定位置 7.4.3 常见属性和方法汇总 7.5 History对象 7.5.1 使用back()和forward()方法进行站点导航 7.5.2 使用go()方法进行站点导航 7.5.3 常见属性和方法汇总 7.6 Location对象 7.6.1 统一资源定位器(URL) 7.6.2 Location对象属性与URL的对应 7.6.3 使用reload()方法重载页面 7.7 Frame对象 7.7.1 框架集文档中对象的结构 7.7.2 控制指定的框架 7.7.3 常见属性和方法汇总 7.7.4 Frameset对象 7.7.5 iframe元素对象 7.8 Document对象 7.9 本章小结 第8章 Document对象 8.1 对象模型参考 8.2 Document对象 8.2.1 获取目标文档信息 8.2.2 设置文档颜色值 8.2.3 往文档写入新内容 8.2.4 常见属性和方法汇总 8.3 body元素对象 8.3.1 获取body元素对象信息 8.3.2 常见属性和方法汇总 8.4 本章小结
标题:PHP基础教程 出处:风流的CG网络日志 时间:Mon, 28 Aug 2006 07:24:34 +0000 作者:yufeng 地址:http:///read.php?38 内容: 提供给新手学习的 PHP新手教程,是一个比较有价值的PHP新手教程! 一、PHP简介 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点。本教程并不想让你完全了解这种语言,只是能使你尽快加入开发动态web站点的行列。我假定你有一些HTML(或者HTML编辑器)的基本知识和一些编程思想。 1.简介 PHP是能让你生成动态网页的工具之一。PHP网页文件被当作一般HTML网页文件来处理并且在编辑时你可以用编辑HTML的常规方法编写PHP。 PHP代表:超文本预处理器(PHP: Hypertext Preprocessor)。PHP是完全免费的,不用花钱,你可以从PHP官方站点(http://www.php.net)自由下载。PHP遵守GNU公共许可(GPL),在这一许可下诞生了许多流行的软件诸如Linux和Emacs。你可以不受限制的获得源码,甚至可以从中加进你自己需要的特色。PHP在大多数Unix平台,GUN/Linux和微软Windows平台上均可以运行。怎样在Windows环境的PC机器或Unix机器上安装PHP的资料可以在PHP官方站点上找到。安装过程很简单。 如果你的机器解决了2000问题,那么PHP也一样没有千年虫问题! 1.1 历史 三年前,Rasmus Lerdorf为了创建他的在线简历而创造了"个人主页工具"(Personal Home Page Tools)。这是一种非常简单的语言。其后越来越多的人们注意到了这种语言并对其扩展提出了各种建议。在许多人的无私奉献下以及这种语言本身的源代码自由性质,它演变成为一种特点丰富的语言,而且现在还在成长中。 PHP虽然很容易学习,但是速度上比mod_perl(植入web服务器的perl模块)慢。现在有了可以与mod_perl速度想媲美的被称作Zend的新引擎,而PHP4就可以充分利用这个引擎。PHP4还处在BETA测试阶段。Andy Gutmans和Zeev Suraki是Zend的主要作者。可以去Zend站点(http://www.zend.com)了解更多。 PHP的应用在个人性质的web工程中增长显著。根据Netcraft在1999年10月的报告,有931122个域和321128个IP地址利用PHP技术。 1.2 PHP的先进之处 应用PHP有许多好处。当然已知的不利之处在于PHP由于是开放源码项目,没有什么商业支持,并且由此而带来的执行速度缓慢(直到PHP4之前)。但是PHP的邮件列表很是有用而且除非你正在运行像Yahoo!或者Amazon.com这样的极受欢迎的站点,你不会感觉出PHP的速度与其他的有什么不同。最起码我就没有感觉出来!好了,让我们来看看PHP有那些优点: - 学习过程 我个人更喜欢PHP的非常简单的学习过程。与Java和Perl不同,你不必把头埋进100多页的文档中努力学习才可以写出一个象样的程序。只要了解一些基本的语法和语言特色,你就可以开始你的PHP编码之旅了。之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅相关文档。 PHP的语法与C,Perl,ASP或者JSP。对于那些对上述之一的语言较熟悉的人来说,PHP太简单了。相反的,如果你对PHP了解较多,那么你对于其他几种语言的学习都很简单了。 你只需要30分钟就可以将PHP的核心语言特点全部掌握,你可能已经非常了解HTML,甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB站点。由于PHP代码能够无障碍的添加进你的站点,在你设计和维护站点的同时,你可以很轻松的加入PHP使得你的站点更加具有动态特性。 - 数据库连接 PHP可以编译成具有与许多数据库相连接的函数。PHP与MySQL是现在绝佳的组合。你还可以自己编写外围的函数取间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松的更改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。 - 可扩展性 就像前面说的那样,PHP已经进入了一个高速发展的时期。对于一个非程序员来说为PHP扩展附加功能可能会比较难,但是对于一个PHP程序员来说并不困难。 - 面向对象编程 PHP提供了类和对象。基于web的编程工作非常需要面向对象编程能力。PHP支持构造器、提取类等。 - 可伸缩性 传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。PHP就可以以这种方式安装,虽然很少有人愿意这样以CGI方式安装它。内嵌的PHP可以具有更高的可伸缩性。 - 更多特点 PHP的开发者们为了更适合web编程,开发了许多外围的流行基库,这些库包含了更易用的层。你可以利用PHP连接包括Oracle,MS-Access,Mysql在内的大部分数据库。你可以在苍蝇上画图,编写程序下载或者显示e-mail。你甚至可以完成网络相关的功能。最好的是,你可以选择你的PHP安装版本需要哪些功能。引用Nissan的Xterra的话来说就是PHP可以做到你想让它做到的一切而且无所不能! 1.3 竞争对手:ASP,mod_perl,JSP 我当然不清楚ASP/JSP能做些什么。不过明确的是编写那样的代码有多简单,购买它们会有多昂贵以及它们需要多么昂贵和强大的硬件。如果你有什么中立的观点(比如说没有被SUN和Microsoft的百万美金所影响),请顺便通知我。 据我所知,JSP基于Java,因此Java程序员可以轻松开始编码。ASP只是一个一般的引擎,具有支持多种语言的能力,不过默认的并且是最常用的还是VBScript。 mod_perl与Perl一样强大,只是更快一些。 二、PHP入门 PHP站点的在线教程已经很棒了。在那里还有一些其他教程的链接。而本文的该部分将让你对PHP熟悉一点。我不可能做到没有任何遗漏,我的目的只在于能让你迅速开始你的PHP编程。 2.1 首要条件 你首先必须要有一个正在工作着的支持PHP的web服务器。我假定在你的服务器上所有PHP文件的扩展名为.php3。 2.2 PHP的安装 生成一个名为test.php3的文件,含有以下内容: 然后在你的浏览器中打开此文件。看看这个页面你就知道你的PHP安装使用的选项了。 2.3 语法 就像前面提到的一样,你可以混合编写你的PHP代码和HTML代码。因此你必须有办法将两者区别开来。以下就是你可以采用的几种方法。你可以选用其中一种你最适应的并且就这样坚持这种方法! 从HTML中分离 以下是可以使用的方法: . . . 语句 与Perl和C一样,在PHP中用(;)来分隔语句。那些从HTML中分离出来的标志也表示语句的结束。 注释 PHP支持C,C++和Unix风格的注释方式: /* C,C++风格多行注释 */ // C++风格单行注释 # Unix风格单行注释 Hello,World! 通过我们已经学过的知识,你可以编写一个最简单的程序输出一个也许是程序世界中最有名的词语: First PHP page 2.4 数据类型 PHP支持整数、浮点数、字符串、数组和对象。变量类型通常不由程序员决定而由PHP运行过程决定(真是好的解脱!)。但是类型也可以被函数cast或者settype()明确的设定。 数值 数值类型可以是整数或是浮点数。你可以用以下的语句来为一个数值赋值: $a = 1234; # 十进制数 $a = -123; # 负数 $a = 0123; # 八进制数 (等于十进制数的83) $a = 0x12; # 十六进制数(等于十进制数的18) $a = 1.234; # 浮点数"双精度数" $a = 1.2e3; # 双精度数的指数形式 字符串 字符串可以由单引号或双引号引出的字段定义。注意不同的是被单引号引出的字符串是以字面定义的,而双引号引出的字符串可以被扩展。反斜杠(\)可以被用来分割某些特殊字符。举例如下: $first = 'Hello'; $second = "World"; $full1 = "$first $second"; # 产生 Hello World $full2 = '$first $second';# 产生 $first $second 可以将字符和数字利用运算符号连接起来。字符被转化成数字,利用其最初位置。在PHP手册中有详细的例子。 数组与哈希表 数组与哈希表以同样的方法被支持。怎样运用取决于你怎样定义它们。你可以用list()或者array()来定义它们,也可以直接为数组赋值。数组的索引从0开始。虽然我在这里没有说明,但是你一样可以轻易的使用多维数组。 // 一个包含两个元素的数组 $a[0] = "first"; $a[1] = "second"; $a[] = "third"; // 添加数组元素的简单方法 // 现在$a[2]被赋值为"third" echo count($a); // 打印出3,因为该是数组有3个元素 // 用一个语句定义一个数组并赋值 $myphonebook = array ( "sbabu" => "5348", "keith" => "4829", "carole" => "4533" ); // 噢,忘了教长吧,让我们添加一个元素 $myphonebook["dean"] = "5397"; // 你定义的carale元素错了,让我们更正它 $myphonebook["carole"] => "4522" // 我还没有告诉你怎样使用数组的相似支持方式吗?让我们看一看 echo "$myphonebook[0]"; // sbabu echo "$myphonebook[1]"; // 5348 其他一些对数组或哈希表有用的函数包括sort(),next(),prev()和each()。 对象 使用new语句产生一个对象: class foo { function do_foo () { echo "Doing foo."; } } $bar = new foo; $bar->do_foo(); 改变变量类型 在PHP手册中提到:"PHP不支持(也不需要)直接在声明变量时定义变量类型;变量类型将根据其被应用的情况决定。如果你为变量var赋值为一个字符串,那么它变成了一个字符串。如果你又为它赋了整数值,那么它就变成了整数。" $foo = "0"; // $foo是字符串(ASCII 48) $foo++; // $foo是字符串"1" (ASCII 49) $foo += 1; // $foo现在是整数(2) $foo = $foo + 1.3; // $foo是一个双精度数(3.3) $foo = 5 + "10 Little Piggies"; // $foo是一个整数(15) $foo = 5 + "10 Small Pigs"; // $foo是一个整数(15) 如果想要强行转换变量类型,可以使用与C语言相同的函数settype()。 2.5 变量与常量 可能你已经注意到,变量都有一个美元符号($)的前缀。所有变量都是局部变量,为了使得定义的函数中可以使用外部变量,使用global语句。而你要将该变量的作用范围限制在该函数之内,使用static语句。 $g_var = 1 ; // 全局范围 function test() { global $g_var; // 这样就可以声明全局变量了 } 更先进一些的是变量的变量表示。请参考PHP手册。这在有时会显得很有用。 PHP内置了许多已定义的变量。你也可以用define函数定义你自己的常量,比如define("CONSTANT","value")。 2.6 运算符 PHP具有C,C++和Java中的通常见到的运算符。这些运算符的优先权也是一致的。赋值同样使用"="。 算术和字符 以下只有一种运算符是有关字符的: $a + $b :加 $a - $b :减 $a * $b :乘 $a / $b :除 $a % $b :取模(余数) $a . $b :字符串连接 逻辑和比较 逻辑运算符有: $a || $b :或 $a or $b :或 $a && $b :与 $a and $b :与 $a xor $b :异或 (当$a或$b为true时为true,两者一样时为false) ! $a :非 比较运算符有: $a == $b :相等 $a != $b :不等 $a < $b :小于 $a $b :大于 $a >= $b :大于等于 与C一样PHP也有三重运算符(?:)。位操作符在PHP同样存在。 优先权 就和C以及Java一样! 2.7 控制流程结构 PHP有着与C一样的流程控制。我将在下面大概介绍。 if, else, elseif, if(): endif if (表达式一) { . . . } elseif (表达式二) { . . . } else { . . . } // 或者像Python一样 if (表达式一) : . . . . . . elseif (表达式二) : . . . else : . . . endif ; Loops. while, do..while, for while (表达式) { . . . } do { . . . } while (表达式); for (表达式一; 表达式二; 表达式三) { . . . } //或者像Python一样 while (expr) : . . . endwhile ; switch switch是对多重if-elseif-else结构的最好的替换: switch ($i) { case 0: print "i equals 0"; case 1: print "i equals 1"; case 2: print "i equals 2"; } break, continue break中断当前的循环控制结构。 continue被用来跳出剩下的当前循环并继续执行下一次循环。 require, include 就像C中的#include预处理一样。你在require中指定的那个文件将替代其在主文件中的位置。在有条件的引用文件时,可以使用include()。这样就使得你可以将复杂的PHP文件分割成多个文件并且在不同需要时分别引用它们。 2.8 函数 你可以像以下的例子一样定义自己的函数函数的返回值可以是任何数据类型: function foo (变量名一, 变量名二, . . . , 变量名n) { echo "Example function.\n"; return $retval; } 所有PHP代码都可以出现在函数定义中,甚至包括对其他函数和类的定义。函数必须在引用之前定义。 2.9 类 利用类模型建立类。可以参考PHP手册中对类的详细解释。 class Employee { var $empno; // 员工人数 var $empnm; // 员工姓名 function add_employee($in_num, $in_name) { $this->empno = $in_num; $this->empnm = $in_name; } function show() { echo "$this->empno, $this->empnm"; return; } function changenm($in_name) { $this->empnm = $in_name; } } $sbabu = new Employee; $sbabu->add_employee(10,"sbabu"); $sbabu->changenm("babu"); $sbabu->show(); 三、从实例入手  PHP的许多特点与其他软件或者工具有关。利用迄今为止我们所学到的PHP知识,我们可以试着建立一个简单交互的网站。利用这一过程我们又可以学到不少东西。好吧,我们现在开始专注于一个典型个人网站的建设。 3.1 计划一个站点 一般一个个人站点包括一个欢迎页面、一个留言本页面、一个书签链接页面、一个计数器、联系信息,甚至还有照片集和一些音乐文件等等。让我们从一个标题页面、一个联系信息页面和一个简历页面开始。我们同样需要标准的通用的页面头部和底部。 标题页面--front.html 这里我们有一个非常简单的html文件: 我的个人主页--欢迎 我的个人主页 欢迎 欢迎来我的寒舍,虽然这里现在暂时还没有什么。 不过我希望马上就可以多起来。 Copyright ? 我自己,1999 联系信息页面--count.html 同样我们又有了一个简单页面: 我的个人主页--联系信息 我的个人主页 联系信息 你可以通过1-800-PHP-INFO联系我 Copyright ? 我自己,1999 3.2 HTML到PHP 从上面你可以看出,每个页面有相同的头部和底部。像上面那样每个页面都写入相同的信息在工作量少的时候还可以,但是想象一下当有100多页面且你需要全部更改其头部或底部时你要花费多大精力?一页一页的手工更改是一件多么冗长无趣的事情啊!所以我们应该为这些页面编写PHP的头部和底部文件,之后我们只要在每个HTML页面中引用它们就行了。我们将把这些include文件放在一个叫include的子目录下。下面我们就把这些站点的通用内容写进文件中。 全站通用变量设定:common.inc 通用页面头部:header.inc 通用页面底部:footer.inc Copyright ? by , 1999 新的页面front.php3: 欢迎来我的寒舍,虽然这里现在暂时还没有什么。 不过我希望马上就可以多起来。 新的cont.php3: 你可以通过1-800-PHP-INFO联系我 现在你就可以猜出这样安排的好处了。如果你想改动页面的头部或者底部,你只需要改动相应的文件就可以了。如果你要修改你的e-mail地址甚至你的名字,只要修改common.inc文件就行了。另外值得注意的是你可以把具有任何文件名或者文件扩展名的文件包含进你的文件中,你甚至可以包含其他站点上的文件。 3.3 计数器 让我们在首页上加上一个计数器。这个例子已经被讲过多次了,但是还是有利于演示怎样读写文件以及创建自己的函数。counter.inc包含以下代码: 然后我们更改front.php3文件以显示这个计数器: 看看我们的新front.php3 3.4 反馈表单 让我们再添加一个反馈表单以便你的浏览者填写并e-mail给你。举例来说我们用一种很简单的方法实现它,我们只需要两个页面:一个为浏览者提供输入表单;一个获得表单数据并处理、mail给你。 PHP中获取表单数据是很简单的。当一个表单被发送后,表单中所包含的各个元素被赋上了相应的值,而这样就可以像引用一般变量一样使用了。 在process_form.php3中,变量$mytext就被赋予了输入的值--非常简单!同样的,你可以从列表框、多选框、单选框、按钮等表单元素中取得变量值。你唯一要做的就是为表单中的每一个元素取名以便将来可以引用。 根据这个方法,我们可以生成一个简单的包含三个元素的表单:姓名、e-mail地址和留言。当浏览者发送表单后,处理该表单的PHP页面(sendfdbk.php3)读取数据,检查姓名是否为空,最后将数据mail给你。 表单:form.php3 Your feedback on my home page. 处理表单:sendfdbk.php3 3.5 简单的站内搜索引擎 PHP可以调用外部程序。在Unix环境下我们可以利用程序grep实现一个简单的搜索引擎。我们可以做的稍微复杂一些:使用一个页面既输出一个表单供用户输入搜索字串又输出查询结果。
调用grep查询 echo "\n"; // 调用grep对所有文件进行大小写非敏感模式的查询 $cmdstr = "grep -i $searchstr *"; $fp = popen( $cmdstr, "r" ); // 执行命令并输出管道 $myresult = array(); // 存储查询结果 while( $buffer = fgetss ($fp, 4096)) { // grep返回这样格式: 文件名:匹配字串出现行数 // 因此我们利用函数split()分离处理数据 list($fname, $fline) = split(":",$buffer, 2); // 我们只输出第一次匹配的结果 if ( !defined($myresult[$fname])) $myresult[$fname] = $fline; } // 现在我们将结果存储在数组中,下面就可以处理并输出了 if ( count($myresult) ) { echo "\n"; while(list($fname,$fline) = each($myresult)) echo " $fname : $fline \n"; echo "\n"; } else { // 如果没有查询结果 echo "Sorry. Search on $searchstr returned no results.\n"; } pclose($fp); } ?> 注释: PHP_SELF是PHP内建的变量。包含当前文件名。 fgets()按行读取文件,最多4096(指定)字符长度。 fgetss()与fgets()相似,只是解析输出的HTML标记。 split()有一个参数是2,因为我们只需要把输出分成两部分。另外需要省略":"。 each()是一个数组操作函数,用来更方便的遍历整个数组。 popen()、pclose()与fopen()、fclose()的功能很相似,只是增加了管道处理。 请注意以上的代码并不是实现一个搜索引擎的好办法。这只是有助于我们更好学习PHP而举出的一个例子而已。理想的情况是你应该建立一个包含关键字的数据库然后进行搜索 四、与数据库链接 通过PHP你可以轻松的连接到数据库,请求数据并将其显示在你的web站点中,甚至修改数据库中的数据。MySQL是一种很流行的数据库,并且在互联网中有许多有关PHP与MySQL的教程。MySQL是免费的,这一点也许就吸引了不少人。由于其广泛应用,我就不想在这里赘述MySQL的使用方法了。Oracle被大量在企业应用中采用,因此我们就利用Oracle来介绍PHP与数据库的连接。我们当然不会提及Oracle数据库的设计原理,原因是这已经超出了我们的讨论范围。 PHP提供了两套函数与Oracle连接,分别是ORA_和OCI函数。其中ORA_函数略显陈旧。OCI函数更新据说更好一些。两者的使用语法几乎相差无几。如前所述,你的PHP安装选项应该可以支持两者的使用。 想获得更多有关在Microsoft Windows平台上安装支持PHP3的Apache服务器的知识以及更多有关Oracle数据库的知识,请查阅以下URL:www.csoft.net/~vsbabu/articles/oraphp.html。 4.1 连接 以上代码使用TNSNAME(在你的tnsnames.ora文件中指明)定义的Oracle数据库名称、用户名称和密码连接数据库。在成功连接的基础上,ora_logon函数返回一个非零的连接ID并储存在变量$conn中。 4.2 查询 假设与数据库已经连接就绪,下面我们就来实际的应用对数据库的查询。下面的代码演示了一个连接并查询的典型例子: 调用该函数 if(ora_errorcode($in_cur)) echo "Oracle code - ".ora_error($in_cur)."\n"; return; } /** 主程序 */ if (!($conn=ora_logon("user@TNSNAME","password"))) { echo "Connection to database failed\n"; exit; } echo "Connected as connection - $conn\n"; echo "Opening cursor ...\n"; $cursor=ora_open($conn); printoraerr($cursor); echo "Opened cursor - $cursor\n"; $qry="select user,sysdate from dual"; echo "Parsing the query $qry ...\n"; ora_parse($cursor,$qry,0); printoraerr($cursor); echo "Query parsed \n"; echo "Executing cursor ...\n"; ora_exec($cursor); printoraerr($cursor); echo "Executed cursor\n"; echo "Fetching cursor ...\n"; while(ora_fetch($cursor)) { $user=ora_getcolumn($cursor,0); printoraerr($cursor); $sysdate=ora_getcolumn($cursor,1); printoraerr($cursor); echo " row = $user, $sysdate \n"; } echo "Fetched all records\n"; echo "Closing cursor ...\n"; ora_close($cursor); echo "Closed cursor\n"; echo "Logging off from oracle... \n"; ora_logoff($conn); echo "Logged off from oracle \n"; ?> (译者注:以上代码段缺少注释,请读者参考PHP Manual的Oracle数据库函数部分) 4.3 显示结果 以下代码演示了怎样查询数据库并将结果输出: 调用该函数 // If it encountered an error, we exit immediately if(ora_errorcode($in_cur)) { echo "Oracle code - ".ora_error($in_cur)."n"; ora_logoff($conn); exit; } return; } function exequery($w_qry,$conn) { $cursor=ora_open($conn); printoraerr($cursor,$conn); ora_parse($cursor,$w_qry,0); printoraerr($cursor,$conn); ora_exec($cursor); printoraerr($cursor,$conn); $numrows=0; $w_numcols=ora_numcols($cursor); // 显示头部 echo " \n"; for ($i=0;$i<$w_numcols;$i++) { $align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT"; echo "\t".ora_columnname($cursor,$i)."\n"; } echo "\n"; while(ora_fetch($cursor)) { echo "\n"; for ($i=0;$i<$w_numcols;$i++) { $align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT"; if(ora_columntype($cursor,$i)=="LONG") echo "". ora_getcolumn($cursor,$i)."\n"; else echo "".ora_getcolumn($cursor,$i)."\n"; printoraerr($cursor,$conn); } $numrows++; echo "\n"; } if ($numrows==0) echo "Query returned no records \n"; else { echo "\n"; echo "Count\n"; echo "$numrows\n"; echo "\n"; } echo "\n"; ora_close($cursor); return; } // 主程序 if(!($conn=ora_logon("user@SID","password"))) { echo "Error: Cannot connect to database\n"; exit; } $qry="SELECT deptno \"Dept\" ,empno \"Emp\" ,empnm \"Name\" ,salary \"Salary\" FROM employee ORDER BY 1,2"; exequery($qry); ora_logoff($conn); ?> (译者注:以上代码段缺少注释,请读者参考PHP Manual的Oracle数据库函数部分) 4.4 基于HTTP的Oracle登录 将以下代码加在PHP页面代码之前以确认Oracle登录。注意你必须正确设定$ SID。 五、其它功能 5.1 生成图像 PHP可以操作处理图像。如果你已经安装了GD库,你甚至可以利用PHP生成图像。 (译者注:以上代码段缺少注释,请读者参考PHP Manual的图像处理函数部分) 这段代码在其他页面中通过以下标记调用,然后以上的那段button.php3代码取得text值并在另外取得的图像文件中加上该值--在以上的代码中该图像文件是images/button1.gif--最后输出到浏览器。假如你想在表单域中使用图像按钮,但是又不希望在每次按钮上的文字改变后不得不重新生成新的图像,就可以利用这样简单的方法动态生成图像文件。 5.2 Cookies PHP支持基于HTTP的cookies。在需要时你可以像使用一般变量一样方便的使用cookie。Cookies是浏览器保存于客户端的一些信息片段,由此你可以知道是否一台特定PC上的任何人都访问过你的站点,浏览者者在你的站点上的踪迹等等。使用cookies的典型例子就是对浏览者偏好的甄别。Cookies由函数setcookie()设定。与输出HTTP标头的函数header()一样,setcookie()必须在任何实际内容杯输出到浏览器之前调用。以下是一个简单例子: 函数中的最后一个参数声明了该cookie保存的时间 // 在这个例子中是1年 // time()函数返回自1970年1月1日以来的以秒数计的时间 SetCookie("VisitedBefore",time(), time()+(60*60*24*365)); } else { // 欢迎浏览者再次光临 echo "Hello there, welcome back"; // 读取cookie并判断 if ( (time() - $VisitedBefore) >= "(60*60*24*7)" ) echo "Why did you take a week to come back. You should be here more often!? "; } ?> 5.3 基于HTTP验证 基于HTTP验证当PHP以CGI模式运行时不能实现。我们可以使用函数header()发送HTTP标头强制验证,客户端浏览器则弹出供输入用户名和密码的对话框。这两个变量被储存在$PHP_AUTH_USER和$PHP_AUTH_PW中,你可以使用这两个变量验证合法并允许进入。以下的例子通过用户名称/密码对为tnc/nature的验证一名用户的登录: 事实上再实际引用中不大可能如上面使用代码段明显的用户名称/密码对,而是利用数据库或者加密的密码文件存取它们。 5.4 文件上传 你可以利用PHP实现文件的功能,注意客户端的浏览器应该是Netscape3以上或者IE3以上。以下就是该功能的简单演示: ( upload.html ): Upload Your File (You may notice a slight delay while we upload your file.) 下面是处理上传的文件: ( receiver.php3 ): 2000000 ) { $error_msg = "Sorry, your file is too large."; return; } $the_time = time (); // 你需要对以下目录有写权限 $upload_dir = "/local/uploads"; $local_file = "$upload_dir/$the_time"; if ( file_exists ( '$local_file' ) ) { $seq = 1; while ( file_exists ( "$upload_dir/$the_time$seq" ) ) { $seq++; } $local_file = "$upload_dir/$the_time$seq"; }; rename ( $uploadfile, $local_file ); display_page (); } function display_page () { // 这里是你的页面内容 } php3 Receiving Script 5.5 常用函数 我们简单来看看一些常用的函数。 数组 array - 生成数组 count - 数组元素个数 sort - 数组排序,另有其他几种排序函数可供使用 list - 列出数组元素 each - 返回下一个key/value对 current - 返回当前数组元素 next,prev - 传回当前数组元素前后指针 日期和时间 checkdate - 验证日期/时间格式 date - 生成日期/时间格式 time - 当前时间信息 strftime - 格式化日期/时间 目录、文件系统 chdir - 改变目录 dir - 目录类别 opendir, readdir, closedir - 开启、读取、关闭目录 fopen, fclose - 开启、关闭文件 fgets, fgetss - 逐行读取内容 file - 将整个文件读入一个数组变量中 正则表达式 ereg - 匹配正则表达式 eregi - 大小写非敏感匹配正则表达式 ereg_replace -匹配正则表达式并替换 eregi_replace -大小写非敏感匹配正则表达式并替换 split - 依规则切开字符串并以数组形势存储 字符串 AddSlashes - 加上斜杠后使用字符串 echo - 输出一个或多个字符串 join, implode - 将数组元素合并为字符串 htmlentities, htmlspecialchars - 将HTML特殊字符转换为HTML标记形式 split - 依规则切开字符串并以数组形势存储 5.6 扩展我们的范例主页 我们将使用以上提到的一些函数和思想为我们的范例主页添加更多的动态内容。我们可以在每个页面的顶部加上导航栏,同时使得当前页自动的不被链接显示;同时还可以添加一个用户验证表单以便上传音乐、图像等文件并自动更新页面。 导航栏 实际上就是在footer.inc文件中加上一段代码。假设你的web站点中所有后缀为.php3的文件都会出现在导航栏中,以下就是被存为include/navbar.inc的代码: read()) { // 忽略无文件情况 if ( !is_file($entry) ) continue; /* 将文件名与扩展名分开。由于.是正则表达式特殊字符,应该用\引出 */ list($filenm, $fileext) = split("\.",$entry, 2); // 忽略非.php3文件情况 if( $fileext != "php3" ) continue; /* 现在我们已经把.php3文件都选出,下面搜寻文件中的第一行(标题) 类似$title="something"; 并将以上标题内容分开,用作链接文字 */ $linknm = ""; $fp=fopen($entry,"r"); while($buffer=fgets($fp, 4096)) { $buffer = trim($buffer); // 我们已经把每个文件的标题放在文件的第一行以便搜索 // 但是当你改变变量名称时可能会带来大麻烦 if (ereg("title *= *\"", $buffer)) { /* 我们已经取得了标题内容并可以在此基础上 进行去除空格等处理。 必须以PHP代码方式处理,比如$title = "blah blah" */ eval($buffer); // 然后将链接文字显示为标题文字 $linknm = $title; break; } } fclose($fp); if ( $entry == basename($PHP_SELF) ) echo "$linknm"; else echo "$linknm"; echo " | "; } $d->close(); echo " \n"; ?> 照片收藏夹 我们将引用基于HTTP的验证、文件系统函数和文件上传功能维护放置图像文件的目录。 同时我们需要建立一个可以列出在该目录下所有照片的页面。 文件上传 2000000 ) { $error_msg = "Sorry, your file is too large."; return; } // Wherever you have write permission below... $upload_dir = "photos"; $local_file = "$upload_dir/$userfile_name"; if ( file_exists ( $local_file ) ) { $error_msg = "Sorry, a file with that name already exists"; return; }; // 你还可以由此检查文件名称/类型对以确定是何种文件:gif,jpg,mp3… rename($userfile, $local_file); echo "The file is uploaded\n"; echo "Go Back\n"; } $title = "Upload File"; include("include/header.inc"); if (empty($userfile) || $userfile=="none") { // 输出以下表单 ?> (You may notice a slight delay while we upload your file.) 照片图库 Here are some of our family photos. This PHP script can really be made better, by splitting into multiple pages. read()) { if (is_file("photos/$entry")) echo "\n"; } $d->close(); ?> 另外,你可以在文件上传的表单中加上一个输入元素去描述该上传的文件。这个元素将被存储在文件中,然后被以上的照片图库的那段代码所读出并显示出来。 六、网络资源 你可以通过web上的众多资源更多的了解PHP3。许多邮件列表和书籍对你都非常有用。 6.1 站点 PHP的爆炸性流行使得一夜之间出现了很多基于PHP的站点,其中不少站点有在线教程、范例代码、技巧和提示等内容。 国内 http://www.phpuser.com - PHP中文用户,也就是这里了 http://www.phpx.com - 中国PHP联盟 http://www.phpsite.net - PHP专门站 http://www.phpchina.com - PHP CHINA http://www.cpcw.com/netschool/homepage/cgi/ - 电脑报网页陶吧 国外 http://www.php.net/ - PHP官方站点 http://www.devshed.com/ - 极好的教程 http://px.sklar.com - 代码交换 http://www.phpbuilder.com/ - 教程、专栏和邮件列表档案 http://www.weberdev.com/ - 文章和代码 http://www.phpwizard.net/ - 提示与技巧 http://www.iometrics.com/php/phplist.php3/ - IOMetrics scripts的档案 http://www.e-gineer.com/phpkb/ - PHP知识库 6.2 邮件列表 你可以在PHP官方站点的"支持"栏目内登记获得以下的邮件列表。值得注意的是这些都是高流量流表,一般每天会有100份e-mail。 php3@lists.php.net - 主要的列表 php-dev@lists.php.net - 主要针对开发者 php-list@exp.com.cn - 本站的邮件列表,与论坛相通 6.3 引人注目的工程 一些基于PHP的工程已经发展得比较完善。其中一些更出色更引人注目的是: http:// phplib.netuse.de - PHPLib,一整套PHP函数库 http://www.phorum.org - Phorum是一个很完善的BBS系统 http://www.fishcartsql.org - FishCartSQL是一个电子商务解决方案 http://www.midgard-project.org - Midgard是一个网络应用开发平台 Generated by Bo-blog 2.0.2 sp2
中文名: Visual Basic 6大学教程 原名: Visual Basic 6 How to Program 作者: Harvey M. Deitel译者: 于伟 王刚 资源格式: PDF 版本: 扫描版 出版社: 电子工业出版社书号: 7505381377发行时间: 2003年01月 地区: 大陆 语言: 简体中文 简介: 内容简介    本书深入浅出地介绍了Visual Basic 6语言的基本概念和编程技术,包括对象、属性、方法、语句、函数、结构等基本问题,以及面向对象编程、数据库管理和网络编程等高级课题。全书共分为21章,系统地讨论了Visual Basic 6的编程技巧及应用,并且提供了大量实用和有趣的实例和习题。读者通过学习本书,可以在较短时间内掌握基本的和最新的程序设计技术。本书所配的“多媒体教室”光盘更是独具特色,通过交互式环境,使学习过程更加生动有趣。 目 录 第1章 计算机的概念 1 1.1 简介 1 1.2 什么是计算机 2 1.3 计算机的组成 2 1.4 操作系统的变革 3 1.5 个人计算、分布式计算与客户/服务器计算 3 1.6 机器语言、汇编语言和高级语言 4 1.7 Visual Basic的历史 5 1.8 其他高级语言 5 1.9 结构化编程 6 1.10 什么是Visual Basic 6 1.11 关于Visual Basic和本书的一般性提示 7 1.12 本书概览 7 小结 12 自测练习 14 自测练习答案 15 练习 15 第2章 集成开发环境 17 2.1 简介 17 2.2 集成开发环境综述 17 2.3 Project窗口 19 2.4 工具箱 20 2.5 Form Layout窗口 21 2.6 Properties窗口 21 2.7 菜单栏和工具栏 22 2.8 一个简单的程序:显示一行文本 22 小结 28 自测练习 31 自测练习答案 32 练习 33 第3章 Visual Basic 编程入门 35 3.1 简介 35 3.2 可视化编程和事件驱动编程 35 3.3 一个简单程序:在窗体上打印一行文本 36 3.4 另一个简单的程序:整数相加 40 3.5 内存的概念 44 3.6 算术运算 45 3.7 运算符的优先级 46 3.8 进行判断:比较运算符 48 小结 53 自测练习 55 自测练习答案 57 练习 59 第4章 控制结构(一) 62 4.1 简介 62 4.2 算法 62 4.3 伪代码 63 4.4 介绍控制结构 63 4.5 If/Then 选择结构 65 4.6 If/Then/Else选择结构 66 4.7 While/Wend循环结构 69 4.8 Do While/Loop循环结构 70 4.9 Do Until/Loop循环结构 70 4.10 构造算法:示例1(计数器控制循环) 71 4.11 自顶向下、分步求解的算法:示例2(标志控制循环) 73 4.12 自顶向下、分步求解的算法:示例3(嵌套控制结构) 78 小结 82 自测练习 84 自测练习答案 85 练习 87 第5章 控制结构(二) 92 5.1 简介 92 5.2 计数器控制循环的基础知识 92 5.3 For/Next 循环结构 93 5.4 使用For/Next循环结构的例子 96 5.5 Select Case多项选择结构 100 5.6 Do/Loop While循环结构 105 5.7 Do/Loop Until循环结构 106 5.8 Exit Do和Exit For语句 108 5.9 Boolean数据类型 109 5.10 常量变量 111 5.11 逻辑运算符 112 5.12 结构化编程总结 114 5.13 Visual Basic数据类型 119 小结 120 自测练习 120 自测练习答案 122 练习 123 第6章 子过程与函数过程 128 6.1 简介 128 6.2 窗体模块 128 6.3 Sub过程 129 6.4 Function 过程 134 6.5 按值调用与按引用调用 137 6.6 Exit Sub 和Exit Function 141 6.7 存储类 143 6.8 作用域规则 145 6.9 生成随机数 147 6.10 范例:一个机会游戏 153 6.11 递归与阶乘函数 157 6.12 另一个递归例子:Fibonacci序列 160 6.13 递归与迭代 162 6.14 可选参数 163 6.15 命名参数 164 6.16 Visual Baisc 数学函数 166 6.17 代码模块 167 小结 169 自测练习 171 自测练习答案 173 练习 174 第7章 数组 182 7.1 简介 182 7.2 数组 182 7.3 声明数组 183 7.4 使用数组的例子 184 7.5 给过程传递数组 190 7.6 数组排序 193 7.7 查找数组:线性查找和二分查找 196 7.8 多维数组 201 7.9 控件数组 203 7.10 动态数组 205 7.11 变长参数表:ParamArray 211 7.12 Array函数 212 小结 213 自测练习 214 自测练习答案 214 练习 215 第8章 字符串、日期和时间 224 8.1 简介 224 8.2 字符与字符串基础知识 224 8.3 String数据类型 225 8.4 利用 & 和 + 连接字符串 225 8.5 比较字符串 226 8.6 Like运算符 229 8.7 操作字符串中的单个字符:Mid$ 230 8.8 Left$、 Right$和InStr 232 8.9 使用InStr和 InStrRev函数在字符串里搜索子字符串 234 8.10 LTrim$、RTrim$和Trim$ 235 8.11 String$和 Space$ 236 8.12 使用Replace 函数替换子字符串 237 8.13 使用StrReverse函数反转字符串 237 8.14 转换字符串的大小写 238 8.15 转换函数 239 8.15.1 Asc 和Chr$ 239 8.15.2 IsNumeric、 Val 和Str$ 240 8.15.3 Hex$和Oct$ 241 8.15.4 类型转换函数 241 8.16 格式化字符串 243 8.16.1 Format$ 函数和命名数字化格式 243 8.16.2 Format$函数和用户定义数字化格式 245 8.16.3 FormatNumber函数 249 8.16.4 FormatCurrency函数 251 8.16.5 FormatPercent函数 253 8.17 处理日期和时间 254 8.18 格式化日期和时间 262 8.19 String数组 267 8.19.1 模拟洗牌与发牌 269 小结 272 自测练习 274 自测练习答案 274 练习 275 特殊小节:高级字符串操作练习 278 特殊小节:关于字符串操作的工程 280 第9章 图形 281 9.1 简介 281 9.2 坐标系 281 9.3 绘图方法 283 9.4 绘图属性 289 9.5 Line控件和Shape控件 292 9.6 颜色 294 9.7 图像 301 9.8 Printer对象 303 小结 304 自测练习 305 自测练习答案 305 练习 305 第10章 基本图形用户界面 307 10.1 简介 307 10.2 控件 307 10.3 TextBox控件 309 10.4 MaskEdit控件 311 10.5 ComboBox控件 314 10.6 ListBox控件 318 10.7 滚动条 322 10.8 Slider控件 324 10.9 菜单 325 10.10 弹出菜单 328 10.11 MsgBox函数 329 小结 333 自测练习 335 自测练习答案 335 练习 335 特殊小节:建立自己的计算机 337 第11章 高级图形用户界面 344 11.1 简介 344 11.2 多文档界面(MDI) 344 11.3 多窗体 352 11.4 模板窗体 356 11.5 RichTextBox 控件 360 11.6 UpDown 控件 364 11.7 ImageList 控件 367 11.8 ImageCombo 控件 370 11.9 FlatScrollBar 控件(专业版和企业版) 373 11.10 机器代码编译(专业版和企业版) 375 小结 376 自测题 378 自测练习答案 378 练习 379 第12章 鼠标和键盘 382 12.1 简介 382 12.2 改变鼠标指针的形状 382 12.3 鼠标事件 384 12.4 鼠标键 387 12.5 Shift、Ctrl和Alt键 389 12.6 拖放 391 12.7 键盘事件 396 12.8 KeyPreview属性 399 小结 400 自测练习 401 自测练习答案 402 练习 402 第13章 错误处理与调试 404 13.1 简介 404 13.2 何时使用错误处理 405 13.3 简单的错误处理例子:除数为0 405 13.4 嵌套的On Error语句 407 13.5 Err对象 409 13.6 Resume语句 411 13.7 错误处理程序和调用堆栈 414 13.8 重新引发错误 418 13.9 中断模式、Immediate窗口和Debug对象 420 13.10 防止程序错误的第一步 422 13.11 调试策略 422 13.12 调试器 424 13.12.1 Debug菜单和工具栏 424 13.12.2 Locals窗口 428 13.12.3 Watch窗口 429 13.12.4 Call Stack 窗口 430 13.13 调试器和错误处理程序 431 小结 431 自测练习 434 自测练习答案 434 练习 434 第14章 顺序文件处理 435 14.1 简介 435 14.2 DirListBox、FileListBox、DriveListBox控件 435 14.3 数据分层 438 14.4 文件系统对象 440 14.5 建立一个顺序存取文件 450 14.6 从顺序文件内读取数据 454 14.7 更新顺序存取文件 457 小结 458 自测练习 459 自测练习答案 460 练习 460 第15章 记录和随机存取文件 462 15.1 简介 462 15.2 随机存取文件 462 15.3 记录用户自定义类型 463 15.3.1 用户自定义类型的定义 463 15.3.2 操作用户自定义类型的成员 464 15.4 建立随机存取文件 465 15.5 向随机存取文件写入数据 469 15.6 从随机存取文件中按顺序读取数据 471 15.7 从随机存取文件中随机读取数据 474 15.8 范例:事务处理程序 477 小结 482 自测练习 483 自测练习答案 484 练习 484 第16章 面向对象编程 487 16.1 简介 487 16.2 数据抽象与信息隐藏 488 16.3 利用类实现一个时间抽象数据类型 489 16.4 类成员 493 16.5 合成:将对象作为其他类的实例变量 499 16.6 简介面向对象编程 503 16.7 带有部件的软件工程 506 16.8 类型域和 Select Case语句 506 16.9 多态性 507 16.10 Visual Basic接口 507 16.11 多态性举例 508 16.12 范例:IShape、CPoint、CCircle 509 16.13 范例:使用多态的支付系统 512 16.14 范例:图形的多态处理 518 16.15 利用接口继承和指派模拟实现继承 522 16.16 Object Browser 527 16.17 事件和类 528 小结 530 自测练习 532 自测练习答案 532 练习 532 第17章 ActiveX 536 17.1 简介 536 17.2 部件、COM和DCOM 536 17.3 ActiveX 控件类型 540 17.4 ActiveX 控件的生存期和事件 541 17.5 UserControl对象 542 17.6 创建包含构造控件的ActiveX控件 542 17.7 ActiveX 控件举例:Clock控件 549 17.8 ActiveX控件界面向导 554 17.9 属性页和属性页向导(Property Page Wizard) 563 17.10 ActiveX DLL 567 17.11 ActiveX EXE 570 17.12 Friend访问 575 小结 577 自测练习 579 自测练习答案 580 练习 580 第18章 数据库管理 582 18.1 简介 582 18.2 数据库系统 582 18.2.1 数据库系统的优点 582 18.2.2 数据独立 583 18.2.3 数据库语言 583 18.2.4 分布式数据库 583 18.3 关系数据库模型 583 18.3.1 关系数据库 584 18.4 介绍Microsoft ADO Data Control 6.0 585 和Microsoft DataGrid Control 6.0 18.5 关系数据库概览:Biblio.mdb数据库 588 18.6 结构化查询语言 590 18.6.1 基本的SELECT查询 591 18.6.2 WHERE从句 591 18.6.3 ORDER BY从句 592 18.6.4 使用INNER JOIN 从多个表中合并数据 593 18.6.5 Biblio.mdb中的全标题查询 593 18.7 再次讨论ADO数据控件和DataGrid控件 595 18.8 Hierarchical FlexGrid控件 597 18.9 DataList和DataCombo控件 598 18.9.1 范例:使用DataList和DataCombo控件 598 18.9.2 使用BoundColumn属性 602 18.10 使用Data Environment Designer 604 18.11 Recordset的其他程序化功能 607 18.12 事务处理 607 小结 608 自测练习 609 自测练习答案 610 练习 610 参考文献 611 第19章 网络、Internet和WWW 612 19.1 简介 612 19.2 Visual Basic Internet控件 613 19.3 WebBrowser控件 613 19.4 Internet Transfer控件 617 19.4.1 超文本传输协议(HTTP)连接 617 19.4.2 文件传输协议(FTP)连接 619 19.5 Internet Transfer控件的其他属性、方法和事件 621 19.6 Winsock控件 622 19.6.1 建立一个简单的服务器(使用TCP协议) 622 19.6.2 建立一个简单的客户(使用TCP协议) 624 19.7 范例:使用Winsock控件的客户/服务器交互 625 19.7.1 一个简单的基于TCP的服务器 625 19.7.2 一个简单的基于TCP的客户 627 19.7.3 客户/服务器交互的输出 630 19.8 Winsock控件和基于UDP的客户/服务器计算 631 19.8.1 一个简单的基于UDP的服务器 632 19.8.2 一个简单的基于UDP的客户 633 19.8.3 客户/服务器交互的输出 635 19.9 Winsock 控件的其他属性、方法和事件 636 19.10 Visual Basic Script(VBScript):综述 636 小结 645 自测练习 648 自测练习答案 648 练习 649 第20章 多媒体:图像、动画和音频 651 20.1 简介 651 20.2 Microsoft Agent 控件 652 20.3 多媒体MCI控件 658 20.3.1 多媒体MCI控件形成的CD播放器 660 20.3.2 一个多媒体MCI控件AVI文件播放器 661 20.4 Animation 控件 663 20.5 RealAudio ActiveX控件库 665 20.6 Marquee控件库 667 20.7 Microsoft ActiveMovie 控件 670 小结 672 自测练习 674 自测练习答案 674 练习 674 第21章 数据结构、集合和词典 676 21.1 简介 676 21.2 Variant类型 676 21.3 自引用类 677 21.4 动态内存分配 678 21.5 链表 679 21.6 堆栈 688 21.7 队列 691 21.8 树 693 21.9 Collection对象 699 21.10 Dictionary对象 701 小结 705 自测练习 706 自测练习答案 707 练习 707 附录A 运算符优先级表 713 附录B ANSI字符集 714 附录C Internet和WWW上的Visual Basic资源 715 附录D 数值系统 722

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧