自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(105)
  • 收藏
  • 关注

原创 在lua中创建类和对象

Account = {balance = 10}function Account:withdraw (v) self.balance = self.balance - vendfunction Account:deposit (v) self.balance = self.balance + vendfunction Account:create() local o = {}

2013-10-24 00:37:55 9301

原创 如何创建链表

#include using namespace std;typedef struct Node{ int value ; struct Node* pNext;}*PNode,NODE;class List{public: List(){ m_pHead = NULL;} void add(int elem); void travel(); //~List();pr

2013-10-23 23:11:46 1030

转载 中缀表达式计算器

假如给定一个中缀表达式:1+(2-3)*4+10/5利用栈就可以导出后缀表达式123-4*+105/+导出时注意:操作符入栈,操作数不入栈,在符号“+-*/()”入栈时如果栈中的出现了括号匹配时,需要匹配括号中的符号弹出。如果操作符入栈栈中有级别高或者相等的,就需要将栈中这样级别高或者想到的先出栈,格式肯定是操作数在前,操作符在后的。具体看这个视频:http://v.youku.com/v_s

2013-10-14 21:26:07 1389

转载 将文本拆分到不同的单元格中

转自:http://office.microsoft.com/zh-cn/excel-help/HA102809804.aspx从excel导数据到oracle中,oracle是按照一列一列的读取的,从google earth导出的数据是在一个列中的,为了把他们分开搞了好长时间,头都大了。这个方法可以把一列的数据分成两列,太好用了您可以提取一个或多个单元格中的文本,并将其分布到多个

2013-09-30 13:23:17 1891

转载 如何重置序列

转自:http://blog.csdn.net/zyongsheng83/article/details/1735332表placeinfo中有个taxis字段代表插入记录的顺序号,我今天想修改他从1开始增长,不想用序列搞定,但查了半天,也不知咋办,于是就用序列了,通过select seq_atable.currval from dual发现序列的当前值已经好几百了,那怎么修改

2013-09-28 18:14:37 3252

原创 oracle如何实现插如记录时ID自增

sql server中的ID是系统设定的,当我们插入数据时他会自己增加,但oracle没有,需要我们自己添加字段ID,由于ID设置成NOT NULL,插入数据库时就会失败,这样就需要插入数据库时实现这条记录ID自己自动增加,自己搜了一下,具体方法如下假如将表li_line_fence的fenceid字段设置成了ID,那么就需要插入记录时自增1.首先建立一个序列:create sequ

2013-09-28 10:53:47 5475

转载 如何将excel导入到oracle数据库中

最近在google earth上标电子围栏,然后将经纬度录入数据库中,第一次做感觉还是挺麻烦的将google earth上面的数据保存成kml格式,看了一下就是xml文件,里面有包含经纬度的信息,用excel可以提取其中的经纬度节点的信息,用excel提取之后怎么将其导入到数据中对应字段中呢?具体方法如下:转自:http://zhidao.baidu.com/link?url=XYJx3z

2013-09-28 10:34:22 3430

转载 MFC中文档视图框架和文档模板之间的关系

转自:http://www.cnblogs.com/tianjinquan/archive/2011/01/18/1938568.html文档对象:是用来保存数据的。 视图对象:是用来显示和编辑数据的。 应用程序框架:框架是用来管理不同文档显示界面的。例如你有一个数据网格显示界面,还有一个图形显示界面,它们的数据可能都来自你的文档,但是视图不同,怎么办用框架。为什么不用视图?为的是

2013-09-21 21:23:39 3510

原创 ADO调用带有参数的存储过程

BOOL CTestProDlg::LoadTestProInfo(){ /*创建和数据库的连接*/ CString strErr = _T("") ; CString strUser = _T("SCOTT") ;//用户名 CString strPassword = _T("zzcan728") ;//密码 CString strDSN = _T("ORCL") ;//DSN

2013-09-20 21:07:46 2791

转载 Activex、OLE、COM、OCX、DLL之间的区别(转)

转自:http://blog.sina.com.cn/s/blog_557ee0540100cukp.html熟悉面向对象编程和网络编程的人一定对ActiveX、OLE和COM/DCOM这些概念不会陌生,但是它们之间究竟是什么样的关系,对许多们还是比较模糊的。在具体介绍它们的关系之间,我们还是先明确组件(Component)和对象(Object)之间的区别。组件是一个可重用的模块,它是

2013-09-20 10:33:26 935

转载 数据库删除操作(drop, delete,truncate)

转自:http://wenku.baidu.com/view/326a045cbe23482fb4da4cbc.htmlOracle删除表的几种方法 2010年07月27日 星期二 13:07 引言: drop table books;的指令会将表放到回收站里,  用  flashback table "BIN$1Oiy3qm/QJubov1BwBUOgw==$0" to be

2013-09-04 21:08:29 3751

原创 更改SQL SERVER登录模式为SQL SERVER

之前安装数据库服务时选择的是windows身份验证,现在想把改为SQL SERVER身份验证,具体办法如下:服务器--右键--属性--安全性  选择SQLserver和windows身份验证模式 在查询分析其中运行下面的代码 将SA账号取消禁止(在安装的过程中,如果选择windows身份验证模式,SA账户是被禁止的) Alter LOGIN sa ENABLE ; 

2013-08-29 21:29:58 1929

转载 IADORecordBinding

如何使用VC++对ADO的扩展IADORecordBinding接口VC++对ADO的扩展联系或绑定了一个Recordset对象的各个字段到C/C++变量。当被绑定的Recordset的当前行改变时,其中所有被绑定的字段的值也同样会被拷贝到相应的C/C++变量中。如果需要,被拷贝的数据还会自动进行相应的数据类型转换。IADORecordBinding接口的BindToRecords

2013-08-28 01:49:32 2094

转载 ADO访问数据库

转自:http://blog.csdn.net/bwmwm/article/details/1587228介绍VC用ADO访问数据库全攻略,介绍了VC用ADO来访问数据库的各个对象及各方法,很经典,也很实用,很值得一看。   正文一、ADO概述ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口。ADO 使您

2013-08-26 00:27:17 859

原创 常用的函数:atoi,itoa,atof,_ttoi等

atoi---ASCII to integer,将字符串转换成整形,从数字或正负号开始转换,一直到非数字为止#include #include int main(void){ float n; char *str = "12345.67"; n = atoi(str); printf("string = %s integer = %d\n", str, n); ret

2013-08-24 12:36:04 33517

原创 一个继承单例,临界区的类CEStnDefinition

template class Singleton{public: static T* Instance() { static T t; return &t; } protected: Singleton(){ } virtual ~Singleton(){ } private: Singleton(const Singleton& source){ }};

2013-08-24 11:46:28 842

原创 仿函数

二元判断式:Binary Predicates的典型用途是比较两个参数的特定属性,例如为了依照自己的原则对元素进行排序,必须提供简单的predicate形式提供这项原则,如果元素不支持operator#include #include #include #include using namespace std;class Person{public: Person(stri

2013-08-18 22:32:38 700

原创 map与multimap

map与multimap其实与set与multiset差不错,set与multiset是一种特殊的map与multimap。其再命名空间的定义如下:namespace std{ template <class key, class t, class compare = less, class allocator = allocator>> class map ;

2013-08-11 22:03:22 4879

原创 set与multiset

set和Multiset会根据特定的排序规则自动将元素排序,multiset允许元素重复,set不允许元素重复,二者在std中定义如下:namespace std{ template <class T, class Compare = less, class Allocator = allocator> class set ; template <clas

2013-08-11 14:56:06 928

原创 pair(对组)

struct pair可以将两个值视为一个单元,c++标准程序库内多处使用了这个struct,尤其在map与multimap中就是使用pair来管理其键值/实值(key/value)的成对元素,任何函数返回两个值也需要pair,pair定义于中name std{ template struct pair{ typedef T1 first_type ; typedef T2 sec

2013-08-10 23:02:31 1322

原创 lower_bound, upper_bound,equal_range

template FwdIt lower_bound(FwdIt first, FwdIt last, const T& val);template FwdIt lower_bound(FwdIt first, FwdIt last, const T& val, Pred pr);template FwdIt upper_bound(FwdIt first, FwdIt

2013-08-10 12:53:13 719

原创 DWORD,BYTE,句柄类型

DWORD:就是double word,每个word为两个字节,所以double word就是四个字节,每个字节为8位,所以DWOD是32位typedef unsigned long DWORD ,DWORD现在表示32bit无符号整数,以后windows升级到64位了,DWORD仍然表示32位(也许以后long不是32位了,此时DWORD就不是32位了),那些和位数相关的整数,最好不要用in

2013-08-04 17:46:33 9102

原创 TCHAR和TEXT宏

1.TCHAR宏:TCHAR是通过define定义的字符串宏c++支持两种字符串分别是常规的ANSI编码(使用""),和UNICODE编码(使用L""),这样就有两套字符串处理函数,例如strlen()和wcslen(),分别对应两种字符串微软将这两种字符集进行了统一,通过条件编译使用(_UNICODE和UNICODE)宏,控制实际使用的字符集,这样就有_T("")字符串和_tcsle

2013-07-21 18:50:17 4204

原创 sprintf()函数

printf()是将数据输出到stdout中,而sprintf()将数据输出到字符串缓冲区中函数原型:int sprintf( char *buffer, const char *format [, argument] ... );buffer:储存输出的地方format:格式化字符串,里面的参数有很多种类argument:可选参数返回值:在buffer中储存的字节数但不包括n

2013-07-16 01:32:14 914

原创 gets(),getchar(),fgets()

gets():原型:char *gets(char *buffer) ;功能:从stdlin中获取获取字符串一直到换行符或者遇到EOF为止,但换行符不被录取,会将换行符替换成‘\0’来表示字符串的结束返回值:如果读取成功会返回buffer指针,如果遇到EOF或者发生错误会返回NULL,当遇到NULL需要调用ferror()和feof()来判断是遇到EOF还是发生了错误ps:该函

2013-07-16 01:21:31 3319

原创 memcpy与memmove

文章来自:http://www.cnblogs.com/foxinhongyan/articles/1267624.html1.memmove函数原型:void *memmove(void *dest, const void *source, size_t count)返回值说明:返回指向dest的void *指针参数说明:dest,source分别为目标串和源串的首地址。co

2013-07-15 18:18:50 697

原创 strcpy与strncpy

strcpy:函数原型:char *strcpy(char *dest, const char* src) ;------将src中包括null的字符串复制到dest所指向的内存中,返回dest指针所需头文件#include 实现方式:char *strcpy(char *dest, const char* src){ assert(dest != NULL && sr

2013-07-14 15:07:28 809

原创 sscanf()函数

sscanf()----从一个字符串中读取与格式相符的数据,其实其作用相当于正则表示式,但没有正则表达式功能强大函数原型:int sscanf( const char *buffer, const char *format [, argument ] ... );buffer:储存的字符串format:格式字符串argument:选择性设定字符串sscanf从buffer的数据

2013-07-13 23:39:06 776

原创 memset()函数

在写程序中有几个函数总是让我头疼如memst,memcpy,strncpy等memst函数所在的头文件c中#include ,c++中#include 函数原型:void *memset(void *s, int ch, size_t n) ;作用:将s所指向的后n个字节用ch初始化,并返回s指针,是对较大的数组和结构体进行初始化最快的一种方式注意的是memest是按字节进行初

2013-07-13 22:00:30 1254

原创 嵌入式基本概念

嵌入式:是指以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗要求严格的专用计算机系统,他通常由特定功能模块和计算机控制模块组成,主要由嵌入式微处理器,外围设备,嵌入式操作系以及应用软件等组成,具有“嵌入性”,“专用性”,“计算机系统”三个基本要素。嵌入式的发展经过了四个发展阶段:1.应用于一些专业性强的工业控制系统中,一般没有操作系统的支持,通过

2013-07-13 01:35:27 2910

原创 linux线程属性

pthread_create()函数的第二个参数(pthread_attr_t *attr)表示线程的属性,在以前的例子中将其值设为NULL,也就是采用默认属性,线程的多项属性都是可以修改的,这些属性包括绑定属性,分离属性,堆栈属性,堆栈大小,优先级。系统默认的是非绑定,非分离,缺省1M的堆栈以及父子进程优先级相同。(1)绑定属性linux中采用一对一的线程机制,也就是一个用户线程对应一个

2013-07-09 16:00:55 1294

原创 linux多线程----信号量

信号量:信号量是操作系统中所用到的PV原子操作,他广泛用于进程与线程的同步与互斥,信号量本质是一个非负的整数计数器,被用来控制对公共资源的访问,下面是pv操作的工作原理:PV原子操作是对整数计数器信号量sem的操作,一次p操作使sem减1,一次v操作使sem加1,进程或者线程根据信号量判断是否对公共资源具有访问权限,当信号量sem的值大于等于0时,则进程或线程具有公共资源的访问权,当信号量小于

2013-07-09 00:33:49 1017

原创 linux线程互斥与同步---互斥锁

由于线程是共享进程的资源和空间的,所以对这些资源进行操作时,必须考虑到线程间资源访问的同步与互斥问题,这里主要说的是POSIX中的两种线程同步机制,分别为互斥锁和信号量,这两种同步机制能够互相调用对方来实现,但互斥锁使用与同时可用的资源是唯一的情况,信号量更适用于同时可用的资源为多个的情况。互斥锁:是一种简单的加锁方法来控制对共享资源的原子操作,这个互斥锁只有两种状态:上锁,解锁,可以把互斥锁

2013-07-08 12:21:22 1093

原创 linux多线程----基本概念

线程----轻量级进程,由于线程具有高效性和可操作性,在大型程序开发中运用的非常广泛,进程是系统中程序执行和资源分配的基本单位,每个进程拥有自己的数据段,代码段,堆栈段,这就造成了进程进行切换时需要有比较复杂的上下文切换等动作,为了减少处理器的空转时间,支持多处理器以及减少上下文切换开销,由此就演化出了线程这一概念,他是进程内独立的一条运行路线,是处理器调度的最小单元,线程可以对进程的内存空间和资

2013-07-08 10:00:04 1946

原创 linux进程通信---消息队列

消息队列:消息队列是一些消息的列表,用户可以从消息队列中读取和添加消息,消息队列具有FIFO的特性,但可以实现消息的随机查询,比FIFO有更大的优势,这些消息都是存在于内核中,由“队列ID”来标识消息队列的实现包括创建或打开消息队列,添加消息,读取消息,控制消息四种操作创建或打开消息:使用msgget(),这里创建的消息队列的数量受到系统消息队列数量的限制添加消息:使用msgsnd()

2013-07-07 00:31:20 953

原创 linux进程通信----共享内存

共享内存是一种最为高效的进程间通信方式,因为进程可以直接读写内存,不需要任何数据的复制,为了在多个进程间交换信息,内核专门留出了一块内存区,这块内存进程可以直接将其映射到进程的私有空间中,可以直接读写,所以大大提高了效率,由于多个进程共享一个内存区,所以需要依靠某种同步机制,例如信号量,互斥锁等。共享内存原理示意图:实现共享内存有三个步骤:创建共享内存,使用shmget(),也

2013-07-06 14:08:18 1048

原创 linux进程通信---信号量

在多任务的操作系统中会运行多个进程,这些进程会有一些关联,如多个进程会为了完成一个任务会相互协作,这就是进程间的同步,有时为了争夺有限的系统资源(硬件或软件资源)会进入竞争状态,这就是进程的互斥关系       进程间的同步与互斥的根源在于临界资源的问题,临界资源是同一时刻只允许有有限个(通常是一个)进程可以访问,修改的资源,同通常包括硬件资源(处理器,内存,存储器,以及一些外围设备)和软件资

2013-07-05 15:20:30 1191

原创 linux进程通信----信号的处理

在了解了信号的产生和捕获之后,接下来就是对信号的具体操作了,特定的信号是与一定的进程相联系的,一个进程可以选择忽略一些信号和处理一些信号,进程可以选择如何处理信号,所以信号是与特定的进程相联系的,因此首先就要建立进程与信号之间的对应关系,这就是信号的处理ps:信号的注册和信号处理之间的区别:前者信号是主动方,后者是进程是主动方,信号的注册是进程选择处理特定信号之后特定信号的主动行为。信号处

2013-07-04 18:15:25 1662

原创 linux进程通信---几个发送信号的函数(kill,raise,alarm,pause)

信号:信号是unix中最古老的进程通信的一种方式,他是软件层次上对中断机制的模拟,是一种异步通信方式,信号可以实现用户空间进程和内核空间进程的交互,内核进程可以利用他通知用户空间进程发生了哪些系统事件,我们可以任何时候给进程发送信号而无需知道进程的状态,如果进程当前并未处于执行态,则信号则会由内核保存起来,如果进程是阻塞状态,那么信号传递会被延迟,直到阻塞结束时才会传递给进程。看一下kill

2013-07-03 20:42:52 29304 1

原创 linux进程通信----FIFO(有名管道)

无名管道只能用在具有亲缘关系的进程之间,这样就大大限制了管道的使用。有名管道突破了这种限制,可以实现互不相关的进程实现彼此的通信,管道可以通过路径名指定,在系统是可见的,建立管道之后就可以想普通文件一样进行读写,FIFO严格的遵守先进先出的原则,读总是从开始读取数据,写数据写入末尾,不支持lseek()文件定位操作。有名管道的创建使用mkfifo()函数类似于open函数,可以指定路径和打开的

2013-07-03 09:49:52 3085

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除