当前位置:  编程技术>综合
本页文章导读:
    ▪华为andriod智能手机通讯录整理程序      using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.IO;using System.Windows.Forms;namespace ClearRepeatItems{    public partial.........
    ▪线性表结构定义      #define MAXSIZE 100 //定义一个常量 //顺序表结构定义 typedef struct { int data[MAXSIZE]; //存放数据 int length; //存储顺序表长度 }Sqlist; //考试可以简写如下: .........
    ▪boost::asio 连接管理3      现在用newLISP编写TCP客户端来测试程序:chenshu@chenshu-beijing:~$ newlisp newLISP v.10.4.5 64-bit on Linux IPv4/6 UTF-8 libffi, execute 'newlisp -h' for more info. > (set 'socket (net-connect "localhost" 8888)) 3 > (net-se.........

[1]华为andriod智能手机通讯录整理程序
    来源: 互联网  发布时间: 2013-11-19

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;

namespace ClearRepeatItems
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        string fileName=string.Empty;

        private void openFile_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                fileName = openFileDialog1.FileName;
                UpdateItems(fileName);
            }
        }

        StringBuilder sb = new StringBuilder();
        List<string> listNames = new List<string>();
        string[] listNamesArray;
        private void UpdateItems(string fileName)
        {
            try
            {
                using (StreamReader sr = new StreamReader(fileName, Encoding.Default))
                {
                    string line;
                    while ((line = sr.ReadLine()) != null)
                    {
                        if (!listNames.Contains(line))
                        {
                            listNames.Add(line);
                        }
                    }
                }
            }
            catch (Exception e)
            {
                // Let the user know what went wrong.
                Console.WriteLine("The file could not be read:");
                Console.WriteLine(e.Message);
            }
            listNamesArray = listNames.ToArray();
            listBox1.Items.AddRange(listNamesArray);
        }

        private void saveFile_Click(object sender, EventArgs e)
        {
            string newFileName = Path.GetFileNameWithoutExtension(fileName) + "_New." + Path.GetExtension(fileName);
            FileStream fs = new FileStream(newFileName, FileMode.Append, FileAccess.Write, FileShare.Write);
            fs.Close();
            StreamWriter sw = new StreamWriter(newFileName, false, Encoding.Default);
            for (int i = 0; i < listNamesArray.Length; i++)
            {
                sb.AppendLine(listNamesArray[i]);
            }
            sw.Write(sb.ToString());
            sw.Close();

        }

        private void saveXml_Click(object sender, EventArgs e)
        {
            StringBuilder sbXml = new StringBuilder();
            sbXml.AppendLine("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>");
            sbXml.AppendLine("<Contacts>");
            for (int i = 0; i < listNamesArray.Length; i++)
            {
                string name = listNamesArray[i].Split(',')[0];
                string tel = listNamesArray[i].Split(',')[1];
                sbXml.AppendLine("<Contact>");
                sbXml.AppendLine("<Name>" + name + "</Name>");
                sbXml.AppendLine("<Starred>0</Starred>");
                sbXml.AppendLine("<PhoneList>");
                sbXml.AppendLine("<Phone Type=\"2\">" + tel + "</Phone>");
                sbXml.AppendLine("</PhoneList>");
                sbXml.AppendLine("<Account value=\"0\">");
                sbXml.AppendLine("<Name>Phone</Name>");
                sbXml.AppendLine("<Type>com.android.huawei.phone</Type>");
                sbXml.AppendLine("</Account>");
                sbXml.AppendLine("<GroupList>");
                sbXml.AppendLine("<GroupName>家庭</GroupName>");
                sbXml.AppendLine("</GroupList>");
                sbXml.AppendLine("</Contact>");
            }
            sbXml.AppendLine("</Contacts>");
            string newFileName = Path.GetFileNameWithoutExtension(fileName) + "_New.xml";
            FileStream fs = new FileStream(newFileName, FileMode.Append, FileAccess.Write, FileShare.Write);
            fs.Close();
            StreamWriter sw = new StreamWriter(newFileName, false, Encoding.UTF8);
     &nb

    
[2]线性表结构定义
    来源: 互联网  发布时间: 2013-11-19
#define MAXSIZE 100                     //定义一个常量
//顺序表结构定义
typedef struct
{
	int data[MAXSIZE];                 //存放数据
	int length;                        //存储顺序表长度
}Sqlist;
//考试可以简写如下:
//   int A[MAXSIZE];
//   int length;
//单链表结构定义
typedef struct LNode
{
	int data;
	struct LNode *next;
}LNode;
//双链表结构定义
typedef struct DLNode
{
	int data;
	struct DLNode *prior;
	struct DLNode *next;
}DLNode;

作者:jianxia_wzx 发表于2013-1-13 23:52:46 原文链接
阅读:0 评论:0 查看评论

    
[3]boost::asio 连接管理3
    来源: 互联网  发布时间: 2013-11-19

现在用newLISP编写TCP客户端来测试程序:

chenshu@chenshu-beijing:~$ newlisp
newLISP v.10.4.5 64-bit on Linux IPv4/6 UTF-8 libffi, execute 'newlisp -h' for more info.

> (set 'socket (net-connect "localhost" 8888))
3
> (net-send socket "a")

上面的代码略做解释:

1.(net-connect ...) 用来连接本地8888端口,返回的socket文件被赋值给了socket变量

2.(net-send可以对socket代表的连接发送字符串"a"


此时服务程序打印如下;

chenshu@chenshu-beijing:~/NetBeansProjects/CppApplication_4/dist/Debug/GNU-Linux-x86$ ./cppapplication_4 
count1:1
count2:2
count3:2
The new connection object is starting now.
~Connection
Operation canceled
count3:2

注意到了么,Connection的析勾函数被调用后,居然它的成员函数AfterReadChar还会被调用。错在哪里?

因为之前

async_read(socket, buffer(read_buffer_),  
           boost::bind(&Connection::AfterReadChar, this, _1));  
绑定了this指针。所以即便shared_ptr的引用计数为0导致析勾函数被调用,而this指针由于被bind_t保存,所以asio框架仍然能够调用到这个被删除的对象的成员函数。

这种行为是可怕的,因为下次可能就是程序崩溃。关键问题是应该还是将shared_ptr拿去绑定,这样只要一切都在shared_ptr的管理内,asio就不会错误的调用已经被销毁的对象。


所以下一篇就要解决这个问题。




作者:sheismylife 发表于2013-1-14 0:25:01 原文链接
阅读:6 评论:0 查看评论

    
最新技术文章:
▪error while loading shared libraries的解決方法    ▪版本控制的极佳实践    ▪安装多个jdk,多个tomcat版本的冲突问题
▪简单选择排序算法    ▪国外 Android资源大集合 和个人学习android收藏    ▪.NET MVC 给loading数据加 ajax 等待loading效果
▪http代理工作原理(3)    ▪关注细节-TWaver Android    ▪Spring怎样把Bean实例暴露出来?
▪java写入excel2007的操作    ▪http代理工作原理(1)    ▪浅谈三层架构
▪http代理工作原理(2)    ▪解析三层架构……如何分层?    ▪linux PS命令
▪secureMRT Linux命令汉字出现乱码    ▪把C++类成员方法直接作为线程回调函数    ▪weak-and算法原理演示(wand)
▪53个要点提高PHP编程效率    ▪linux僵尸进程    ▪java 序列化到mysql数据库中
▪利用ndk编译ffmpeg    ▪活用CSS巧妙解决超长文本内容显示问题    ▪通过DBMS_RANDOM得到随机
▪CodeSmith 使用教程(8): CodeTemplate对象    ▪android4.0 进程回收机制    ▪仿天猫首页-产品分类
▪从Samples中入门IOS开发(四)------ 基于socket的...    ▪工作趣事 之 重装服务器后的网站不能正常访...    ▪java序列化学习笔记
▪Office 2010下VBA Addressof的应用    ▪一起来学ASP.NET Ajax(二)之初识ASP.NET Ajax    ▪更改CentOS yum 源为163的源
▪ORACLE 常用表达式    ▪记录一下,AS3反射功能的实现方法    ▪u盘文件系统问题
▪java设计模式-观察者模式初探    ▪MANIFEST.MF格式总结    ▪Android 4.2 Wifi Display核心分析 (一)
▪Perl 正则表达式 记忆方法    ▪.NET MVC 给loading数据加 ajax 等待laoding效果    ▪java 类之访问权限
▪extjs在myeclipse提示    ▪xml不提示问题    ▪Android应用程序运行的性能设计
WEB前端 iis7站长之家
▪运行skyeye缺少libbfd-2.18.50.0.2.20071001.so问题    ▪sharepoint 2010 使用sharepoint脚本STSNavigate方法实...    ▪让javascript显原型!
▪kohana基本安装配置    ▪MVVM开发模式实例解析    ▪sharepoint 2010 设置pdf文件在浏览器中访问
▪spring+hibernate+事务    ▪MyEclipse中文乱码,编码格式设置,文件编码格...    ▪struts+spring+hibernate用jquery实现数据分页异步加...
▪windows平台c++开发"麻烦"总结    ▪Android Wifi几点    ▪Myeclipse中JDBC连接池的配置
▪优化后的冒泡排序算法    ▪elasticsearch RESTful搜索引擎-(java jest 使用[入门])...    ▪MyEclipse下安装SVN插件SubEclipse的方法
▪100个windows平台C++开发错误之七编程    ▪串口转以太网模块WIZ140SR/WIZ145SR 数据手册(版...    ▪初识XML(三)Schema
▪Deep Copy VS Shallow Copy    ▪iphone游戏开发之cocos2d (七) 自定义精灵类,实...    ▪100个windows平台C++开发错误之八编程
▪C++程序的内存布局    ▪将不确定变为确定系列~Linq的批量操作靠的住...    ▪DIV始终保持在浏览器中央,兼容各浏览器版本
▪Activity生命周期管理之三——Stopping或者Restarti...    ▪《C语言参悟之旅》-读书笔记(八)    ▪C++函数参数小结
▪android Content Provider详解九    ▪简单的图片无缝滚动效果    ▪required artifact is missing.
▪c++编程风格----读书笔记(1)    ▪codeforces round 160    ▪【Visual C++】游戏开发笔记四十 浅墨DirectX教程...
▪【D3D11游戏编程】学习笔记十八:模板缓冲区...    ▪codeforces 70D 动态凸包    ▪c++编程风格----读书笔记(2)
▪Android窗口管理服务WindowManagerService计算Activity...    ▪keytool 错误: java.io.FileNotFoundException: MyAndroidKey....    ▪《HTTP权威指南》读书笔记---缓存
▪markdown    ▪[设计模式]总结    ▪网站用户行为分析在用户市场领域的应用
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3