C语言链表 — 头插法与尾插法

说明:头插法与尾差法的差别仅仅在于以下代码的红色部分。

头插法程序

#include "stdio.h"
#include "stdlib.h"

typedef struct node{
	int x;
	struct node *next;
}F;

int main(int argc, char* argv[])
{
	F head, *p, *p1;
	p1 = (F *)malloc( sizeof(F) );
	p1->next = NULL;
	head.next = p1;
	p1->x = 0;
	for (int i = 0; i < 5; i ++) 	{ 		
                p = (F *)malloc( sizeof(F) );
                p->next = NULL;
		p->x = i + 1;
		p->next = head.next;
		head.next = p;
	}
	for (p=head.next; p!=NULL; p=p->next)
	{
		printf("%d\n", p->x);
	}
	return 0;
}

尾插法程序

#include "stdio.h"
#include "stdlib.h"

typedef struct node{
	int x;
	struct node *next;
}F;

int main(int argc, char* argv[])
{
	F head, *p, *p1;
	p1 = (F *)malloc( sizeof(F) );
	p1->next = NULL;
	head.next = p1;
	p1->x = 0;
	for (int i = 0; i < 5; i ++) 	{ 		
                p = (F *)malloc( sizeof(F) );
                p->next = NULL;
		p->x = i + 1;
		p1->next = p;
		p1 = p1->next;
	}
	for (p=head.next; p!=NULL; p=p->next)
	{
		printf("%d\n", p->x);
	}
	return 0;
}

VC++日志类(CLogFile)

功能说明:
此类可以实现大多数应用程序日志功能,可以每天创建一个Log文件,支持中文内容。

调用方法:
1、首先在要调用的页面加入引用:#include “LogFile.h”
2、然后,写入下列代码可以正常调用:CLogFile::WriteLog(“IO错误,文件打开失败!”);

程序代码:
LogFile.h头文件

// LogFile.h: interface for the CLogFile class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_LOGFILE_H__6B67A565_13A5_4A20_9C35_3F4FDD9057C3__INCLUDED_)
#define AFX_LOGFILE_H__6B67A565_13A5_4A20_9C35_3F4FDD9057C3__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CLogFile  
{
public:
	CLogFile();
	virtual ~CLogFile();
	static CString GetFileName();
    static CString GetFilePath();
    static BOOL WriteLog(CString LogText);
};

#endif // !defined(AFX_LOGFILE_H__6B67A565_13A5_4A20_9C35_3F4FDD9057C3__INCLUDED_)

LogFile.cpp文件

// LogFile.cpp: implementation of the CLogFile class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "lineprotection.h"
#include "LogFile.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CLogFile::CLogFile()
{

}

CLogFile::~CLogFile()
{

}
//获取文件名称
CString CLogFile::GetFileName()
{
	CString m_sFileName;
    m_sFileName = CTime::GetCurrentTime().Format("%Y-%m-%d") + ".log";

	return m_sFileName;
}
//获取应用程序所在路径
CString CLogFile::GetFilePath()
{   
	CString m_FilePath;
    GetModuleFileName(NULL,m_FilePath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
    m_FilePath.ReleaseBuffer();
    int m_iPosIndex;
    m_iPosIndex = m_FilePath.ReverseFind('\\'); 
    m_FilePath = m_FilePath.Left(m_iPosIndex) + "\\Log";
    return m_FilePath;
}
BOOL CLogFile::WriteLog(CString LogText)
{
	try
	{
		CFile m_File;
		CStdioFile m_SFile;
		CFileFind m_FileFind;
		CString m_sErrorMessage;
		CString m_sFileName = GetFileName();
		CString m_sFilePath = GetFilePath();
		CString m_sCurrentTime = CTime::GetCurrentTime().Format("%Y-%m-%d %X");

		m_sErrorMessage = "[" + m_sCurrentTime + "]" + "\t";
		m_sErrorMessage += LogText + "\r";
        if(!m_FileFind.FindFile(m_sFilePath))
		{
			CreateDirectory(m_sFilePath,NULL);
		}

		if(!m_SFile.Open(m_sFilePath + "\\" +m_sFileName,CFile::modeReadWrite))
		{
			m_SFile.Open(m_sFilePath + "\\" + m_sFileName,
				CFile::modeCreate | CFile::modeReadWrite | CFile::typeText);
		}

		m_SFile.SeekToEnd(); 
        char* m_szMessage;
        m_szMessage=(LPTSTR)(LPCTSTR)m_sErrorMessage;
        m_SFile.Write(m_szMessage,lstrlen(m_szMessage));   
        m_SFile.Close();
	}
	catch(CFileException fileException)
	{
		return false;
	}
    return true;
}

Zend Framework如何在application.ini配置mysql数据库连接

[php]

[production]
#PHP错误是否显示,您所在时区,bootstrap引导文件配置(1为true,0为false)
phpSettings.error_reporting = 8191
phpSettings.DATE.timezone = “Asia/Shanghai”
phpSettings.display_startup_errors =1
phpSettings.display_errors =1
bootstrap.path = APPLICATION_PATH”/Bootstrap.php”
bootstrap.class = “Bootstrap” #这个名称请对应到上面Bootstrap.php文件中的类

#项目载入的模块,插件,错误提示信息配置
resources.FrontController.moduleDirectory = APPLICATION_PATH”/modules”
resources.FrontController.moduleControllerDirectoryName = “controllers”
resources.FrontController.defaultModule = “default”
resources.FrontController.plugins.common = “Custom_Controller_Plugin_Layout”
resources.FrontController.noErrorHandler = 1
resources.FrontController.throwExceptions = 1
#resources.FrontController.noViewRenderer = false

#网站页面标题,编码以及ViewHelper的设置(这些可有可无.我们可以在不同的模块中设置不同)
resources.view.title = “Kylingood”
resources.view.encoding = “UTF-8”
resources.view.helperPathPrefix = “Custom_View_Helper_”
resources.view.helperPath = “Custom/View/Helper/”

#网站前台模块(不同模块对应不同layout,与不同的ViewHelper)
resources.view.params.DEFAULT.basePath = APPLICATION_PATH”/modules/default/views/”
resources.view.params.DEFAULT.helperPathPrefix =”Custom_View_Helper_Default_”
resources.view.params.DEFAULT.helperPath = “Custom/View/Helper/Default/”
resources.view.params.DEFAULT.layout = “default”
resources.view.params.DEFAULT.layoutPath = APPLICATION_PATH”/modules/default/views/layouts”

#用户后台模块(同上)
resources.view.params.user.basePath = APPLICATION_PATH”/modules/user/views/”
resources.view.params.user.helperPathPrefix = “Custom_View_Helper_User_”
resources.view.params.user.helperPath = “Custom/View/Helper/User/”
resources.view.params.user.layout = “default”
resources.view.params.user.layoutPath = APPLICATION_PATH”/modules/user/views/layouts”

#您数据库的配置参数
resources.db.adapter = PDO_MYSQL
resources.db.params.host = “localhost”
resources.db.params.username = “root”
resources.db.params.password = “uniono”
resources.db.params.dbname = “blog”
resources.db.params.prefix = “oophp_”
resources.db.isDefaultTableAdapter = TRUE
resources.db.params.driver_options.1002 = “SET NAMES UTF8;”

#网站多语言配置(前期学习可以不管,甚至于去掉)
resources.translate.registry_key = “Zend_Translate”
resources.translate.adapter = array
resources.translate.options.scan = “directory”
resources.translate.locale = “zh_CN”
resources.translate.data.zh_CN = APPLICATION_PATH”/languages/zh_CN.php”
resources.translate.data.en_US = APPLICATION_PATH”/languages/en_US.php”

#网站生成的日志(前期学习可以不管,甚至于去掉)
[logger]
priority = 7
file = “log/debug.txt”
;EMERG=0;ALERT=1;CRIT=2;ERR=3;WARN=4;NOTICE=5;INFO=6;DEBUG=7;
type = firebug
;stream,firebug

#网站生成Cache配置(前期学习可以不管,甚至于去掉)
[cache]
type = file
dir = APPLICATION_PATH”/cache/”
pagedir = APPLICATION_PATH”/cache/page/”
lifetime = 7200
automatic_serialization = TRUE

[/php]

Unslider – 非常实用的超小JQuery轮播slider插件!

  1. 引入jQuery 和 Unslider
    <script src="//code.jquery.com/jquery-latest.min.js"></script>
    <script src="//unslider.com/unslider.js"></script>
  2. 准备HTML代码
    <div> 
      <ul> 
        <li><img src="slider_1.jpg" /></li> 
        <li><img src="slider_2.jpg" /></li> 
        <li><img src="slider_3.jpg" /></li> 
      </ul> 
    </div>
  3. 添加CSS样式
    .banner { position: relative; overflow: auto; } 
      .banner li { list-style: none; } 
        .banner ul li { float: left; }
  4. 启动!
    $(function() { 
      $('.banner').unslider(); 
    });

官方网站:http://www.bootcss.com/p/unslider/

Font Awesome:精心打造的 Twitter Boostrap 矢量字体图标

Font Awesome 是一套专门为 Twitter Boostrap 设计的图标字体库。这套图标字体集几乎囊括了网页中可能用到的所有图标,除了包括 Twitter Boostrap 的默认图标外,还有社交网络图标、Web 应用程序图标和编辑器图标等等,可以免费用于商业项目。

主要特色:

  • ✓  一种字体,249个图标,是网页操作的象形语言;
  • ✓  纯 CSS 控制,能够轻松定义图标的颜色、大小、阴影以及任何 CSS 能够实现的效果;
  • ✓  无限缩放,矢量图标在任何尺寸下都一模一样;
  • ✓  免费使用,包括商业和非商业项目;
  • ✓  支持 Internet Explorer 7 浏览器;
  • ✓  能够在 Retina 屏幕完美呈现;
  • ✓  完全兼容 Twitter Boostrap 最新版本;
  • ✓  对设计师友好,设计师能够轻松使用;
  • ✓  和其它图标字体不同,兼容屏幕阅读器;

使用方法

  使用 CSS:

  1. 拷贝 Font Awesome 字体目录到项目中;
  2. 拷贝 font-awesome.min.css 文件到项目中;
  3. 修改 font-awesome.min.css 文件中的字体路径到正确的位置;
  4. 在页面的 head 里引入 font-awesome.min.css 文件:

<link href="../css/bootstrap.min.css" rel="stylesheet" />
<link href="../css/font-awesome.min.css" rel="stylesheet" />

  使用 LESS:

  1. 拷贝 Font Awesome 字体目录到你的项目中;
  2. 拷贝 font-awesome.less 文件到 bootstrap/less 目录。
  3. 打开 bootstrap.less 文件并替换 @import “sprites.less”; 为 @import “font-awesome.less”;
  4. 编辑 elusive-webfont.less 文件的 @FontAwesomePath 变量为字体路径:

@FontAwesomePath: "../font";

然后重新进行 LESS 编译就可以了。

Github     官方主页     猛击下载

如何 GitHub 无法访问,可能需要配置 hosts 才能访问:

207.97.227.239 github.com
207.97.227.252 nodeload.github.com
207.97.227.243 raw.github.com
204.232.175.78 documentcloud.github.com

Zend Framework插入当前时间报错 | ORA-01861: 文字与格式字符串不匹配

无法插入当前时间。

错误提示:ORA-01861: 文字与格式字符串不匹配

解决办法:
[php]
$data = array(
‘ID’ => time(),
‘TITLE’ => $newyqgg->getTitle(),
‘CONTENT’ => $newyqgg->getContent(),
‘AUTOR’ => $newyqgg->getAutor(),
‘CREATETIME’ => new Zend_Db_Expr(“sysdate”), // 此处使用Zend_Db_Expr
‘STATUS’ => $newyqgg->getStatus(),
‘BZ’ => $newyqgg->getBz()
);
[/php]

ZendFramework部署项目 | 如何使用ZF tools

zf create project myzf 将创建一个新的ZF工程.

zf create action add index 在index controller 中创建一个add action

 

Zend_Tool for windows:

 

1、在C盘下面创建一个新的目录zendframework,如c:/zendframework

2、从网上下载ZendFramework-1.8.0-minimal.zip,然后解压就会出来一个bin文件夹和一个library文件夹,把这两个文件夹拷贝到c:/zendframework中。

3、把c:/zendframework/bin添加到环境变量中,右击“我的电脑”=>“属性”=>“高级”=>“环境变量”,双击path,然后把c:/zendframework/bin添加进去。完成。

 

Zend_Tool for OS X (Linux is similar)
• Extract the downloaded archive file, ZendFramework-1.8.0b1-minimal.zip in your Downloads
directory by double clicking on it.
• Copy to /usr/local/ZendFrameworkCli by opening Terminal and typing:
sudo cp -r ~/Downloads/ZendFramework-1.8.0-minimal /usr/local/
ZendFrameworkCli
• Edit your bash profile to provide an alias:
• From Terminal, type: open ~/.bash_profile
• Add alias zf=/usr/local/ZendFrameworkCli/bin/zf.sh to the end of the file
• Save and exit TextEdit.
• Exit Terminal.

 

在bin目录中有两个文件:zf.bat和zf.sh,zf.bat是在windows中运行的,另一个是在linux中运行的。

 

测试一下,进入命令行,输入:zf show version

它将显示Zend Framework Version: 1.8.0

 

zf create project myzf 将创建一个新的ZF工程.

zf create action add index 在index controller 中创建一个add action

 

其它的详细信息请参考:http://framework.zend.com/manual/en/zend.tool.framework.html

修改oracle10g express版本数据库字符集

Oracle 10g EXPress Edition是Oracle专门为小型用户提供的免费版本。Oracle XE十分小巧,安装简单,可供第三方软件开发商部署较小的应用。

不过Oracle XE目前的beta2缺省安装的字符集是WE8MSWIN1252,不是中文字符集,并且不能通过直接运行 alter database character set ZHS16GBK ; 来修改,因为ZHS16GBK不是缺省字符集的超集。过去流传很广的直接修改sys用户下的PROPS$表的方法,也会给字符集的变更留下很多潜在的问题.

不过在安装完Oracle XE后,可以在sqlplus(即Oracle XE的run SQL command line)中, 进行如下的操作来修改字符集:

connect sys/sys as sysdba

shutdown immediate

startup mount

alter system enable restricted session ;

alter system set JOB_QUEUE_PROCESSES=0;

alter system set AQ_TM_PROCESSES=0;

alter database open ;

alter database character set internal_use ZHS16GBK ;

shutdown immediate

startup

这样字符集的修改就完成了

无法查看目录,提示:vsftpd Transfer done (but failed to open directory)

系统是CentOS,是RH派系的。把vsftpd安装配置好了,以为大功告成,但客户端访问提示如下错误:
vsftpd Transfer done (but failed to open directory)
原因是CentOS系统安装了SELinux,因为默认下是没有开启FTP的支持,所以访问时都被阻止了。
//首先查看SELinux设置
# getsebool -a|grep ftp
发现ftpd_disable_trans –> off 或者 ftp_home_dir–>off

解决方法:
//使用setsebool命令开启
# setsebool ftpd_disable_trans 1
或者
# setsebool ftp_home_dir 1
再次查看当前状态是否是on的状态
# getsebool -a|grep ftp
ftpd_disable_trans –> on
或者
ftp_home_dir–>on

//setsebool使用-P参数,无需每次开机都输入这个命令
# setsebool -P ftpd_disable_trans 1
或者
# setsebool -P ftp_home_dir 1
# service vsftpd restart