博文

深夜了,哥们我写了个replace算法。一直以来想写没机会(2010-01-29 03:20:00)

摘要:#include "stdafx.h"#include "string.h"#include "conio.h"#include "math.h" int indexOf(unsigned char* src, unsigned char* find);int replace( char* src,  char* find,  char* rpc);int replaceAll( char* src,  char* find,  char* rpc); int  indexOf(unsigned char* src, unsigned char* find)  {    int ret = -1;   char* offsetPtr = NULL;    if (src != NULL && find != NULL)   {    offsetPtr = strstr((char*)src, (char*)find);    if (offsetPtr != NULL)   {    ret = strlen((char*)src) - strlen((char*)offsetPtr);  }  }    return ret;  } int replaceAll( char* src,  char* find,  char* rpc){ int pos = replace(src, find, rpc);  if (pos != -1) {  pos = replaceAll(src + pos + strlen(rpc), find,  rpc); }  return pos;} int replace(......

阅读全文(1882) | 评论:1

再展出一个解释程序(暨庆祝偶滴BLOG点击次数超过10万)(2008-08-20 19:44:00)

摘要:  发现2006年3月写的COBOL语言解释程序在偶滴BLOG所有文章中人气最高,偶滴blog点击次数刚刚超过10万,为了祝贺。时隔2年半后再展示一个解释程序,html解释程序。html解释程序是 易扩网络搜索(2007年本人自主开发的搜索引擎)的一个小部分, 事实上为了网络搜索而使用整套解释程序是用高射炮打蚊子的行为,用DOM和regx应该能够实现,当时有这个想法,不过没有付诸行动。 下面是解释系统的框架图 Copyright (C) 2007-8 SGPRO 这个程序比较庞大,所以这里只能展示语法分析部分。 HTML源代码虽然有一套语法规则,但是仍然可以写的相当随意,所以解释程序容错能力要很高,如果是xml语法非常严格,相对应的解释程序应该简单的多(虽然我没有实现过) 语法分析(Syntax Analysis)的代码,不能单独编译,需要词法分析和错误处理等模块协作 下面2个数据结构必须说明  //1、 有限自动机,从html源代码中读取有效单词,目前只支持2种,一种是HTML有效单词,一种是Javascript有效单词 typedef struct  { BOOL (*ReadHTMLToken)(Token *argToken, BOOL filterSpace); BOOL (*ReadJavaScriptToken)(Token *argToken, BOOL filterSpace);}LangDFA; // 2、语法解释器typedef struct{ HTMLObjectTree ObjectTree;   // 对象树,属于解释器的目标生成对象 ObjectList     ObjectArr;              // 对象列表, 对象树的列表结构 HTMLInterpreterError *IntpErr;    // 错误对象句柄 BOOL (*start)(BOOL (*LoadHTMLCode)(......

阅读全文(2110) | 评论:1

web聊天程序,Ajax实现即时通讯(2007-12-03 16:39:00)

摘要:  Ajax 是用javascript和DOM,XML实现的web客户端与服务器端的异步通讯技术。 不是什么新东西,老技术,新面孔而已。 对于构建类似桌面应用的web程序来说,Ajax无疑是有效的工具, 处理强交互性做得很突出。 Google是Ajax的先行者, 大名鼎鼎的Google Map则是Ajax的优秀作品。 相信Ajax的广泛运用将进一步改变web程序的面孔,同时过去被认为只有桌面程序更加能满足要求的构架方案如今Ajax可以成为另一种不错的选择。桌面程序则再次面临市场萎缩,与此同时b/s在继续拓宽其领地。  Ajax不是什么新技术, 只要客户端的浏览器支持javascript,支持dom就能完成Ajax的核心工作之一, 而服务器端代码你可以选择3p技术的任何一种, 是极其自由的。以前的web聊天程序, 你或许要常常刷新页面来获知你是否有了新的消息,而一次刷新则意味着一次和页面载入,这显然不符合即时通讯的要求,在这里Ajax则有了发挥的空间,这是我为什么选择它的原因。  如果你熟悉Ajax, 请允许我上面说了这么多废话,因为我无法保证每个读者都熟悉它。当然不乏精通人士,敬请纠正我的错误,如果存在的话。 现在我将发布我的Ajax作品。 请不要误以为我在炫耀什么,这并不是什么高级的作品,事实上我只是想发布它,因为很长时间我的blog没有更新了,当然如果我的行为对你的进步产生了影响,那将会使我感觉到快乐。最后要说的是, 著作权,中国人不太重视这个, 我想说的是,不管这个作品品质如何,只要它是出自某个人辛苦的劳作而且未将它授权给别人,那它就属于作者, 你需要适当限制发生作者不愿看到的行为,特别是商业目的。在这个实例当中客户端我使用了ms的浏览器, 服务器端则采用ms的 jscript一共7个程序文件Ajax.js   :  Ajax程序的中心库,我希望这是一个通用框架的核心组成部分AjaxApp.js : 本程序响应服务器异步通讯的代码, 负责本程序客户端的大部分工作frmInpCheck.js: 表单输入的控制模块pageCtl.js: 页面元素的控制模块, 集中体现Ajax中DOM的运用util.js: 其他工具模块web-sgn.asp: 客户端页面代码,利用Ajax交互的页面web-server-s......

阅读全文(8124) | 评论:16

VB.NET 对 Oracle 数据库的访问策略(2006-12-01 12:57:00)

摘要:关键字:VB.NET, 数据库编程, Oracle,  DataSet, DataGrid, DataAdapter, OracleConnection 简介:    VB.NET 同样使用 .NET数据库组件,这和.NET FrameWork支持的其他语言上没有区别。只是语法上的差异。    对Oracle数据库的访问, .NET FrameWork提供了两种方法,一种是使用Ado.Net,另一种是OracleConnection 套件。 类似于微软专门为Sql Server提供的 SqlDataConnection。 两种方法非常类似。下面只介绍 OracleConnection.    1、先创建 OracleConnection对象, 使用连接字符串连接到指定数据库。    2、建立OracleDataAdpter  或者 OracleDataCommand. 构造参数为连接对象,sql语句    3、建立DataSet或者 OracleDataReader 读取OracleDataAdpter和OracleDataCommand采集的数据。 DataSet可以集合多张表。    一下是一个具体的实例程序: ================================= ' Copyright (C)  2006-11  sgpro Imports System.Data.OracleClient.OracleDataAdapterImports System.Data.DataSet   Public Class OracleSample    Inherits System.Windows.Forms.Form #Region " Windows フォーム デザイナで生成されたコード "     Public Sub New()        MyBase.New()    &nb......

阅读全文(1363) | 评论:1

帐单导出(2006-10-17 21:50:00)

摘要:  财务管理系统1.2 For SGWINDOW 2.0虽然提供了多帐单操作,但是不能打印帐单报表,因此在财务管理系统1.2 For SGWINDOW2.0版本上做帐单数据的导出功能,帐单数据导出之后可以当作报表打印,暂定版本为1.3。在商用系统当中,有专门的报表管理器。这里的帐单导出,只做HTML表格的生成。导出文件为HTML格式,用浏览器打开。      下面是帐单导出的实现代码   void On_Export() {        finaitem   instance = {0L,"",""};        FILE *fdatabas;        int flag;        int oamt =0,iamt = 0;        char outstr[128] = "";               ChangeReckName();          if (access(User.DatabaseName, 4) == -1)        {               Messagebox(GetAppVersion(false), "帐单文件不存在,导出失败", SGMSGBOX_OKONLY,SGMSGBOXICON_critical);            ......

阅读全文(2963) | 评论:0

财务管理系统1.2(C)(2006-03-29 15:49:00)

摘要:软件下载地址: http://www.programfan.com/wysoft/showwysoft.asp?id=1430 软件运行画面: C程序源代码: /*Copyright (C) 2005-8, 2006-3 SGPRO*/ #include <stdio.h>#include <math.h>#include <ctype.h>#include <dos.h>#include <sgwindow.h>   /*SGWINDOW 程序必须的头文件*/#include "savescr.c" #define VERSIONSTRING   "财务管理系统 1.2 For SGWINDOW 2.0\nCopyright (C) 2005-8 - 2006-3 SGPRO"#define APPNAME  "财务管理系统 1.2 For SGWINDOW 2.0"#define VERSIONVAL      1#define VERSIONSUBVAL   2 #define ID_ABOUT 10000#define ID_FRMOPRT 10010#define ID_FRMVIEW 10011#define ID_OPTNVIEWALL 10020#define ID_OPTNVIEWOUT 10021#define ID_OPTNVIEWINC 10022#define ID_OPTNVIEWAMT 10023#define ID_OPTNOUTG 10024#define ID_OPTNINC 100025#define ID_LABFINA 10030#define ID_LABCOMMENT 10031#define ID_LABDATETIP 10032#define ID_LABRECKTIP 10033#define ID_LABCURRECK 10034#define ID_TXTFINA 10040#define ID_TXTCOMMENT 10041#define ID_TXTRECKNAME 10042#define......

阅读全文(4214) | 评论:1

年度奉献 --- 通讯录管理系统(2005-12-30 23:28:00)

摘要:通讯录管理系统1.0 可以为您方便地,安全地管理你的通讯录, 是您的家庭好帮手.本系统使用Visual C++(MFC)开发, ODBC开放式数据库源下载包里面包含系统所有C++源代码, 没有制作安装程序包, 运行时需要配备VC平台.欢迎C++爱好者参考和提出意见通讯录管理系统的下载地址为:http://upload.programfan.com/upfile/200512302242136.rar ......

阅读全文(3534) | 评论:3