详解crifan的C#库:crifanLib.cs

版本:v1.0

Crifan Li

摘要

本文主要介绍了我,crifan,的C#库:crifanLib.cs的功能和用法。

[提示] 本文提供多种格式供:
在线阅读 HTML HTMLs PDF CHM TXT RTF WEBHELP
下载(7zip压缩包) HTML HTMLs PDF CHM TXT RTF WEBHELP

HTML版本的在线地址为:

http://www.crifan.com/files/doc/docbook/crifanlib_csharp/release/html/crifanlib_csharp.html

有任何意见,建议,提交bug等,都欢迎去讨论组发帖讨论:

http://www.crifan.com/bbs/categories/crifanlib_csharp/

2013-08-20

修订历史
修订 1.0 2013-08-20 crl
  1. 从C#学习心得提取出来成立独立的book
  2. 更新了N多函数的代码和用法

目录

前言
1. 本文目的
2. crifanLib.cs的由来
3. 最新最全的crifanLib.cs完整代码下载
4. crifanLib.cs所包含的引用(using)
4.1. crifanLib.cs中的宏定义
4.2. crifanLib.cs中引用的所有的库
4.3. crifanLib.cs中各个宏的解释
4.3.1. USE_GETURLRESPONSE_BW
4.3.2. USE_HTML_PARSER_SGML和USE_HTML_PARSER_HTMLAGILITYPACK
4.3.3. USE_DATAGRIDVIEW
4.3.4. USE_JSON
5. crifanLib.cs中的全局变量,初始化代码,私有函数
1. crifanLib.cs之TreeView/TreeNode
1.1. 查找TreeNode的根节点:findRootTreeNode
1.2. 取消节点的高亮:unHighlightNode
1.3. 高亮TreeNode:highlightNode
2. crifanLib.cs之Unit Conversion
2.1. 盎司转千克:ounceToKiloGram
2.2. 千克转盎司:kiloGramToOunce
2.3. 英镑转千克:poundToKiloGram
2.4. 千克转英镑:kiloGramToPound
2.5. 英尺转厘米:inchToCm
2.6. 厘米转英尺:cmToInch
3. crifanLib.cs之Values
3.1. 和Javascript中Math.Random()等价的函数:mathRandom
4. crifanLib.cs之Time
4.1. 计算(代码执行)时间消耗(的时间段/时长):elapsedTimeSpanInit,getElapsedTimeSpan
4.2. 获得(从epoch时间纪元以来的)(以毫秒为单位的)当前时间:getCurTimeInMillisec
4.3. 将毫秒转换为(自1970年1月1日以来的)本地时间:milliSecToDateTime
4.4. 将Javascript中的"new Date(xxx)"转换为C#中的DateTime变量:parseJsNewDate
5. crifanLib.cs之String
5.1. 格式化字符串中间对齐左右填充:formatstring
5.2. 初始化null的字符串位空字符串"":emptyStringArray
5.3. 将感叹号"!"强制编码为"%21":encodeExclamationMark
5.4. 将"%21"解码为感叹号"!":decodeExclamationMark
5.5. 从字符串中提取单个的子字符串:extractSingleStr
5.6. 组合参数列表(变成&xxx=yyy):quoteParas
5.7. 去除文件名或路径中非法字符:removeInvChrInPath
5.8. 把\xXX转换为对应的字符:filterEscapeSequence
5.9. 从文件的URL地址中提取文件名:extractFilenameFromUrl
6. crifanLib.cs之Array
6.1. 从给定字符串中,从指定位置,提取指定长度的子字符串:getSubStrArr
7. crifanLib.cs之Cookie
7.1. 从Url中提取主机Host:extractHost
7.2. 从Url中提取域Domain:extractDomain
7.3. 从Url中提取域Domain的URL:getDomainUrl
7.4. 将Cookie的某一项的值,添加到Cookie中:addFieldToCookie
7.5. 判断字符串是否是有效的cookie的某一项:isValidCookieField
7.6. 校验Cookie的名字是否有效/合法:isValidCookieName
7.7. 解析Cookie的名字和值:parseCookieNameValue
7.8. 解析Cookie的项和域值:parseCookieField
7.9. 解析(SetCookie的)字符串为单个Cookie值:parseSingleCookie
7.10. 解析(Http访问所返回的)Set-Cookie的字符串为Cookie数组:parseSetCookie
7.11. 解析Javascript中的setCookie为Cookie变量:parseJsSetCookie
7.12. 判断Cookie是否已经过期/失效/无效:isCookieExpired
7.13. 将单个Cookie添加到Cookie数组变量中:addCookieToCookies
7.14. 判断Cookies中是否包含某个Cookie:isContainCookie
7.15. 更新本地Cookie:updateLocalCookies
7.16. 从一个CookieCollection获得一个Cookie的值:getCookieVal
8. crifanLib.cs之Serialize/Deserialize
8.1. 将一个对象序列化成字符串:serializeObjToStr
8.2. 将字符串反序列化为对象:deserializeStrToObj
9. crifanLib.cs之Http
9.1. 设置代理:setProxy
9.2. 清除当前cookie:clearCurCookies
9.3. 获得当前cookie:getCurCookies
9.4. 设置当前cookie:setCurCookies
9.5. 获得Url地址的响应:getUrlResponse
9.5.1. getUrlResponse的参数详解
9.5.1.1. getUrlResponse的参数:url
9.5.1.2. getUrlResponse的参数:headerDict
9.5.1.3. getUrlResponse的参数:postDict
9.5.1.4. getUrlResponse的参数:timeout
9.5.1.5. getUrlResponse的参数:postDataStr
9.5.1.6. getUrlResponse的参数:readWriteTimeout
9.5.2. getUrlResponse 的用法详解
9.5.2.1. 被getUrlRespHtml调用
9.5.2.2. 只传入url而获得对应的url的response
9.6. 获得Url地址返回的网页内容:getUrlRespHtml
9.6.1. getUrlRespHtml的参数详解
9.6.2. getUrlRespHtml 的功能详解
9.6.2.1. 内部已默认指定了IE8的User-Agent
9.6.2.2. 默认是允许自动跳转的
9.6.2.3. 默认已支持解压缩html
9.6.2.4. 已支持设置(单个)代理
9.6.2.5. 支持网络超时设置
9.6.2.6. 支持读写超时设置
9.6.2.7. 支持自动处理cookie
9.6.3. getUrlRespHtml 的用法详解
9.6.3.1. getUrlRespHtml用法示例:只传入url而获得html
9.6.3.2. getUrlRespHtml用法示例:传入各种header信息
9.6.3.2.1. getUrlRespHtml用法示例:指定Referer
9.6.3.2.2. getUrlRespHtml用法示例:禁止自动跳转
9.6.3.2.3. getUrlRespHtml用法示例:手动设置Accept
9.6.3.2.4. getUrlRespHtml用法示例:不保持连接
9.6.3.2.5. getUrlRespHtml用法示例:设置Accept-Language
9.6.3.2.6. getUrlRespHtml用法示例:添加特定的User-Agent的header
9.6.3.2.7. getUrlRespHtml用法示例:设置ContentType
9.6.3.2.8. getUrlRespHtml用法示例:设置其他的特定的header
9.6.3.3. getUrlRespHtml用法示例:设置网页字符编码charset
9.6.3.4. getUrlRespHtml用法示例:设置网络超时timeout时间
9.6.3.5. getUrlRespHtml用法示例:设置Stream的读写超时readWriteTimeout时间
9.6.3.6. getUrlRespHtml用法示例:POST操作
9.6.3.6.1. postDict示例:getDomainPageRank
9.6.3.6.2. postDict示例:downloadSongtasteMusic
9.6.3.6.3. postDataStr示例:百度API上传文件
9.6.3.6.4. postDataStr示例:网易的心情随笔
9.7. 多次尝试版本的getUrlRespHtml:getUrlRespHtml_multiTry
9.7.1. getUrlRespHtml_multiTry 的参数详解
9.8. 获得Url地址所返回的二进制数据流:getUrlRespStreamBytes
9.9. (谷歌)翻译一段话:translateString
9.10. 将中文翻译为英文:transzhcntoen
9.11. 查找获得域名的Page Rank:getDomainPageRank
9.12. 查找获得域名的Alexa Rank:getDomainAlexaRank
10. crifanLib.cs之File/Folder
10.1. 获得当前保存路径:getSaveFolder
10.2. 二进制(字节)数据存为文件:saveBytesToFile
10.3. (从网络上)下载文件(到本地):downloadFile
10.4. 调用资源管理器打开文件夹并选中文件:openFolderAndSelectFile
10.5. (调用系统默认程序直接)打开文件:openFileDirectly
11. crifanLib.cs之Screen
11.1. 获得当前任务栏的尺寸大小:getCurTaskbarSize
11.2. 获得当前任务栏的坐标位置:getCurTaskbarLocation
11.3. 获得当前屏幕的角落的坐标位置:getCornerLocation
12. crifanLib.cs之Runtime
12.1. 获得当前软件的版本:getCurVerStr
13. crifanLib.cs之Html Parse
13.1. 将HTML转换为XmlDocument:htmlToXmlDoc
13.2. 将HTML转换为HtmlAgilityPack的HtmlDocument:htmlToHtmlDoc
13.3. 去除HtmlNode中的子节点:removeSubHtmlNode
13.4. 去除HTML的标签tag:htmlRemoveTag
14. crifanLib.cs之集成DLL到exe中
14.1. 集成DLL到exe中
15. crifanLib.cs之DataGridView
15.1. 清楚DataGridView的内容:dgvClearContent
15.2. 让DataGridView显示行号:dgvDrawHeaderNum
15.3. 释放对象(变量):releaseObject
15.4. 导出DataGridView内容到Excel文件:dgvExportToExcel
15.5. 导出DataGridView内容到CSV文件:dgvExportToCsv
16. crifanLib.cs之JSON
16.1. JSON字符串转换为字典变量:jsonToDict
参考书目

范例清单

1.1. findRootTreeNode的使用范例
1.2. unHighlightNode的使用范例
1.3. highlightNode的使用范例
2.1. ounceToKiloGram的使用范例
2.2. kiloGramToOunce 的使用范例
2.3. poundToKiloGram 的使用范例
2.4. kiloGramToPound 的使用范例
2.5. inchToCm 的使用范例
2.6. kiloGramToPound 的使用范例
3.1. mathRandom 的使用范例
4.1. elapsedTimeSpanInit,getElapsedTimeSpan 的使用范例
4.2. getCurTimeInMillisec 的使用范例
4.3. milliSecToDateTime 的使用范例
4.4. parseJsNewDate 的使用范例
5.1. formatstring 的使用范例
5.2. emptyStringArray 的使用范例
5.3. encodeExclamationMark 的使用范例
5.4. decodeExclamationMark 的使用范例
5.5. extractSingleStr 的使用范例
5.6. quoteParas 的使用范例
5.7. removeInvChrInPath 的使用范例
5.8. filterEscapeSequence 的使用范例
5.9. extractFilenameFromUrl 的使用范例
6.1. getSubStrArr 的使用范例
7.1. extractHost 的使用范例
7.2. extractDomain 的使用范例
7.3. getDomainUrl 的使用范例
7.4. addFieldToCookie 的使用范例
7.5. isValidCookieField 的使用范例
7.6. isValidCookieName 的使用范例
7.7. parseCookieNameValue 的使用范例
7.8. parseCookieField 的使用范例
7.9. parseSingleCookie 的使用范例
7.10. parseSetCookie 的使用范例
7.11. parseJsSetCookie 的使用范例
7.12. isCookieExpired 的使用范例
7.13. addCookieToCookies 的使用范例
7.14. isContainCookie 的使用范例
7.15. updateLocalCookies 的使用范例
7.16. getCookieVal 的使用范例
8.1. serializeObjToStr 的使用范例
8.2. deserializeStrToObj 的使用范例
9.1. setProxy 的使用范例
9.2. clearCurCookies 的使用范例
9.3. getCurCookies 的使用范例
9.4. setCurCookies 的使用范例
9.5. getUrlResponse 的使用范例:被getUrlRespHtml调用
9.6. getUrlResponse 的使用范例:只传入url
9.7. getUrlRespHtml用法示例:只传入url而获得html
9.8. getUrlRespHtml_multiTry 的使用范例
9.9. getUrlRespStreamBytes 的使用范例
9.10. translateString 的使用范例
9.11. transzhcntoen 的使用范例
9.12. getDomainPageRank 的使用范例
9.13. getDomainAlexaRank 的使用范例
10.1. getSaveFolder 的使用范例
10.2. saveBytesToFile 的使用范例
10.3. downloadFile 的使用范例
10.4. openFolderAndSelectFile 的使用范例
10.5. openFileDirectly 的使用范例
11.1. getCurTaskbarSize 的使用范例
11.2. getCurTaskbarLocation 的使用范例
11.3. getCornerLocation 的使用范例
12.1. getCurVerStr 的使用范例
13.1. htmlToXmlDoc 的使用范例
13.2. htmlToHtmlDoc 的使用范例
13.3. removeSubHtmlNode 的使用范例
13.4. htmlRemoveTag 的使用范例
14.1. 集成DLL到exe中 的使用范例
15.1. dgvClearContent 的使用范例
15.2. dgvDrawHeaderNum 的使用范例
15.3. releaseObject 的使用范例
15.4. dgvExportToExcel 的使用范例
15.5. dgvExportToCsv 的使用范例
16.1. jsonToDict 的使用范例