自定义函数选合集(代码注释)

合集下载

VBA自定义函数集锦

VBA自定义函数集锦

VBA⾃定义函数集锦1、返回 Column 英⽂字:Function ColLetter(ColNumber As Integer) As StringOn Error GoTo ErrorhandlerColLetter = Left(Cells(1, ColNumber).Address(0, 0), 1 - (ColNumber > 26))Exit FunctionErrorhandler:MsgBox"Error encountered, please re-enter "End Function2、作⽤说明:相当于VLOOKUP吧,查询某⼀值第num次出现的值参数说明:Value1:查询引⽤的数值Range1:查询区域num:指定查询第⼏次出现Col:返回值,相对引⽤区域,相对引⽤列的右数第Col列Function MyFind(Value1, ByVal Range1 As Range, ByVal num As Integer, ByVal Col As Integer)If Value1 = ""Then Exit FunctionIf Range1.Columns.Count > 1Then Exit FunctionFor Each D In Range1If D.Value = Value1 Thenc = c + 1If c = num Thenv1 = D(1, Col)Exit ForEnd IfElseIf IsEmpty(D) ThenExit ForEnd IfNextIf v1 = ""Then v1 = "not"MyFind = v1End Function3、求个⼈所得税Grsds(bsc,mysala)该函数返回⼀个个⼈⼯资薪⾦所得应纳个⼈所得税税额。

语法:Grsds(bsc,mysala)其中:bsc,必选项,为起征点,包括税法规定的⼯资基数800元加上允许税前扣除的合理费⽤;mysala,必选项,为⼈个⼯资薪⾦所得。

PHP项目开发中最常用的自定义函数整理

PHP项目开发中最常用的自定义函数整理

PHP项目开发中最常用的自定义函数整理PHP项目开发中最常用的自定义函数整理PHP项目开发中最常用的自定义函数,php开发中,经常需要用到的。

其实很多成熟的cms系统中都有的。

以下是文章正文:<?php//alert提示function alert($msg){echo "<script>alert('$msg');</script>";}//把一些预定义的字符转换为 HTML 实体function d_htmlspecialchars($string) {if(is_array($string)) {foreach($string as $key => $val) {$string[$key] = d_htmlspecialchars($val);}} else {$string = str_replace('&', '&', $string);$string = str_replace('"', '"', $string);$string = str_replace(''', ''', $string);$string = str_replace('<', '<', $string);$string = str_replace('>', '>', $string);$string = preg_replace('/&(#\d;)/', '&\1', $string);}return $string;}//在预定义字符前加上反斜杠,包括单引号、双引号、反斜杠、NULL,以保护数据库安全function d_addslashes($string, $force = 0) {if(!$GLOBALS['magic_quotes_gpc'] || $force) {if(is_array($string)) {foreach($string as $key => $val) $string[$key] = d_addslashes($val, $force);}else $string = addslashes($string);}return $string;}//生成随机字符串,包含大写、小写字母、数字function randstr($length) {$hash = '';$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklm nopqrstuvwxyz';$max = strlen($chars) - 1;mt_srand((double)microtime() * 1000000);for($i = 0; $i < $length; $i++) {$hash .= $chars[mt_rand(0, $max)];}return $hash;}//转换时间戳为常用的日期格式function trans_time($timestamp){if($timestamp < 1) echo '无效的`Unix时间戳';else return date("Y-m-d H:i:s",$timestamp);}//获取IPfunction get_ip() {if ($_SERVER["HTTP_X_FORWARDED_FOR"])$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];else if ($_SERVER["HTTP_CLIENT_IP"])$ip = $_SERVER["HTTP_CLIENT_IP"];else if ($_SERVER["REMOTE_ADDR"])$ip = $_SERVER["REMOTE_ADDR"];else if (getenv("HTTP_X_FORWARDED_FOR"))$ip = getenv("HTTP_X_FORWARDED_FOR");else if (getenv("HTTP_CLIENT_IP"))$ip = getenv("HTTP_CLIENT_IP");else if (getenv("REMOTE_ADDR"))$ip = getenv("REMOTE_ADDR");else$ip = "Unknown";return $ip;}//计算时间差:默认返回类型为“分钟”//$old_time 只能是时间戳,$return_type 为 h 是小时,为 s 是秒function timelag($old_time,$return_type='m'){if($old_time < 1){echo '无效的Unix时间戳';}else{switch($return_type){case 'h':$type = 3600; break;case 'm':$type = 60; break;case 's':$type = 1; break;case '':$type = 60; break;}$dif = round( (time()-$old_time)/$type ) ;return $dif;}}//获取当前页面的URL地址function url_this(){$url = "http://".$_SERVER ["HTTP_HOST"].$_SERVER["REQUEST_URI"];$return_url = "<a href='$url'>$url</a>";return $return_url;}//跳转函数function url_redirect($url,$delay=''){if($delay == ''){echo "<script>window.location.href='$url'</script>";}else{echo "<meta http-equiv='refresh' content='$delay;URL=$url' />";}}} //end func>下载全文。

自定义函数python例子

自定义函数python例子

自定义函数python例子自定义函数是在开发中经常使用的一种工具。

它允许程序员将一段代码逻辑封装成一个可重用的模块,并给这个模块起一个名字,以供其他代码调用。

下面我将给出两个关于自定义函数的例子,希望能够帮助你更好地理解。

例子一:计算圆的面积和周长pythonimport mathdef circle_properties(radius):"""计算圆的面积和周长"""area = math.pi * radius 2perimeter = 2 * math.pi * radiusreturn area, perimeterradius = float(input("请输入圆的半径:"))area, perimeter = circle_properties(radius)print("圆的面积为:", area)print("圆的周长为:", perimeter)这个例子中,我们定义了一个名为`circle_properties`的函数,它接受一个圆的半径作为参数,然后根据公式计算出圆的面积和周长。

我们通过`return`语句将结果返回给调用方。

在主程序中,我们首先从用户输入中获取圆的半径,然后调用`circle_properties`函数计算圆的面积和周长,并将结果赋值给`area`和`perimeter`变量。

最后,我们使用`print`语句打印出结果。

例子二:判断一个数是否为素数pythondef is_prime(n):"""判断一个数是否为素数"""if n <= 1:return Falsefor i in range(2, int(n 0.5) + 1):if n % i == 0:return Falsereturn Truenum = int(input("请输入一个整数:"))if is_prime(num):print(num, "是素数")else:print(num, "不是素数")这个例子中,我们定义了一个名为`is_prime`的函数,它接受一个整数作为参数,并通过循环判断这个数是否能被2到√n之间的任意数整除,如果能,则返回`False`;如果不能,则返回`True`。

VBA自定义函数选合集(代码注释)

VBA自定义函数选合集(代码注释)

自定义函数选附代码注释By 蓝桥玄霜前言我们平时在工作表单元格的公式中常常使用函数,Excel自带的常用的函数多达300多个,功能强大,丰富多彩,博大精深。

在Excel内置函数和扩展函数中有十多个应用领域的函数,如数学与三角函数、统计函数、文本和数据函数、查找和引用函数、数据库函数、财务函数、日期和时间函数、信息函数、工程函数和宏表函数等等。

但是我们每个人还可能有各种各样的问题而不能直接应用这些函数得到解决,于是Excel也提供了VBA可以让我们自己编一个自定义函数来解决自己特定的需求。

以下挑选一些自定义函数,由简到繁,附以代码注释,供大家参考。

第1例折扣函数一、题目:要求编写一个当销售数量大于等于100时,售价打九折的计算折扣的自定义函数。

二、代码:Function Zekou(sul, jiag) As DoubleIf sul>=100 ThenZekou =sul*jiag*0.1ElseZekou =0EndIfZekou =Application.Round(Zekou,2)End Function三、代码详解1、Function Zekou(sul, jiag) As Double :自定义函数的开始语句。

自定义函数总是以Function开头,以End Function语句结束。

自定义函数的代码一定要放在标准模块里面。

Zekou是函数名,名字可取一个较短的描述信名称,这样容易记忆。

如sul数量和jiag 价格,这里用的是拼音字母。

函数后括号里的两个变量叫做函数的参数。

两个参数都没有显式声明数据类型,都是可变型数据类型variant。

AS Double 表示函数返回值的数据类型是双精度浮点型数据。

2、If sul>=100 Then 如果sul(数量)大于等于100,那么这是标准的If…Then…Else判断语句,意思是如果第一个条件成立,或者说满足了第一个条件,那么执行Then以后的语句;否则执行Else以后的语句。

Excel(ESteel)自定义函数源代码

Excel(ESteel)自定义函数源代码

Public Function DJ( 钢筋直径As Single, 最小搭接直径As Single, 搭接类别As String, 机械接头As String, 锚固As Single)Dim x As Integer, X1 As Integer, X2 As Integer, a As IntegerIf 钢筋直径> 0 Thena = 1Elsea = 0End IfIf 钢筋直径> 最小搭接直径ThenIf 机械接头= " 双面焊10D" ThenDJ = 钢筋直径+ 2End IfIf 机械接头= "单面焊5D" ThenDJ = 钢筋直径/ 2 + 2End IfIf 机械接头= "直螺纹" ThenDJ = 0End IfEnd IfIf 钢筋直径<= 最小搭接直径ThenIf 搭接类别= "腰筋G" ThenDJ = 钢筋直径* 1.5: x = 1End IfIf 搭接类别= "搭接100%" Or 搭接类别= "构造柱" ThenDJ = MAX( 锚固* 1.6, 30, 0, 0) * a: X1 = 1End IfIf 搭接类别= "Q" Or 搭接类别= "Z" Or 搭接类别= "搭接25%" ThenDJ = MAX( 锚固* 1.2, 30, 0, 0) * a: X2 = 1End IfIf x + X1 + X2 = 0 Or 搭接类别= "" ThenDJ = MAX( 锚固* 1.4, 30, 0, 0) * aEnd IfEnd IfEnd FunctionPublic Function MG( 抗震级别As Single, 钢筋级别As Single, 砼号C As Single, 钢筋直径As Single) Dim j As SingleDim k As SingleDim g As SingleIf 钢筋直径>= 28 ThenIf 钢筋级别>= 2 Then j = 1.1Elsej = 1End If Else j = 1 End IfIf 抗震级别 <= 2 Then k = 1.15 End IfIf 抗震级别 = 3 Then k = 1.05 End IfIf 抗震级别 = 4 Then k = 1 End IfIf 钢筋级别 = 1 And 抗震级别If 砼号 C <= 20 Then g = 45End IfIf 砼号 C = 25 Then g = 39 End IfIf 砼号 C = 30 Then g = 35 End IfIf 砼号 C = 35 Then g = 32 End IfIf 砼号 C = 40 Then g = 29 End IfIf 砼号 C = 45 Then g = 28 End IfIf 砼号 C = 50 Theng = 26 End IfIf 砼号 C = 55 Then g =25 End IfIf 砼号 C >= 60 Then g= 24 End IfEnd IfIf 钢筋级别 = 1 And 抗震级别 If 砼号 C <= 20 Theng = 41 End IfIf 砼号 C = 25 Then g = 36 End IfIf 砼号 C = 30 Then g = 32<= 2 Then= 3 ThenIf 砼号C = 35 Theng = 29End IfIf 砼号C = 40 Theng = 26End IfIf 砼号C = 45 Theng = 25End IfIf 砼号C = 50 Theng = 24End IfIf 砼号C = 55 Then g = 23 End IfIf 砼号C >= 60 Then g = 22 End If End IfIf 钢筋级别= 1 And 抗震级别If 砼号C= 4 Then<= 20 Then g = 39 End IfIf 砼号C = 25 Theng = 34End IfIf 砼号C = 30 Theng = 30End IfIf 砼号C = 35 Theng = 28End IfIf 砼号C = 40 Theng = 25End IfIf 砼号C = 45 ThenEnd IfIf 砼号C = 50 Theng = 23End IfIf 砼号C = 55 Then g = 22 End IfIf 砼号C >= 60 Theng = 21End IfEnd IfIf 钢筋级别= 2 And 抗震级别If 砼号C <= 20 Then g = 44 End If If 砼号C = 25 Theng = 38End IfIf 砼号C = 30 Theng = 33End IfIf 砼号C = 35 Theng = 31End IfIf 砼号C = 40 Then g = 29End IfIf 砼号C = 45 Then g = 26End IfIf 砼号C = 50 Theng = 25End IfIf 砼号C = 55 Then g =24 End IfIf 砼号C >= 60 Theng = 24End IfEnd IfIf 钢筋级别= 2 And 抗震级别If 砼号C <= 20 Theng = 40End IfIf 砼号C = 25 Theng = 35End IfIf 砼号C = 30 Theng = 31End IfIf 砼号C = 35 Then <= 2 Then = 3 ThenEnd IfIf 砼号C = 40 Theng = 26End IfIf 砼号C = 45 Theng = 24End IfIf 砼号C = 50 Theng = 23End IfIf 砼号C = 55 Theng = 22End IfIf 砼号C >= 60 Theng = 22End IfEnd IfIf 钢筋级别= 2 And 抗震级别= 4 Then If 砼号C <= 20 Theng = 38End IfIf 砼号C = 25 Theng = 33End IfIf 砼号C = 30 Theng = 29End IfIf 砼号C = 35 Theng = 27End IfIf 砼号C = 40 Theng = 25End IfIf 砼号C = 45 Theng = 23If 砼号C = 50 Theng = 22End IfIf 砼号C = 55 Theng = 21End IfIf 砼号C >= 60 Theng = 21End IfEnd IfIf 钢筋级别= 3 And 抗震级别If 砼号C <= 20 Theng = 40End IfIf 砼号C = 25 Theng = 40End IfIf 砼号C = 30 Theng = 35End IfIf 砼号C = 35 Theng = 32End IfIf 砼号C = 40 Theng = 29End IfIf 砼号C = 45 Theng = 28End IfIf 砼号C = 50 Theng = 27End IfIf 砼号C = 55 Theng = 26End IfIf 砼号C >= 60 Theng = 25End IfEnd IfIf 钢筋级别= 3 And 抗震级别If 砼号C <= 20 Theng = 42End IfIf 砼号C = 25 Theng = 42End IfIf 砼号C = 30 Theng = 37End IfIf 砼号C = 35 Theng = 34 = 4 Then 3 ThenIf 砼号C = 40 Theng = 30End IfIf 砼号C = 45 Theng = 29End IfIf 砼号C = 50 Theng = 28End IfIf 砼号C = 55 Theng = 27End IfIf 砼号C >= 60 Theng = 26End IfEnd IfIf 钢筋级别= 3 And 抗震级别<= 2 Then If 砼号C <= 20 Theng = 46End IfIf 砼号C = 25 Theng = 46End IfIf 砼号C = 30 Theng = 40End IfIf 砼号C = 35 Theng = 37End IfIf 砼号C = 40 Theng = 33End IfIf 砼号C = 45 Theng = 32End IfIf 砼号C = 50 Theng = 31End IfIf 砼号C = 55 Then g = 30End IfIf 砼号C >= 60 Then g = 29End IfEnd IfIf 钢筋级别>= 4 And 抗震级别If 砼号C <= 20 Theng = 55End IfIf 砼号C = 25 Theng = 55End IfIf 砼号C = 30 Theng = 49End IfIf 砼号C = 35 Theng = 45End IfIf 砼号C = 40 Then g = 41End IfIf 砼号C = 45 Theng = 39End IfIf 砼号C = 50 Theng = 37End IfIf 砼号C = 55 Then g = 36End IfIf 砼号C >= 60 Then g = 35End IfEnd IfIf 钢筋级别>= 4 And 抗震级别If 砼号C <= 20 Theng = 50End IfIf 砼号C = 25 Then<= 2 Then = 3 Then1H 00HA O4一4一 PU山ecu6uelLLgf。

数据库 自定义函数

数据库 自定义函数

数据库自定义函数
数据库自定义函数是指在数据库中用户可以自定义的函数。

这些函数可以根据用户的需求进行编写,用于实现特定的功能或计算。

数据库自定义函数可以接受输入参数,并返回计算结果。

在大多数数据库管理系统中,用户可以使用特定的语法来创建自定义函数。

例如,在MySQL中,可以使用CREATE FUNCTION语句来创建自定义函数。

下面是一个示例:
```
CREATE FUNCTION myFunctionName (param1 datatype1, param2 datatype2, ...)
RETURNS returnType
BEGIN
-- 函数体代码
-- 可以使用SQL语句、条件判断、循环等进行计算和操作
RETURN returnValue;
END;
```
在上面的示例中,myFunctionName是自定义函数的名称,param1、param2等是函数的输入参数,datatype1、datatype2等是参数的数据类型,returnType是函数的返回类型,returnValue是函数的返回值。

数据库自定义函数可以用于各种不同的用途,例如计算、字符串处理、日期处理等。

使用自定义函数可以提高数据库的灵活性和可扩展性,让用户能够根据自己的需求进行定制化。

自定义函数集

自定义函数集

自定义函数集自定义函数集(转)外部可被调用的文件分成2种:dll和ex4dll文件一般是用其他编程工具编写的标准动态链接函数库,一般用于与Windows打交道的地方,我们用不到。

ex4文件我们习惯称为'库文件',在MT4里面是保存在expert/ libraries目录下。

如何创建库文件?在编缉器里“新建”,选择Library即可,这个文件头部会有表示本文件为库文件的语句#property library下面的内容就可以按照自己的想法定义自己的单个或者多个函数。

完成后,Compile就在libraries目录生成了ex4库文件。

如何调用库文件?1。

在指标文件的头部加入引用语句#import "库文件名.ex4"2。

引用语句后紧跟库文件里面的函数说明例如“double MyC(int X,int Y);”3。

如上引用和函数说明后,就可以在指标里面直接使用自定义函数MyC了。

只能引用自定义函数,不能引用函数中的变量。

double iCustom( string symbol, int timeframe, string name, ... , int mode, int shift) 计算自定义指标的值:: 输入参数symbol - 通货标识timeframe - 时间线name - 自定义指标名称... - 自定义指标参数mode - 来源模式,参见指标线分类枚举shift - 位移数double val=iCustom(NULL, 0, "SampleInd",13,1,0);int mode (0~7)对应自定义指标中不同线或者箭头数值看MT4里面关于这个函数的说明如下:double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift)Calculates the specified custom indicator and returns its value. The custom indicator must be compiled (*.EX4 file) and be in the terminal_directory\experts\indicators directory.放置目录就是指标目录:\experts\indicators[转]MT4自定义函数库(转)MT4自定义函数库使用说明1、MT4自定义函数库.ex4为函数库文件。

自定义函数c语言例子

自定义函数c语言例子

自定义函数c语言例子C语言是一种非常强大的编程语言,它可以通过自定义函数来实现更加复杂的功能。

自定义函数是指程序员自己编写的函数,可以根据自己的需求来定义函数的名称、参数和返回值。

下面我将通过一个例子来介绍如何在C语言中编写自定义函数。

假设我们需要编写一个程序,计算两个数的和、差、积和商。

我们可以通过自定义函数来实现这个功能。

首先,我们需要定义一个函数,用于计算两个数的和。

代码如下:```int add(int a, int b){return a + b;}```在上面的代码中,我们定义了一个名为add的函数,它有两个参数a和b,返回值为a和b的和。

接下来,我们可以定义三个类似的函数,分别用于计算两个数的差、积和商。

代码如下:```int subtract(int a, int b){return a - b;}int multiply(int a, int b){return a * b;}int divide(int a, int b){return a / b;}```在上面的代码中,我们分别定义了subtract、multiply和divide三个函数,它们分别用于计算两个数的差、积和商。

接下来,我们可以在主函数中调用这些函数,实现计算两个数的和、差、积和商的功能。

代码如下:```#include <stdio.h>int add(int a, int b);int subtract(int a, int b);int multiply(int a, int b);int divide(int a, int b);int main(){int a, b;printf("请输入两个整数:");scanf("%d%d", &a, &b);printf("%d + %d = %d\n", a, b, add(a, b));printf("%d - %d = %d\n", a, b, subtract(a, b));printf("%d * %d = %d\n", a, b, multiply(a, b));printf("%d / %d = %d\n", a, b, divide(a, b));return 0;}```在上面的代码中,我们首先包含了四个自定义函数的声明,然后在主函数中调用这些函数,实现计算两个数的和、差、积和商的功能。

excel中161个VBA_自定义函数(超级实用)

excel中161个VBA_自定义函数(超级实用)

VBA自定义函数大全目录'1.函数作用:返回 Column 英文字 (9)'2.函数作用:查询某一值第num次出现的值 (9)'3.函数作用:返回当个人工资薪金所得为2000元(起征点为850元)时的应纳个人所得税税额 (10)'4.函数作用:从形如"123545ABCDE"的字符串中取出数字 (11)'5.函数作用:从形如"ABCD12455EDF"的字符串中取出数字 (11)'6.函数作用:按SplitType取得RangeName串值中的起始位置12 '7.函数作用:将金额数字转成中文大写 (13)'8.函数作用:计算某种税金 (18)'9.函数作用:人民币大、小写转换 (19)'10.函数作用:查汉字区位码 (20)'11.函数作用:把公元年转为农历 (21)'12.函数作用:返回指定列数的列标 (42)'13.函数作用:用指定字符替换某字符 (43)'14.函数作用:从右边开始查找指定字符在字符串中的位置 (43)'15.函数作用:从右边开始查找指定字符在字符串中的位置 (44)'16.函数作用:计算工龄 (44)'17.函数作用:计算日期差,除去星期六、星期日 (45)'18.函数作用:将英文字反转的自定函数 (46)'19.函数作用:计算个人所得税 (46)'20.函数作用:一个能计算是否有重复单元的函数 (47)'21.数字金额转中文大写 (48)'22.函数作用:将数字转成英文 (49)'23.函数作用:人民币大小写转换 (52)'24.函数作用:获取区域颜色值 (53)'25.函数作用:获取活动工作表名 (53)'26.函数作用:获取最后一行行数 (54)'27.函数作用:判断是否连接在线 (54)'28.函数作用:币种转换 (54)'29.函数作用:检验工作表是否有可打印内容 (55)'30.函数作用:查找一字符串(withinstr)在另一字符串中(findstr1)中某一次(startnum)出现时的位置,返回零表示没找到。

asp常用自定义函数大全(网站开发必备)

asp常用自定义函数大全(网站开发必备)

函数列表:'1:建立数据库的连接ConnOpen(DataBaseConnectStr,DBType,Conn_object)'2:断开数据库的连接ConnClose(Conn_object)'3:防止SQL注入SafeRequest(paraName,paraType)'4:格式化日期DateFormat(dateStr,dateType)'5:显示错误提示ShowErr(errStr)'6:查询字符串中特定数据SelectStr(contentStr,patternStr,patternNum)'7:过滤指定字符Leach(contentStr,badWords)'8:远程文件内容抓取Seize(urlStr)'9:数据流编码处理BytesToBstr(body,cset)'10:编码cookies codeCookie(contentStr)'11:解码cookies DecodeCookie(contentStr)'12:检验数据提交来源是否合法ChkPost()'13:个性化加密MyEncrypt(StrPassword)'14:禁止浏览器缓存本页NoBuffer()'15:网页格式化输入文本HTMLEncode(fString)'16:从头部截取字符串的指定长度(按字符数算) GotTopic(Str,StrLen)'17:检测验证码CheckRadomPass(RadomPass)'18:生成验证码GetCode()'19:获取客户端操作系统版本GetSystem()'20:数据库事务处理ConnManage(Conn_object)'21:快速排序(递归)QuickSort(arr,Low,High)'22:将数组的元素以特定字符串连起来arr_join(arr,character)'23:返回字符串以某分割符分割的数目count_character(str,character)'24:截取含有分割符的字符串中指定数目的字符串inter_str_by_character_num(str,character,start,num)'25:利用Stream下载文件downloadFile(strFile)'26:返回信息send_back(ResultWords)'27:获取错误信息get_err()'28:与SafeRequest相反SafeResponse(content)'29:保存远程图片SaveRemoteFile(LocalFileName,RemoteFileUrl)'30: ...dim language_arr(10)language_arr(0) = "数据库连接的参数设置错误!"language_arr(1) = "数据库连接的类型参数设置错误!"language_arr(2) = "数据库连接失败!"language_arr(3) = "非法的参数值!"language_arr(4) = "参数值不是有效的日期格式!"language_arr(5) = "操作失败!"language_arr(6) = "栏目有重名!"language_arr(7) = "栏目名称为空!"language_arr(8) = "栏目文件夹创建失败!"language_arr(9) = "您没有此权限!"'============================================================================================================================'函数ID:1'函数作用:建立数据库的连接'作者名称:茫仔xiamangmang@ 博客:'建立时间:2006-2-15 10:28'修改时间:'传人参数:' connectStr:数据库连接字符串' connectType:数据库类别-数字型,0为Access,1为MS SQL'返回值:'=================================================================== =========================================================sub ConnOpen(DataBaseConnectStr,DBType,Conn_object)Set Conn_object = Server.Createobject("adodb.connection")if DataBaseConnectStr = "" then call ShowErr(language_arr(0))if DBType = 0 thenConn_object.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DataBaseConnectStrelseif DBType = 1 thenConn_object.Open "Provider=SQLOLEDB.1;" & DataBaseConnectStrelsecall ShowErr(language_arr(1))end iferr.clearend sub'=================================================================== ========================================================='函数ID:2'函数作用:断开数据库的连接'作者名称:茫仔xiamangmang@ 博客:'建立时间:2006-2-16 15:10'修改时间:'传人参数:'返回值:'=================================================================== =========================================================Sub ConnClose(Conn_object)Conn_object.closeset Conn_object = nothingEnd sub'=================================================================== ========================================================='函数ID:3'函数作用:防止SQL注入'作者名称:/infoview/Article_2906.html'建立时间:2006-2-16 15:32'修改时间:'传人参数:' paraName:参数名称-字符型' paraType:参数类型-数字型(1表示以上参数是数字,0表示以上参数为字符)'返回值:' 过滤后的字符串'=================================================================== =========================================================Function SafeRequest(paraName,paraType)dim paraValueparaValue = Request(paraName)select case paraTypecase 0paraValue = replace(paraValue,"'","[system:34]")paraValue = replace(paraValue,"=","[system:61]")case 1if not IsNumeric(paraValue) then call ShowErr(language_arr(3))case -1if not IsNumeric(paraValue) then call ShowErr(language_arr(3))if paraValue = "" then paraValue = 0case elseif len(paraValue) > paraType then call ShowErr(language_arr(3))paraValue = replace(paraValue,"'","[system:34]")paraValue = replace(paraValue,"=","[system:61]")end selectSafeRequest = paraValueEnd function'=================================================================== ========================================================='函数ID:4'函数作用:格式化日期'作者名称:茫仔xiamangmang@ 博客:'建立时间:2006-2-16 15:45'修改时间:'传人参数:' dateStr:日期字符串' paraType:日期类型-数字型'返回值:' 格式化后的日期'=================================================================== =========================================================Function DateFormat(dateStr,dateType)Dim dateStringif IsDate(dateStr) = False thencall ShowErr(language_arr(4))end ifSelect Case dateTypeCase "1"dateString = Year(dateStr)&"-"&Month(dateStr)&"-"&Day(dateStr)Case "2"dateString = Year(dateStr)&"."&Month(dateStr)&"."&Day(dateStr)Case "3"dateString = Year(dateStr)&"/"&Month(dateStr)&"/"&Day(dateStr)Case "4"dateString = Month(dateStr)&"/"&Day(dateStr)&"/"&Year(dateStr)Case "5"dateString = Day(dateStr)&"/"&Month(dateStr)&"/"&Year(dateStr)Case "6"dateString = Month(dateStr)&"-"&Day(dateStr)&"-"&Year(dateStr)Case "7"dateString = Month(dateStr)&"."&Day(dateStr)&"."&Year(dateStr)Case "8"dateString = Month(dateStr)&"-"&Day(dateStr)Case "9"dateString = Month(dateStr)&"/"&Day(dateStr)Case "10"dateString = Month(dateStr)&"."&Day(dateStr)Case "11"dateString = Month(dateStr)&language_arr(6)&Day(dateStr)&language_arr(7)Case "12"dateString = Day(dateStr)&language_arr(7)&Hour(dateStr)&language_arr(8)case "13"dateString = Day(dateStr)&language_arr(7)&Hour(dateStr)&language_arr(8)Case "14"dateString = Hour(dateStr)&language_arr(8)&Minute(dateStr)&language_arr(9)Case "15"dateString = Hour(dateStr)&":"&Minute(dateStr)Case "16"dateString = Year(dateStr)&language_arr(5)&Month(dateStr)&language_arr(6)&Day(dateStr)&languag e_arr(7)Case ElsedateString = dateStrEnd SelectDateFormat = dateStringEnd Function'=================================================================== ========================================================='函数ID:5'函数作用:显示错误提示'作者名称:茫仔xiamangmang@ 博客:'建立时间:2006-2-16 16:29'修改时间:'传人参数:' errStr:错误提示-字符型'返回值:返回提交页面'=================================================================== =========================================================sub ShowErr(errStr)Response.Write("<script>alert("""&errStr&""");location.href=""javascript:history.back()"";</ script>")Response.EndEnd sub'=================================================================== ========================================================='函数ID:6'函数作用:查询字符串中特定数据'作者名称:茫仔xiamangmang@ 博客:'建立时间:2006-2-16 16:40'修改时间:'传人参数:' contentStr:查询字符串' patternStr:匹配式字符串' patternNum:查询定位-数字型'返回值:' 找不到返回false' patternNum为-1返回所有匹配字符串并以[10]隔开' 否则返回指定位置的字符串'=================================================================== =========================================================Function SelectStr(contentStr,patternStr,patternNum)dim objRegExp,matches,matcheif contentStr = "" thencall ShowErr(language_arr(12))end ifSet objRegExp=new RegExp '建立正则表达式objRegExp.pattern = patternStr '设置模式objRegExp.IgnoreCase =False '设置是否区分字符大小写objRegExp.Global=true '设置全局可用性objRegExp.pattern = patternStr '匹配式if objRegExp.test(contentStr) = false then '全局匹配SelectStr = falseelseSet matches = objRegExp.Execute(contentStr) '执行搜索if patternNum = -1 thenfor each matche in matchesSelectStr = SelectStr &"[10]"& matche.valuenextelseSelectStr = matches.Item(patternNum).valueend ifend ifSet objRegExp=NothingEnd Function'=================================================================== ========================================================='函数ID:7'函数作用:过滤指定字符'作者名称:茫仔xiamangmang@ 博客:'建立时间:2006-2-16 16:59'修改时间:'传人参数:' contentStr:源字符串' badWords:要过滤的字符串,若数目大于1则用英文状态的"^"隔开'返回值:' 返回过滤后的字符串'=================================================================== =========================================================Function Leach(contentStr,badWords)dim badWordsArr,ibadWordsArr = Split(badWords,"^")for i = 0 to UBound(badWordsArr)contentStr = replace(contentStr,badWordsArr(i),"")nextleach = contentStrend Function'=================================================================== ========================================================='函数ID:8'函数作用:远程文件内容抓取'作者名称:茫仔xiamangmang@ 博客:'建立时间:2006-2-16 17:24'修改时间:'传人参数:' urlStr:远程文件地址'返回值:' 返回远程文件内容'=================================================================== =========================================================function Seize(urlStr)dim connectif urlStr = "" thencall ShowErr(language_arr(13))elseSet connect = CreateObject("Microsoft.XMLHTTP") '建立XMLHTTP对象connect.open "GET",urlStr,false '设置参数,通信方式为get,请求为同步,后面还有两个可选属性:userID,password用于用户验证connect.send() '数据发送,Send方法的参数类型可以是字符串、DOM树或任意数据流Seize = BytesToBStr(connect.responseBody,"GB2312") '返回信息,编码为中文set connect = nothingend ifend function'=================================================================== ========================================================='函数ID:9'函数作用:数据流编码处理'作者名称:茫仔xiamangmang@ 博客:'建立时间:2006-2-16 17:30'修改时间:'传人参数:' body:数据内容' cset:编码格式'返回值:' 编码处理后的信息'=================================================================== =========================================================Function BytesT oBstr(body,cset)dim objstreamset objstream = Server.CreateObject("adodb.stream")objstream.Type = 1 '以二进制模式打开objstream.Mode =3objstream.Openobjstream.Write bodyobjstream.Position = 0objstream.Type = 2objstream.Charset = csetBytesToBstr = objstream.ReadT extobjstream.Closeset objstream = nothingEnd Function'=================================================================== ========================================================='函数ID:10'函数作用:编码cookies'作者名称:茫仔xiamangmang@ 博客:'建立时间:2006-2-16 17:36'修改时间:'传人参数:' contentStr:数据内容'返回值:' 编码处理后的信息,字符以"a"隔开'=================================================================== =========================================================Function codeCookie(contentStr)Dim i,returnStrFor i = Len(contentStr) to 1 Step -1returnStr = returnStr & Ascw(Mid(contentStr,i,1))If (i <> 1) Then returnStr = returnStr & "a"NextCodeCookie = returnStrEnd Function'=================================================================== ========================================================='函数ID:11'函数作用:解码cookies'作者名称:茫仔xiamangmang@ 博客:'建立时间:2006-2-17 16:58'修改时间:'传人参数:' contentStr:数据内容'返回值:' 解码处理后的信息'=================================================================== =========================================================Function DecodeCookie(contentStr)Dim iDim StrArr,StrRtnStrArr = Split(contentStr,"a")For i = 0 to UBound(StrArr)If isNumeric(StrArr(i)) = True ThenStrRtn = Chrw(StrArr(i)) & StrRtnElseStrRtn = contentStrExit FunctionEnd IfNextDecodeCookie = StrRtnEnd Function'=================================================================== ========================================================='函数ID:12'函数作用:检验数据提交来源是否合法'作者名称:茫仔xiamangmang@ 博客:'建立时间:2006-2-18 18:55'修改时间:'传人参数:''返回值:' Boolean'=================================================================== =========================================================Function ChkPost()Dim server_v1,server_v2Chkpost=Falseserver_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))If Mid(server_v1,8,len(server_v2))=server_v2 Then Chkpost=TrueEnd Function'=================================================================== =========================================================。

php自定义函数大全

php自定义函数大全

php⾃定义函数⼤全1. call_user_func和call_user_func_array以上两个函数以不同的参数形式调⽤函数。

见如下⽰例:<?phpclass demo{public static function action1(){echo "This is demo::action1.<br>";}public function action2(){echo "This is demo::action2.<br>";}public function actionWithArgs($arg1, $arg2){echo 'This is demo::actionWithArgs with ($arg1 = ' . $arg1 . ' and $arg2 = ' . $arg2 . ").<br>";}}$demo = new demo();call_user_func(array("demo", "action1"));call_user_func(array($demo, "action2"));call_user_func(array($demo, "actionWithArgs"), "hello", "world");call_user_func_array(array($demo, "actionWithArgs"), array("hello2", "world2"));运⾏结果如下:This is demo::action1.This is demo::action2.This is demo::actionWithArgs with ($arg1 = hello and $arg2 = world).This is demo::actionWithArgs with ($arg1 = hello2 and $arg2 = world2).2. func_get_args、func_num_args和func_get_args这三个函数的共同特征是都很⾃定义函数参数相关,⽽且均只能在函数内使⽤,⽐较适⽤于可变参数的⾃定义函数。

python自定义函数实例

python自定义函数实例

python自定义函数实例Python是一门高级编程语言,它被广泛应用于Web开发、人工智能、数据科学等领域。

Python的灵活性和易读性赢得了许多开发者的青睐。

在Python中,函数是代码重用的重要方式之一,通过编写自定义函数,我们可以方便地将一些操作封装起来,以供重复使用。

自定义函数是Python中用def关键字定义的,其语法形式如下:```pythondef function_name(parameter1, parameter2, ..., parameterN): # 函数体代码return [expression]```其中,function_name是函数的名称,参数parameter1, parameter2, ..., parameterN 是函数的输入参数,函数体代码是实现函数功能的语句集合,而return语句则是用于指定函数的返回值。

通常情况下,函数体中的语句会根据参数计算某个值并将其返回,该值会成为函数的输出结果。

下面是一个简单例子:```pythondef add(a, b):return a + bprint("5 + 7 = ", add(5, 7))```运行结果:```5 + 7 = 12```在这个例子中,我们定义了一个名为add的函数,它接收两个参数a和b,然后将它们相加并返回结果。

我们使用add函数来计算5+7的结果,最终产生输出"5 + 7 = 12"。

这个例子展示了如何在Python中创建一个简单的自定义函数。

自定义函数具有良好的封装性和可重复利用性,可以帮助我们提高代码的复用率和可维护性。

在实际编程中,我们可以根据需要编写各种自定义函数,以方便地完成复杂的编程任务。

同时,Python还内置了许多常用的函数和模块,可以供我们直接调用和使用,方便高效。

VBA自定义函数大全

VBA自定义函数大全

VBA自定义函数大全目录001.返回 Column 英文字002.查询某一值第 num 次出现的值003.返回当个人工资薪金所得为2000 元(起征点为850元)时的应纳个人所得税税额004.从形如“123545ABCDE”的字符串中取出数字005.从形如“ABCD12455EDF”的字符串中取出数字006.按 SplitType 取得 RangeName 串值中的起始位置007.将金额数字转成中文大写008.计算某种税金009.人民币大、小写转换010.查汉字区位码011.把公元年转为农历012.返回指定列数的列标013.用指定字符替换某字符014.从右边开始查找指定字符在字符串中的位置015.从右边开始查找指定字符在字符串中的位置016.计算工龄017.计算日期差,除去星期六、星期日018.将英文字反转的自定函数019.计算个人所得税020.一个能计算是否有重复单元的函数021.数字金额转中文大写022.将数字转成英文023.人民币大小写转换024.获取区域颜色值025.获取活动工作表名026.获取最后一行行数027.判断是否连接在线028.币种转换029.检验工作表是否有可打印内容030.查找一字符串(withinstr)在另一字符串中(findstr1)中某一次(startnum)出现时的位置,返回零表示没找到031.增加文件路径最后的“\”符号032.计算所得税033.从工作表第一行的标题文字以数字形式返回所在号034.在多个工作表中查找一个范围内符合某个指定条件的项目对应指定范围加总求和035.返回 Column 英文字036.查找指定列名的列数037.文字格式的时间(分:秒)转化为数字格式(秒)038.将(hh:mm:ss)格式的时分秒数转换成秒数039.金额中文大写转数字040.把角度转为度秒分、弧度等显示041.身份证号码侦测042.显示公式043.方便财务人员理帐查找044.数值转换为字符地址045.字符地址转换为数值046.等待时间(以秒计算)047.得到字符串实际的长度(以单字节记)048.18 位身份证最后一位有效性验证049.计算符合 maturity condition 的拆解金额050.对多个用同一分隔符分隔的待查找元素,逐一在表区域首列内搜索,将返回选定单元格的值相加051.根据个人所得税(工资)反算工资数052.判断表是否存在053.角度转弧054.比较相同的字符串055.对选定的数组进行排序056.取得指定月份天数057.排序工作表活页薄058.统计数组中非重复数据个数059.摘取子字符串060.计算 20000 余个汉字的笔画061.删除当前工作表中的全部超连接062.取得相近数据063.提取定串中汉字064.搜索重复数据(选定范围)065.字符型转数字型066.小写人民币转大写人民币067.取得指定月份人星期天个数068.侦测档案是否包含宏069.获取循环参照单元格070.创建桌面快捷方式071.自动建立多级目录072.统计经筛选后符合条件的记录条数073.复制单元格列高与栏宽074.取消隐藏工作表(包括 vba Project 工程保护的)075.删除单元格自定义名称076.从文件路径中取得文件名077.取得一个文件的扩展名078.取得一个文件的路径079.十进制转二进制080.检查一个数组是否为空081.字母栏名转数字栏名082.数字栏名转文字栏名083.判断一件活页夹中是否还有子目录084.判断一个文件是否在使用中085.列出档案详细摘要信息086.获取菜单 ID 编号及名称列表087.状态列动态显示文字088.取得一个文件的路径2089.取得一个文件的路径3090.取得 Activecell 的栏名091.取得单元格中指定字符前的字符092.前单元格指定字符前的字符颜色改成红色093.根据数字返回对应的字母列号094.取工作表名字095.取消所有隐藏的宏表096.导出 VBA Project 代码097.导入 VBA Project 代码098.取得汉字拼音的第一个字母099.获取两栏中相同的数据100.选取当前工作表中公式出错的单元格,关返回出错个数101.将工作表中最后一列作为页脚打印在每一面页尾102.获取 vbproject 引用项目103.移除 Excel 工作表中的外部数据连接104.将选择定单元格作成镜像图片105.反选择单元格中的数106.在 Excel 中加入一个量度尺(以厘米为单位)107.在 Excel 中加入一个量度尺(以寸为单位)108.取得一个短文件名的长文件名109.取得临时文件名110.等用 Shell 调用的程序执行完成后再执行其它程序111.将 Mouse 显示成动画112.限制 Mouse 移动范围113.取得当前激活窗品句柄及标题114.取得屏幕分辨率115.自动建立多级目录116.将文件长度置零117.读取 WIN9X / Me 共享文件夹密码118.取得预设的打印机及设置预设的打印机119.获得当前操作系统的打印机个数及检测打印是否存在120.枚举打印机名称清单121.读取网络服务器当前时间122.下载文件到指定目录123.自动映射网络驱动器124.自动断开网络驱动器125.连接选定单元格中的内容126.获取一个单元格中有指定字体颜色部份数据127.对指定文件加 XLS 加密128.选择指定范围内使用了填充颜色的单元格129.在特定的区域内查找文本,返回值是包含查找文本的单元格130.返回特定区域中最大值的地址131.删除表格中使用范围内的所有空白单元格132.返回数组中有多少个指定的字符串133.返回当前工作表中引用了指定的单元的地址134.获取 Excel 中字型列表135.获取一个字符串中有多少个数字字符136.在 Excel 中对多列进行填充137.对选定的范围进行数据填充(忽略单元格格式)138.VBA Project 加密及解密139.列出收藏夹中的网址140.计算两个日期之间相隔的年份,比如年龄,工龄等,可计算从1000年01月01日起的日期141.从字符串提取纯数字142.将一个数组按升序排列143.将一个数组按降序排列144.删除空白列145.判断工作表是否为空白146.将数据按类分到不同工作薄147.单元格内数据排序148.对多栏排序149.返回计算公式的值[值的计算公式]150.把第一列=某个值对应的第二列的内容连在一起,并用、隔开151.取得系统使用模式152.计算机注销/关机/重启153.更改计算机名称154.从 n 位开始取出字符串中的汉字、英文字母、数字155.在指定列中寻找含有指定字符串的单元格,并将符合条件的单元格标为红色,并将对应的下一列单元格赋值为1156.清除字符串中的空格157.查找合并单元格位置158.阴阳历转换和阴阳历生日159.利用数组和 Substitute 来替换某字符160.一键创建斜线表头161.函自动获取指定月的工作日。

第六章 自定义函数

第六章 自定义函数

/* 求一个较小整数的 n 次幂的值(n∈正整数)。*/ #include <stdio.h> main() { int base, n; /* 分别存放底数和幂的值。*/ int i; int p = 1; /* 存放底数的n次幂的结果。*/ base = 2; n = 4; for (i = 1; i <= n; i++) { p = p * base; } printf ("%d\n", p); base = -3; n = 2; p = 1; for (i = 1; i <= n; i++) { p = p * base; } printf ("%d\n", p); getch();
/* 下面是 supArea 函数的定义部分,函数功能是计算球的表面积 */ float supArea (float r) { float s; s = 4 * PI * r * r; return s; }
2
永城职业学院 彭勃
/* 下面3行是预处理命令部分 */ #include <stdio.h> #include <math.h> #define PI 3.1415926
自定义函数的设计过程
6
}
永城职业学院 彭勃
自定义函数的设计过程
#include <stdio.h> /* power 函数:求一个较小整数的 n 次幂的值。*/ int power (int base, int n) /* 接收底数和幂。*/ { int i, p = 1; for ( i = 1; i <= n; i++ ) { p = p * base; } return p; /* 返回结果。*/ }

常用自定义函数汇总

常用自定义函数汇总

常用自定义函数汇总在编程中,自定义函数是一种非常重要的工具,它可以帮助我们将一段代码逻辑封装起来,提高代码的可读性和重用性。

下面是常用的一些自定义函数的汇总:1.判断回文数函数回文数是指正读和反读都一样的整数,例如121、判断一个整数是否为回文数可以使用以下代码:```def isPalindrome(num):return str(num) == str(num)[::-1]```2.判断质数函数质数是指大于1且不能被其他整数整除的整数。

判断一个整数是否为质数可以使用以下代码:```def isPrime(num):if num <= 1:return Falsefor i in range(2, int(num ** 0.5) + 1):if num % i == 0:return Falsereturn True```3.计算阶乘函数阶乘是指从1到n的所有正整数相乘的结果,记作n。

计算一个正整数的阶乘可以使用以下代码:```def factorial(num):if num == 0:return 1else:return num * factorial(num - 1)```4.字符串反转函数字符串反转是指将一个字符串中的字符顺序颠倒过来,例如将"hello"反转为"olleh"。

实现字符串反转可以使用以下代码:```def reverseString(string):return string[::-1]5.列表去重函数列表去重是指将一个列表中重复的元素去除,只保留一个副本。

实现列表去重可以使用以下代码:```def uniqueList(lst):return list(set(lst))```6.判断闰年函数闰年是指公历年份可以被4整除但不能被100整除,或者可以被400整除的年份。

判断一个年份是否为闰年可以使用以下代码:```def isLeapYear(year):if year % 4 == 0:if year % 100 == 0:if year % 400 == 0:return Trueelse:return Falsereturn Trueelse:return False```7.字符串翻转函数字符串翻转是指将一个字符串中每个单词的顺序颠倒过来,例如将"hello world"翻转为"world hello"。

几个ASP好用的自定义函数

几个ASP好用的自定义函数

几个ASP好用的自定义函数cLeft(string, length) 返回指定数目的从字符串的左边算起的字符,区分单双字节。

如:Dim MyString, LeftStringMyString = "文字测试VBSCript"LeftString = cLeft(MyString, 10)返回 "文字测试VB"。

MyRandc(n) 生成随机字符,n为字符的个数如:response.write MyRandn(10)输出10个随机字符MyRandn(n) 生成随机数字,n为数字的个数如:response.write MyRandn(10)输出10个随机数字formatQueryStr(str) 格式化sql中的like字符串.如:q = Request("q")q = formatQueryStr(q)sql = "select * from [table] where aa like ‘%"& q &"%‘"GetRnd(min,max) 返回min - max之间的一个随机数如:response.write GetRnd(100,200)输出大于100到200之间的一个随机数函数代码:<%function cLeft(str,n) dim str1,str2,alln,Islefted str2 = ""alln = 0str1 = strIslefted = falseif isnull(str) thencleft = ""exit functionend iffor i = 1 to len(str1) nowstr = mid(str1,i,1)if asc(nowstr)<0 then alln = alln + 2elsealln = alln + 1end ifif (alln<=n) thenstr2 = str2 & nowstr elseIslefted = trueexit forend ifnextif Islefted thenstr2 = str2 & ".."end ifcleft = str2end functionfunction MyRandc(n) ‘生成随机字符,n为字符的个数dim thechrthechr = ""for i=1 to ndim zNum,zNum2RandomizezNum = cint(25*Rnd)zNum2 = cint(10*Rnd)if zNum2 mod 2 = 0 thenzNum = zNum + 97elsezNum = zNum + 65end ifthechr = thechr & chr(zNum)nextMyRandc = thechrend functionfunction MyRandn(n) ‘生成随机数字,n为数字的个数dim thechrthechr = ""for i=1 to ndim zNum,zNum2RandomizezNum = cint(9*Rnd)zNum = zNum + 48thechr = thechr & chr(zNum)nextMyRandn = thechrend functionfunction formatQueryStr(str) ‘格式化sql中的like字符串dim nstrnstr = strnstr = replace(nstr,chr(0),"")nstr = replace(nstr,"‘","‘‘")nstr = replace(nstr,"[","[[]")nstr = replace(nstr,"%","[%]")formatQueryStr = nstrend functionfunction GetRnd(min,max)RandomizeGetRnd = Int((max - min + 1) * Rnd + min)end function。

Python之自定义函数

Python之自定义函数

Python之⾃定义函数函数1、定义函数在Python中定义⼀个函数要使⽤def语句,⼀次写出函数名、括号、括号中的的参数和冒号,然后在缩进块中编写函数体,函数的返回值⽤return返回。

如下所⽰:def 函数名(参数列表):函数体简单的定义⼀个函数1def hello() :2print("Hello World!")3 hello()Hello World!定义⼀个带参数的函数:需求:替换列表中的某个值替换成另⼀个值l=[3,3,4,5,6,6,5,3,6,2,9,9,2,8,2,3]i=0while i<len(l):if l[i]==3:#把l中的3换成7l[i]=7i+=1l[7, 7, 4, 5, 6, 6, 5, 7, 6, 2, 9, 9, 2, 8, 2, 7]由上可知循环不能反复利⽤,⽽且参数固定,所以我们可以定义⼀个函数。

1def list_element_replace(somelist,x,y):2 i=03while i<len(l):4if l[i]==x:#丢弃值5 l[i]=y#代替值6 i+=17return somelist1 l=[1,2,3,4,1,2,3,1,4,5,2,3]2 list_element_replace(l,3,30)[1, 2, 30, 4, 1, 2, 30, 1, 4, 5, 2, 30]⽤for循环来编写1def replace_element(a,b,c):2for i in range(len(a)):3if a[i]==b:4 a[i]=c5return a1 replace_element(l,2,20)[1, 20, 30, 4, 1, 20, 30, 1, 4, 5, 20, 30]2、函数的参数2-1、位置参数按照从左到右的顺序依次定义的参数叫做位置参数;1def student(age,high,sex):2if age<18:3print(age)4print(high)5print(sex)6else:7print("超出年龄"1 student(19,170,"⼥")超出年龄1 student(16,170,"⼥")16170⼥由上⾯函数可知道,位置参数的顺序是不能改变的,否则传⼊参数是会错误识别。

积累了八年的15个最适用的VFP自定义函数)

积累了八年的15个最适用的VFP自定义函数)

积累了八年的15个最适用的VFP自定义函数)[原创] 积累了八年的15个最适用的VFP自定义函数本人长期运用VFP从事管理信息系统的开发,已成功销售了近10套自己开发的软件,可以说是VFP给我带来了财富。

多年来,本人在VFP方面已积累了大量的开发经验,现将我已成功应用的一部分(估计各位能用得上的)自定义函数贡献出来与各位分享。

当然,也请您支持我2个金币吧!特别说明:以下函数中所涉及到的数据表、存储过程等内容因为太多,所以只要你提问,我一定会解答或提供的。

自定义函数列表:1.SQLLink(vcODBCName,vcUserName,vcPassword)&&根据所提供的ODBC、用户名及密码创建连接MSSQL数据库服务器的数据连接句柄&&以便用于执行MSSQL存储过程、执行Select 语句等,是网络版VFP软件的必备2.GetSrvDateTime()&&获取MSSQL数据库所在服务器的日期时间,可任意指定日期格式3.GetMainDir()&&获得系统运行的主目录4.GetOperator()&&获得当前正在操作的操作员姓名5.GetRight(cOperator,cField)&&根据cOperator所指定的操作员来判断其是否有权操作该任务(cField),返回逻辑型&&例如:GetRight("张三","出入库查询")6.DoForm(cFormName,cField)&&以GetRight()函数为依据,判断当前操作员是否有权运行cFormName表单&&例如:DoForm("Frm_FindStock","出入库查询")7.DoReport(cReportName,cField,lPreviewOrPrint,cWindowN ame,lExpression)&&与DoForm()函数类似,判断当前的操作员是否有权打印或运行某个报表(cReportName)&&可设置是否预览、可设定预览窗口,还可指定条件预览8.EncryptPWD(cFirstPassWord)&&对所提供的字符串cFirstPassWord进行加密,主要用于对操作员密码的加密,&&这样就算别人打开了Password.DBF,也无法知道其真实密码9.nEncryptPWD(cFirstPassWord)&&是EncryptPWD()函数的反向运算,对已经加密过的字符串进行解密10.RMBZH(nRMB)&&人民币小写转换为大写的函数,这个函数好多地方都有介绍的11.SetInit()&&初始化表单运行环境的自定义过程,避免在每一个Form.SCX 中再单独设定,一劳永逸12.RunDosProg&&调用Dos或Windows应用程序的自定义过程&&如:DO RUN WITH "DosProgramName"13.BackupDataBase(vcBackupFilePath,vcBackupDeviceName)&&运用存储过程(BackupDataBase)对MSSQL中特定的数据库进行全自动备份&&如:BackupDataBase("DBBackup","E:\MSSQL\BACKUP\")14.DoExport(lGetRight,cTableName,cFileType)&&根据权限范围,将当前工作表导出为指定类型的文件,默认为Excel文件&&支持FOX2X/DIF/MOD/SDF/SYLK/WK1/WKS/WR1/WRK/CSV/XLS/XL5 &&如:DoExport("数据导出","DB_Product","CSV")15.GetDaysInMonth(nMonth)&&根据所提供的月份返回该月有多少天,返回值类型为数值型&&如:GetDaysInMonth(8) --> 结果为:31FUNCTION SQLLink(vcODBCName,vcUserName,vcPassword) *创建联接服务器的数据连接**********************************************参数说明********************************************************************** 如果vcODBCName,vcUserName,vcPassword三个参数中的一个为空值,则从DBSQL表中取值* vcODBCName=1,连接MSSQL的ODBC名称* vcUserName=1,MSSQL管理员帐号* vcPassword=1,MSSQL管理员密码*************************************************************** ***********************************************************IF EMPTY(vcODBCName) OR EMPTY(vcUserName) OR EMPTY(vcPassword)IF !USED("DBSQL")USE DBSQL IN 0ENDIFSELECT DBSQLIF RECCOUNT("DBSQL")<=0vcODBCName=""vcUserName=""vcPassword=""ELSEGO TOPvcTempODBCName=ALLTRIM(DBSQL.ODBCName)vcTempUserName=ALLTRIM(/doc/7a3 718930.htmlerName)vcTempPassword=ALLTRIM(DBSQL.Password)vcODBCName=UnEncryptPWD(vcTempODBCName)vcUserName=UnEncryptPWD(vcT empUserName)vcPassword=UnEncryptPWD(vcTempPassword)ENDIFUSE IN DBSQLENDIFgnConnHandle=SQLCONNECT(vcODBCName,vcUserName, vcPassword)IF gnConnHandle<= 0= MESSAGEBOX('不能建立与数据库服务器的数据连接,请与系统管理员联系!', 16, '提示信息')&&CLEAR EVENTS&&QUITENDIFRETURN gnConnHandleENDFUNCFUNCTION GetSrvDateTime(nDateTimeValue)*获取服务器端的系统日期时间**********************************************参数说明******************************************************************* *** nDateTimeValue=1,取值为服务器的日期时间格式,默认值为1* nDateTimeValue=2,取值为服务器的日期型格式* nDateTimeValue=3,取值为服务器的时间型格式* nDateTimeValue=4,取值为本机日期时间型格式,用于打印报表*************************************************************** *********************************************************** *!* pdSrvDateTime=DATE()*!* RETURN pdSrvDateTime*CREATE CONNECTION gnConnHandle DATASOURCE "SunMIS_SQL" USERID "SA")IF EMPTY(nDateTimeValue) OR ISNULL("nDateTimeValue") OR nDateTimeValue<1 OR nDateTimeValue>3nDateTimeValue=1ENDIF&&gnConnHandle=SQLCONNECT("IRGT","sa","147")gnConnHandle=SQLLink()IF gnConnHandle<0 Then &&不能建立连接DO CASECASE nDateTimeValue=1 &&本机的日期时间型pdSrvDateTime=DATETIME()CASE nDateTimeValue=2 &&本机的日期型pdSrvDateTime=DATE()CASE nDateTimeValue=3 &&本机的时间型pdSrvDateTime=TIME()CASE nDateTimeValue=4 &&本机的日期时间型pdSrvDateTime=DATETIME()ENDCASEELSESQLEXEC(gnConnHandle,"Select GetDate() AS SrvDateTime") IF RECCOUNT("SQLRESULT")<=0 THENDO CASECASE nDateTimeValue=1&&本机的日期时间型pdSrvDateTime=DATETIME()CASE nDateTimeValue=2 &&本机的日期型pdSrvDateTime=DATE()CASE nDateTimeValue=3 &&本机的时间型pdSrvDateTime=TIME()CASE nDateTimeValue=4 &&本机的日期时间型pdSrvDateTime=DATETIME()ENDCASEELSEDO CASECASE nDateTimeValue=1 &&服务器的日期时间型pdSrvDateTime=SQLRESULT.SrvDateTime*!* MESSAGEBOX(pdSrvDateTime)CASE nDateTimeValue=2 &&服务器的日期型pdSrvDateTime=TTOD(SQLRESULT.SrvDateTime)CASE nDateTimeValue=3 &&服务器的时间型pdSrvDateTime=SUBSTR(TIME(SQLRESULT.SrvDateTime),1,8) &&pdSrvDateTime=TIME(SQLRESULT.SrvDateTime)&&pdSrvDateTime=CTOT(SUBSTR(TIME(SQLRESULT.SrvDat eTime),1,8))CASE nDateTimeValue=4 &&本机的日期时间型pdSrvDateTime=DATETIME()ENDCASE*!* pdSrvDateTime=TTOD(SQLRESULT.SrvDateTime)ENDIF=SQLDISCONNECT(gnConnHandle)ENDIF*!* ?TYPE("pdSrvDateTime")*!* ?pdSrvDateTime*!* MESSAGEBOX(pdSrvDateTime)RETURN pdSrvDateTimeENDFUNCFUNCTION GetMainDir()*获得系统运行的主目录,便于判断其是否有权限进行相关操作。

【源码分享】VBA中一些常用的自定义函数

【源码分享】VBA中一些常用的自定义函数

【源码分享】VBA中一些常用的自定义函数▎写在前面都说写VBA像累积木,除了核心部分的循环逻辑思路,其余都是再堆砌代码。

这篇文章就罗列一下我在写VBA程序中,常用的一些自定义函数。

·列标相互转换很多时候得到的列标是数字列标,需要把它转成英文列标的形式,比如下面的语句中col变量就是数字。

col = Cells(1, Columns.Count).End(xlToLef t).Column但是如果我们需要这个数字所对应的英文列标,这个时候就需要下面的自定义函数进行便捷转化。

自定义函数代码:'列数转字母Function CNtoW(ByVal num As Long) As String CNtoW = Replace(Cells(1,num).Address(False, False), "1", "")End Function'字母转列数Function CWtoN(ByVal AB As String) As Long CWtoN = Range("a1:" & AB & "1").Cells.CountEnd Function代码使用实例:Sub test() col = Cells(1, Columns.Count).End(xlToLef t).Column Range("a1:" & CNtoW(col) &1).SelectEnd Sub·判断文件夹是否存在往往存储运行结果需要建文件夹的时候,需要首先判断下文件夹是否存在,如果不判断直接新建,程序会报错。

自定义函数代码:Public Function FileFolderExists(ByVal strFullPath As String) As Boolean If Not Dir(strFullPath, vbDirectory) = vbNullString Then FileFolderExists = True Else FileFolderExists = False End If End Function如果不使用自定义函数,FSO的方式自带判断文件夹是否存在的方法Sub 新建文件夹() PathG = "D:\f older1" Set f so = CreateObject("Scripting.FileSystemObject") Iff so.FolderExists(PathG) = True Then f so.getf older(PathG).Delete '//删除文件夹 MkDir PathG '//创建文件夹 Else MkDir PathG '//创建文件夹 End If End Sub·判断文件是否存在方法一:Dir函数法Function IsFileExists(ByVal strFileName As String) As Boolean If Dir(strFileName) <> Empty Then IsFileExists = True Else IsFileExists = False End If End FunctionSub Run() IfIsFileExists("D:\vba\abc.txt") = True Then ' 文件存在时的处理 MsgBox "文件存在!" Else ' 文件不存在时的处理 MsgBox "文件不存在!" End If End Sub方法二:FSO对象方法Function IsFileExists(ByVal strFileName As String) As Boolean Dim objFileSystem As Object Set objFileSystem = CreateObject("Scripting.FileSystemObject") If objFileSystem.f ileExists(strFileName) = True Then IsFileExists = True Else IsFileExists = False End If End FunctionSub Run() IfIsFileExists("D:\vba\abc.txt") = True Then ' 文件存在时的处理 MsgBox "文件存在!" Else ' 文件不存在时的处理 MsgBox "文件不存在!" End If End Sub·判断WorkSheet是否存在新建WorkSheet的时候,如果已经存在相同名字的WorkSheet,程序就会报错,一般先判断下某个WorkSheet是否存在,不存在的时候才进行新建操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

自定义函数选附代码注释By 蓝桥玄霜前言我们平时在工作表单元格的公式中常常使用函数,Excel自带的常用的函数多达300多个,功能强大,丰富多彩,博大精深。

在Excel内置函数和扩展函数中有十多个应用领域的函数,如数学与三角函数、统计函数、文本和数据函数、查找和引用函数、数据库函数、财务函数、日期和时间函数、信息函数、工程函数和宏表函数等等。

但是我们每个人还可能有各种各样的问题而不能直接应用这些函数得到解决,于是Excel也提供了VBA可以让我们自己编一个自定义函数来解决自己特定的需求。

以下挑选一些自定义函数,由简到繁,附以代码注释,供大家参考。

第1例折扣函数一、题目:要求编写一个当销售数量大于等于100时,售价打九折的计算折扣的自定义函数。

二、代码:Function Zekou(sul, jiag) As DoubleIf sul>=100 ThenZekou =sul*jiag*0.1ElseZekou =0EndIfZekou =Application.Round(Zekou,2)End Function三、代码详解1、Function Zekou(sul, jiag) As Double :自定义函数的开始语句。

自定义函数总是以Function开头,以End Function语句结束。

自定义函数的代码一定要放在标准模块里面。

Zekou是函数名,名字可取一个较短的描述信名称,这样容易记忆。

如sul数量和jiag 价格,这里用的是拼音字母。

函数后括号里的两个变量叫做函数的参数。

两个参数都没有显式声明数据类型,都是可变型数据类型variant。

AS Double 表示函数返回值的数据类型是双精度浮点型数据。

2、If sul>=100 Then 如果sul(数量)大于等于100,那么这是标准的If…Then…Else判断语句,意思是如果第一个条件成立,或者说满足了第一个条件,那么执行Then以后的语句;否则执行Else以后的语句。

3、Zekou =sul*jiag*0.1 折扣=数量×价格×0.14、Else 否则执行下面的语句,5、Zekou = 0 折扣=0,即数量小于100时,不打折扣。

6、Zekou =Application.Round(Zekou,2) 这里用了工作表的Round函数,返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。

这里是按照2位小数进行四舍五入运算的折扣数值。

四、自定义函数用法B2=450,C2=100.00,D2=Zekou(B2,C2) ‘返回4500.00如图-1所示。

图-1 折扣函数用法第2例两点之间距离的自定义函数一、题目:要求编写已知同一平面上两点的坐标值,求两点之间距离的自定义函数。

二、代码:Function dist(x1, y1, x2, y2)dist = Sqr((x2 - x1) ^ 2 + (y2 - y1) ^ 2)End Function三、代码详解1、Function dist(x1, y1, x2, y2) :自定义函数的开始语句。

自定义函数名称为dist,参数是两点的坐标值x1、y1、x2、y2。

2、dist = Sqr((x2 - x1) ^ 2 + (y2 - y1) ^ 2) :这是一个求两点间距离的公式,x坐标值差的平方与y坐标值差的平方之和的平方根就是两点之间的距离。

其中Sqr是VBA函数,返回一个Double(双精度数据),指定参数的平方根。

四、自定义函数用法B2、B3单元格是点1的坐标值,D2、D3单元格是点2的坐标值,两点之间的距离为C5=dist(B2,B3,D2,D3) ‘返回156792如图-2所示。

图-2 dist函数的用法第3例十进制角度转化为度分秒的自定义函数一、题目:要求编写把一个十进制的角度,转化为角的度分秒形式的自定义函数。

二、代码:Function dfm(angle3) '度转化为度分秒If angle3 < 0 Thendeg1 = -Int(Abs(angle3))Elsedeg1 = Int(angle3)End Ifmin1 = (Abs(angle3) - Abs(deg1)) * 60min2 = Int(min1)sec1 = Int((min1 - min2) * 60)dfm = deg1 & " °" & min2 & " '" & sec1 & " """End Function三、代码详解1、Function dfm(angle3) :自定义函数的开始语句。

自定义函数名称为dfm,度分秒的拼音首字母,参数是angle3。

2、If angle3 < 0 Then :如果角度小于0,那么执行下面的语句,否则执行else后面的语句。

3、deg1 = -Int(Abs(angle3)) :这句用了两个VBA函数,先是绝对值函数Abs,对负的角度取其绝对值,然后是取整函数Int,取角度的整数,加上-(负)以后赋值给变量deg1(整数度)。

这里为什么要先用绝对值函数Abs呢?因为如果直接对负数取整,就会产生错误,如-36,直接对负数取整得到的是-37,而不是-36。

4、deg1 = Int(angle3) :如果角度是正的,只需要用取整函数Int,取角度的整数,赋值给变量deg1。

5、min1 = (Abs(angle3) - Abs(deg1)) * 60 :把角度的绝对值减去度绝对值的差乘以60,得到的值赋给变量min1(小数分)。

6、min2 = Int(min1) :把分取整的值赋给变量min2(整数分)。

7、sec1 = Int((min1 - min2) * 60) :把小数分减去整数分的差取整后乘以60,得到的值赋给变量sec1(整数秒)。

8、dfm = deg1 & " °" & min2 & " '" & sec1 & " """ :用字符连接运算符&把整数度整数分整数秒,中间加上度分秒的数学符号连接起来所形成的字符串赋给函数dfm。

四、自定义函数用法A2、A3单元格的值是十进制的角度值,B2=dfm(A2) ‘返回65°19’17”,B3=dfm(A3) ‘返回-36°41’7”如图-3所示。

图-3 dfm函数的用法第4例个人所得税自定义函数一、题目:要求编写一个计算个人所得税的自定义函数。

二、代码:Function grsds(ysr, Optional qzd=2000) As SingleDim suil As Single, sukousu As Single, ynse As Singleynse = ysr - qzdSelect Case ynseCase 0 To 500suil = 0.05: sukousu = 0Case 501 To 2000suil = 0.1: sukousu = 25Case 2001 To 5000suil = 0.15: sukousu = 125Case 5001 To 20000suil = 0.2: sukousu = 375Case 20001 To 40000suil = 0.25: sukousu = 1375Case 40001 To 60000suil = 0.3: sukousu = 3375Case 60001 To 80000suil = 0.35: sukousu = 6375Case 60001 To 100000suil = 0.4: sukousu = 10375Case Elsesuil = 0.45: sukousu = 15375End SelectIf ynse <= 0 Thengrsds = 0Elsegrsds = Round(ynse * suil - sukousu, 2)End IfEnd Function三、代码详解1、Function grsds(ysr, Optional qzd=2000) As Single:自定义函数的开始语句。

以Function开始,grsds是函数名,名字可任意取名,这里用了个人所得税各字的拼音首字母,其它变量也是如此,如月收入ysr和起征点qzd。

函数后括号里的两个变量叫做函数的参数,在变量前加有Optional的表示是可选的参数,即可以用也可以不用它,这里=2000表示该变量的默认值为2000,即如果不用它,变量qzd就=2000。

AS Single 表示变量都声明为单精度浮点型变量。

Single(单精度浮点型)变量存储为32 位(4 个字节)浮点数值的形式,它的范围在负数的时候是从-3.402823E38 到-1.401298E-45,而在正数的时候是从1.401298E-45 到3.402823E38。

Single 的类型声明字符为感叹号(!)。

2、Dim suil As Single, sukousu As Single, ynse As Single:三个变量都声明为单精度浮点型变量。

其中suil代表(税率)、sukousu代表(速扣数)、ynse代表(应纳税额)。

3、ynse = ysr - qzd:把月收入(ysr)-起征点(qzd)的值赋给变量应纳税额(ynse)。

由于qzd变量可选而且有默认值2000,所以如果公式中省略该参数,该参数就等于2000。

4、Select Case ynse和End Select:是一组判断语句的一对开头和结束语句。

Ynse就是判断的条件。

Select Case与If…Then…Else判断语句很相似,但是前者允许在许多的条件值这种选择。

你可以有任意数量的Case行,并且在每行上可包含多个值,还可以使用To子句来包含一个值范围。

比如下面的Case 0 To 500语句。

5、Case 0 To 500:如果应纳税额(ynse)的值在0~500之间的话,就执行下面的语句。

如果应纳税额(ynse)的值不在0~500之间的话,就不执行下面的语句7而依次执行其它的Case语句。

6、suil = 0.05: sukousu = 0 :如税率=0.05,速扣数=0。

接着执行End Select语句退出判断语句。

直接执行If ynse <= 0 Then语句。

7、其它的Case语句相同。

相关文档
最新文档