09 2013 档案

摘要:一 概念通过一个指向基类的指针调用虚成员函数的时候,运行时系统将能够根据指针所指向的实际对象调用恰当的成员函数实现,因此基类的指针具有多种形态。一言以蔽之, "一个接口,多种方法",程序在运行时才决定调用的函数。二 作用封装可以使代码模块化,继承可以扩展已存在的代码,它们的作用是代码重用。而多态的目的是接口重用,也就是不论传过来的是哪个类的对象,函数都能通过同一个接口调用到适应各自对象的方法。三 实现1 声明基类的指针,利用该指针,指向任意一个子类的对象,调用相应的虚函数,可以根据指向的子类的不同而实现不同的方法。2 指针转换四 条件1:基类的虚函数2:派生类的虚函数必须和 阅读全文
posted @ 2013-09-27 18:08 wangjunshusheng 阅读(182) 评论(0) 推荐(0)
摘要:冗余校验循环冗余码校验英文名称为CyclicalRedundancyCheck,简称CRC,它是利用除法及余数的原理来作错误侦测(ErrorDetecting)的。实际应用时,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC相比较,若两个CRC值不同,则说明数据通讯出现错误。标准根据应用环境与习惯的不同,CRC又可分为以下几种标准:①CRC-12码;②CRC-16码;③CRC-CCITT码;④CRC-32码。CRC-12码通常用来传送6-bit字符串。CRC-16及CRC-CCITT码则是用来传送8-bit字符串,其中CRC-16为美国采用, 阅读全文
posted @ 2013-09-24 21:32 wangjunshusheng 阅读(1362) 评论(0) 推荐(0)
摘要:语法要点:1) 创建进程 spawn(Fun)2) 发送消息 Pid1 ! M3) 接收消息 receive Pattern1 [when Gurad1] -> Expression1; Pattern2 [when Guard2] -> Expression2; ... end 带超时的接收消息 receive Pattern1 [when Guard1] -> Expression1; ... 阅读全文
posted @ 2013-09-24 21:26 wangjunshusheng 阅读(235) 评论(0) 推荐(0)
摘要:%%%%%% 1 判断是否是字符串%%% 2 从文件中提取中文%%%%%%%%%%%-----------------------------------------------------------------------------------%% 1 判断是否是字符串is_string([]) -> yes;is_string(List) -> is_string(List, non_unicode).is_string([C|Rest], non_unicode) when C >= 0, C = is_string(Rest, non_unicode);is_st 阅读全文
posted @ 2013-09-24 21:26 wangjunshusheng 阅读(331) 评论(0) 推荐(0)
摘要:相同点:ets和dets都提供“键—值”搜索表不同点:ets驻留在内存,dets驻留在磁盘特点:ets表和dets表可以被多个进程共享,因此通过这两个模块可以实现数据间的交换一 ets表实现原理:散列表和二叉树表的类型:(1)集合set,集合中每个关键字只出现一次(2)有序集合(Ordered set),集合中的关键字只出现一次,但是其元素的顺序按照关键字的字典顺序存储(3)袋Bag, 允许不同记录对应同一个关键字,(4)复袋,一个复袋允许包含重复的元素和关键字 比较:集合和袋提供恒定的存取时间,有序集合的存取时间与表数据量对数相关操作:创建表:ets:new(Name, [Opts]) -& 阅读全文
posted @ 2013-09-24 21:24 wangjunshusheng 阅读(298) 评论(0) 推荐(0)
摘要:常用代码date()返回P{年,月,日}erlang:now转本地时间15> calendar:now_to_local_time(erlang:now()).{{2012,5,17},{14,32,6}} erlang:now转世界时间16> calendar:now_to_universal_time(erlang:now()).{{2012,5,17},{6,33,2}}17> 验证合法的日期20> calendar:valid_date({0,0,0}).false21> calendar:valid_date({0,1,0}).false22> c 阅读全文
posted @ 2013-09-24 21:21 wangjunshusheng 阅读(536) 评论(0) 推荐(0)
摘要:一 数据类型1. 整数 Integer Erlang可表示任意大的整数,大整数自动转换成bignums类型,比固定大小的整数类型相对效率较低。 Base#Value 表示基数不是10的整数。如:2#1010 -16#EA $Character 表示字符的ASCII码。如:$a $\n 2. 浮点数 Float3. 原子 Atom:表示文字常量 相当于C语言中的#define,Java中的“static final”。 操作:比较 基元:由小写字母开头或由单引号界定。 当以字母开头时:字母,数... 阅读全文
posted @ 2013-09-24 21:19 wangjunshusheng 阅读(677) 评论(0) 推荐(0)
摘要:1 erlang启动时就运行odbcerl -s odbc2 ping 节点net_adm:ping('rabbit@COMPUTERNAME').3 运行cmd命令os:cmd("ipconfig -all").4 输出当前工作目录pwd()5 返回模块路径code:which(Module).6 获取ex_web应用下priv目录路径code:priv_dir(ex_web)7 获取Pid进程邮箱内消息条数process_info(Pid, message_queue_len)8 对Num进行截断turnc(Num)9 在Pos处将Bin截为两段spli 阅读全文
posted @ 2013-09-24 21:17 wangjunshusheng 阅读(1508) 评论(0) 推荐(0)
摘要:转载自http://blog.csdn.net/sw2wolf/article/details/6797708.列表操作lists:foreach(fun(X) -> io:format("E=~p~n",[X]) end, [1,2,3]).lists:duplicate(10, 16#f). % [15,15,15,15,15,15,15,15,15,15]"abc-123" -> "abc"no_vsn(Name) -> lists:takewhile(fun($-)->false;(_)-> tr 阅读全文
posted @ 2013-09-24 21:03 wangjunshusheng 阅读(473) 评论(0) 推荐(0)
摘要:消重算饭1> List = [1,2,3,1,2,4].[1,2,3,1,2,4]2> sets:to_list(sets:from_list(List)).[3,2,1,4]排序算法3>lists:sort(List).[1,1,2,2,3,4]根据某一元素排序4>rd(app{id,date,pkg_name,appname,version,user_num,new_user_num,used_num,los,sum_user}).app5> Sort = fun (A,B)-> A#app.date =6> lists:sort(Sort, D) 阅读全文
posted @ 2013-09-24 20:58 wangjunshusheng 阅读(353) 评论(0) 推荐(0)
摘要:分布式Erlang核心概念是节点。1) spawn(Node,Func) -> Pid2) spawn(Node, Mod,Func,ArgLists) -> Pid 说明:这种形式的spawn比spawn更健壮3) spawn_link(Node, Func)->Pid4) spawn_link(Node,Mod,Func,ArgLists)->Pid5) disconnect_node(Node)->bool() | ignored6) monitor_node(Node, Flag) -> true 说明:如果Flag为true,表示节点监视打开,若有 阅读全文
posted @ 2013-09-08 23:50 wangjunshusheng 阅读(445) 评论(0) 推荐(0)
摘要:语法: -record(Name, { Key1 = Default1, Key2 = Default2, ... Key3, ... }). Name记录名,Key1,Key2字段名创建记录 -record(state, {io, client}) State = #state{}.提取字段值 1 模式匹配 #state{io = IO} = State. 2 点语法 IO = State#state.io-record(task,{name,content}).#rec... 阅读全文
posted @ 2013-09-04 11:52 wangjunshusheng 阅读(135) 评论(0) 推荐(0)
摘要:文件属性 提取方法:Module:module_info/1头文件 包含头文件 -include(FileName). %% FileName为绝对路径或相对路径 引入库中包含文件 -include_lib(Name). 举例:-include_lib("kernel/include/file.hrl"). kernel 为应用名进程字典 加入数据 put(Key, Value). 查找数据 get(Key).删除键 erase(Key).短路布尔表达式 Expr1 andalso Expr2 说明:如果Expr1为假,则不计算Expr2Expr1 ... 阅读全文
posted @ 2013-09-04 11:32 wangjunshusheng 阅读(243) 评论(0) 推荐(0)
摘要:目的:针对协议编程而设计,可以方便快捷的处理协议的封包和解包位语法:Bin = >位模式匹配: > = BinEn形式可以为如下形式:Data |Data:Size |Data/TypeSpecifiers |Data:Size/TypeSpecifiers说明:Data必须是文本串,整数,浮点数或另外一个位串,Size指明区块长度,默认值取决于区块类型,整型长度为8,浮点型长度为64,二进制数据为其本身长度TypeSpecifiers是一个形如End-Sign-Type-Unit的列表,这几项顺序无要求,且可以省略,若省略则用默认值End指定字节序,可取值为big|little| 阅读全文
posted @ 2013-09-04 10:04 wangjunshusheng 阅读(245) 评论(0) 推荐(0)
摘要:位串速构与列表速构类似,位串速构用>的形式,如输入:> || X >.输出:>位串解析与位串速构不同的是,"> || X > >>.输出:>位串生成列表如输入:[ X || > >].输出:[1,2,3,4,5,6,7] 阅读全文
posted @ 2013-09-03 23:30 wangjunshusheng 阅读(364) 评论(2) 推荐(0)
摘要:语法:[F(X) || X <- L, Qualifier]意义:以F(X)形成新列表,其中X取值于L且满足条件Qualifier说明: F(X)元素模板,L 原始列表,Qualifier 限制条件优点:简洁,可读性强注意:a X不仅可以是变量,也可以是任意模式,这也就意味着,生成器本身就内置了约束条件,只有与模式相匹配的条件才在考虑范围内,其余元素忽略不计。举例: L = [{a,1},{b, 2}, {c,b,3},{d,4}],[{X, Y} || {X, Y} <- L].结果:[{a,1},{b,2},{d,4}]b 列表速构时可以指定多个生成器,这就会像写嵌套循环一样形 阅读全文
posted @ 2013-09-03 21:08 wangjunshusheng 阅读(221) 评论(0) 推荐(0)
摘要:现象:以ADO方式访问数据库的C++程序,在一台计算机上能访问成功,在另一台计算机上却访问不成功,报告不能连接错误,并且这两台计算机都装有ado。原因:ado版本不对解决方案:下载KB983246补丁 阅读全文
posted @ 2013-09-03 20:13 wangjunshusheng 阅读(282) 评论(0) 推荐(0)