转自:http://developer.51cto.com/art/200912/170762.htm
Ruby字符串处理函数总结列表分享
Ruby字符串处理函数包括返回字符串长度函数;判断字符串中是否包含另一个串函数;字符串插入;字符串分隔,默认分隔符为空格等等。
str.length => integer
str.include? other_str
=> true or false
"hello".include? "lo"
#=> true
"hello".include? "ol"
#=> false
"hello".include? ?h
#=> true
Ruby语言对于编程人员来说是一项非常有用的函数。学好这项语言可以帮助我们实现简便轻松的编写方式。下面我们向大家介绍一下Ruby字符串处理函数的一些基本概念。
Ruby字符串处理函数1.返回字符串的长度
Ruby字符串处理函数2.判断字符串中是否包含另一个串
Ruby字符串处理函数3.字符串插入:
str.insert(index, other_str)
=> str "abcd".insert(0, 'X')
#=> "Xabcd" "abcd".insert(3, 'X')
#=> "abcXd" "abcd".insert(4,&nb ......
学习wxWidgets的时候想用它连接数据库,不过wxWidgets的学习资料非常少,和ODBC有关的就更少,网络上找到的都不知道为什么无法正确运行。这是在CSDN上朋友的帮助下搞定的,自己验证过可以正确编译和运行、成功读取数据内容的代码:
wxWidgets版本:2.8.10(2.9以后的版本不支持ODBC);
将wxWidgets\include\wx\msw\setup.h中的#define wxUSE_ODBC 设置为1,然后再进行编译;
工程配置(事实上,将一个Sample项目拖过来进行修改更方便):
项目属性-配置属性-链接器-输入-附加依赖项添加以下内容:
wxmsw28d_core.lib
wxbase28d.lib
wxbase28d_odbc.lib
wxtiffd.lib
wxjpegd.lib
wxpngd.lib
wxzlibd.lib
wxregexd.lib
wxexpatd.lib
winmm.lib
comctl32.lib
rpcrt4.lib
wsock32.lib
odbc32.lib
项目属性-配置属性-链接器-常规-附加库目录添加以下内容(注意正确对应自己工程和库的相对路径):
..\..\wxWidgets\lib\vc_lib
项目一共分了4个文件,两个类,代码如下:
theFrame.h
#ifndef THEFRAME_2009_12_26_H_
#define THEFRAME ......
/************************************************************************
* Description: 访问zip中的htm 之 Widgets学习
* Author: 陈相礼
* Compiled: VC8 + wxWidgets2.8.10
* Date: 04/02/10
************************************************************************/
/************************************************************************
* Description: 访问zip中的htm 之 Widgets学习
* Author: 陈相礼
* Compiled: VC8 + wxWidgets2.8.10
* Date: 04/02/10
************************************************************************/
#include "wx/wx.h"
#include "wx/image.h"
#include "wx/html/htmlwin.h"
#include "wx/fs_zip.h"
class AppMain : public wxApp
{
public:
virtual bool OnInit();
protected:
private:
};
class FrameMain : public wxFrame
{
public:
FrameMain( const wxString& title, const wxPoint& pos, const wxSize& size );
void OnQuit( wxCommandEvent& event );
void OnBack( wxCommandEvent& event );
void OnForw ......
/************************************************************************
* Description: 访问zip中的htm 之 Widgets学习
* Author: 陈相礼
* Compiled: VC8 + wxWidgets2.8.10
* Date: 04/02/10
************************************************************************/
/************************************************************************
* Description: 访问zip中的htm 之 Widgets学习
* Author: 陈相礼
* Compiled: VC8 + wxWidgets2.8.10
* Date: 04/02/10
************************************************************************/
#include "wx/wx.h"
#include "wx/image.h"
#include "wx/html/htmlwin.h"
#include "wx/fs_zip.h"
class AppMain : public wxApp
{
public:
virtual bool OnInit();
protected:
private:
};
class FrameMain : public wxFrame
{
public:
FrameMain( const wxString& title, const wxPoint& pos, const wxSize& size );
void OnQuit( wxCommandEvent& event );
void OnBack( wxCommandEvent& event );
void OnForw ......
15本Delphi书籍(PDF格式)下载 (转)
文件名: Delphi组件参考大全.rar
下载地址: http://www.rayfile.com/files/678ca1e3-f73f-11de-9d02-0014221b798a/
文件名: Delphi信息系统开发实例精选.rar
下载地址: http://www.rayfile.com/files/fb328f02-f73e-11de-8a76-0014221b798a/
文件名: Delphi数据库系统开发完全手册.rar
下载地址: http://www.rayfile.com/files/97443754-f73e-11de-984e-0014221b798a/
文件名: DELPHI数据库系统开发案例精选.rar
下载地址: http://www.rayfile.com/files/7088abc2-f73e-11de-9fe9-0014221b798a/
文件名: Delphi数据库开发实例解析.rar
下载地址: http://www.rayfile.com/files/e5ec6f75-f73d-11de-82ad-0014221b798a/
文件名: Delphi开发经验技巧宝典.rar
下载地址: http://www.rayfile.com/files/cba8ed9c-f73d-11de-a06f-0014221b798a/
文件名: Delphi开发技术大全.rar
下载地址: http://www.rayfile.com/files/9ff2c7ca-f73d-11de-9b6b-0014221b798a/
文件名: DELPHI接口技术开发实例解析 ......
技术交流,DH讲解. 哈哈,我承认我是标题党.
最近看天书夜读里面是对C语言的代码反汇编,不错,可惜Delphi没有这样的书,那我们自己动手吧.
首先进入For循环了. Function TestFor( a, b: Integer ): Integer ;
Var
I: Integer ;
Begin
Result := a + b ;
For I := 0 To 49 Do
Result := Result + I ;
End ;
{$R *.dfm}
Procedure TForm1.btn1Click( Sender: TObject ) ;
Begin
ShowMessage( IntToStr( TestFor( 1, 2 ) ) ) ;
End ;
反汇编代码:
Unit4.pas.28: Result := a + b ;
00523AE0 03D0 add edx,eax //执行a+b,但是我很奇怪为什么不用add eax,edx 这样最后就不用执行那句mov eax,edx了,节约一句
Unit4.pas.29: For I := 0 To 49 Do
00523AE2 33C0 xor eax,eax //清除eax,来充当I这个循环变量
Unit4.pas.30: Result := Result + I ;
00523AE4 03D0 add edx,eax //累计和,并把循环变量+1,这里就是循环体的执行代码
00523AE6 40 inc eax
Unit4.pas.29: For I := 0 To 49 Do
00523AE7 83F832 cmp eax,$32 //边界比较,不等于就跳回去,继续执行循环体代码.
00523AE ......
消息的处理流程,流程如下:
其派发处理过程详细如下:
注意:TWinControl里面WndProc有调用系统API DefWindowProc,该函数调用缺省的窗口过程来为应用程序没有处理的任何窗口消息提供缺省的处理。而TWinControl里面DefaultHandler又调用了系统API CallWindowProc,该函数CallWindowProc将消息信息传送给指定的窗口过程。
最后消息处理过程,以WM_LBUTTONDOWN消息为例如下:
这里就可以注意一下:MouseDown()函数是一个dynamic方法,因此可以先覆盖MouseDown()函数来处理自己的一些事件,然后用inherited来调用MouseDown()来执行组件里面的OnMouseDown代码
......