增強字串 (轉)
一個自定義類,用於大規模的字串連線,如拼接語句。用流技術實現的,很好呦!!
using System;
using System.IO;
using System.Text;
using System..Forms;
namespace SuperString
{
///
/// 創 建 者: superhood
/// 內容描述: 增強字串類
///
public class CSuperString
{
///
/// 功能簡述: 運算子過載
///
/// 左引數
/// 右引數
///
public static CSuperString operator + (string Left,CSuperString Right)
{
byte[] btyLeft = Encoding.Default.GetBytes(Left);//返回左引數陣列
byte[] btyRight = new Byte[Right.iLength];//返回右引數陣列
Right.iTextLength += Left.Length;//設定右引數文字長度
Right.iLength = btyLeft.Length + btyRight.Length;//設定右引數位元組長度
Right.memStrm.Position = 0;//將右引數流位置置0
Right.memStrm.Read(btyRight,0,btyRight.Length);//將右引數資料讀出
Right.memStrm.Position = 0;//將右引數流位置置0
Right.memStrm.Write(btyLeft,0,btyLeft.Length);//將字串(位元組陣列)寫入右引數
Right.memStrm.Write(btyRight,0,btyRight.Length);//將右引數原有資訊寫回(加在左引數字串後)
return Right;//返回右引數
}
///
/// 功能簡述: 運算子過載
///
/// 左引數
/// 右引數
///
public static CSuperString operator + (CSuperString Left,string Right)
{
byte[] btyRight = Encoding.Default.GetBytes(Right);//將右引數(字串)轉換為位元組陣列
Left.memStrm.Position = Left.iLength;//設定左引數流的位置
Left.memStrm.Write(btyRight,0,btyRight.Length);//將右引數字串寫入流
Left.iTextLength += Right.Length;//設定左引數文字長度
Left.iLength += btyRight.Length;//設定左引數位元組長度
return Left;//返回左引數
}
///
/// 功能簡述: 運算子過載
///
/// 左引數
/// 右引數
///
public static CSuperString operator + (CSuperString Left,CSuperString Right)
{
byte[] btyRight = new Byte[Right.iLength];//宣告位元組陣列(右引數)
Right.memStrm.Position = 0;//將右引數流位置置0
Right.memStrm.Read(btyRight,0,btyRight.Length);//將右引數(字串)轉換為位元組陣列
Left.memStrm.Position = 0;//將左引數流位置置0
Left.memStrm.Write(btyRight,0,btyRight.Length);//將右引數字串寫入流
Left.iTextLength += Right.iTextLength;//設定左引數文字長度
Left.iLength += Right.iLength;//設定左引數位元組長度
return Left;//返回左引數
}
///
/// 功能簡述: 流中有效位元組長度
///
private int iLength = 0;
///
/// 功能簡述: 流中文字長度
///
private int iTextLength = 0;
///
/// 功能簡述: 流
///
private MemoryStream memStrm;
///
/// 功能簡述: 構造
///
public CSuperString()
{
memSt= new MemoryStream();//初始化流
}
///
/// 功能簡述: 建構函式
///
/// 預設長度(以位元組為單位)
public CSuperString(int DefaultLength)
{
memStrm = new MemoryStream(DefaultLength);//初始化流
}
///
/// 功能簡述: 屬性,位元組長度
///
public int Length
{
get
{
return iLength;
}
}
///
/// 功能簡述: 屬性,文字長度
///
public int TextLength
{
get
{
return iTextLength;
}
}
///
/// 功能簡述: 屬性,流長度
///
public int Capacity
{
get
{
return memStrm.Capacity;
}
set
{
if (value >= iLength)
memStrm.Capacity = value;
else
memStrm.Capacity = iLength;
}
}
///
/// 功能簡述: 向類中新增字串
///
///
public void AddString (string Date)
{
byte[] btyDate = Encoding.Default.GetBytes(Date);//字串轉換為位元組陣列
memStrm.Position = iLength;//設定流的位置
memStrm.Write(btyDate,0,btyDate.Length);//將字串寫入流
iTextLength += Date.Length;//設定文字長度
iLength += btyDate.Length;//設定位元組長度
}
///
/// 功能簡述: 返回文字
///
///
public overr string ToString()
{
memStrm.Position = 0;//設定流的位置
byte[] btyDate = new byte[iLength];//宣告位元組陣列
memStrm.Read(btyDate,0,iLength);//將流內容讀入陣列
return Encoding.Default.GetString(btyDate);//將位元組陣列轉換為字串並返回
}
///
/// 功能簡述: 將字串寫入
///
/// 檔名
public void WriteToFile(string FileName)
{
FileStream strm = new FileStream(FileName,FileMode.OpenOrCreate,FileAccess.Write);//初始化檔案流
//判斷流長度用來確定流中是否有冗餘資訊
if (memStrm.Length > iLength)
{//有
memStrm.Position = 0;//設定流的位置
byte[] btyDate = new byte[iLength];//宣告位元組陣列
memStrm.Read(btyDate,0,iLength);//將流內容讀入陣列
strm.Write(btyDate,0,iLength);//將流內容寫入檔案
}
else
{//沒有
memStrm.WriteTo(strm);//將流中文字寫入檔案
}
strm.Close();//關閉檔案
}
///
/// 功能簡述: 將字串寫入流
///
/// 流
public void WriteToStream(Stream strm)
{
//判斷流長度用來確定流中是否有冗餘資訊
if (memStrm.Length > iLength)
{//有
memStrm.Position = 0;//設定流的位置
byte[] btyDate = new byte[iLength];//宣告位元組陣列
memStrm.Read(btyDate,0,iLength);//將流內容讀入陣列
strm.Write(btyDate,0,iLength);//將陣列內容寫入另一流
}
else
{//沒有
memStrm.WriteTo(strm);//將流中文字寫入另一流
}
}
///
/// 功能簡述: 清除流
///
public void Clear()
{
iLength = 0;//將流位元組長度設為0
iTextLength = 0;//將流文字長度設為0
}
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-962585/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java不是增強的HTML(轉)JavaHTML
- Windows XP 增強的DOS命令(轉)Windows
- 玩轉cordova之二--增強的webviewWebView
- 飄逸的python - 增強的格式化字串format函式Python字串ORM函式
- PHP 字串強制轉換為數值問題PHP字串
- Oracle 12c中的轉換功能增強Oracle
- 用LIDS增強Linux系統安全(轉)Linux
- Python 3的f-Strings:增強的字串格式語法(指南)Python字串
- 集合框架-增強for框架
- Windows 2000 瀏覽器功能的增強(轉)Windows瀏覽器
- TotalFinder for MacFinder增強工具Mac
- 增強的 COMMITMIT
- 影像增強(Image enhancement)
- Linux核心入侵檢測安全增強實現(下)(轉)Linux
- Linux核心入侵檢測安全增強實現(上)(轉)Linux
- PostgreSQL10.0preview效能增強-hashindexmetapagecache、高併發增強SQLViewIndex
- Oracle12c功能增強 新特性之管理功能的增強Oracle
- JAVA字串轉日期或日期轉字串Java字串
- 字串 (轉)字串
- 小米盒子3增強版評測 小米盒子3 增強版區別
- Linux核心即時入侵檢測安全增強-介紹(轉)Linux
- Linux核心即時入侵檢測安全增強-後語(轉)Linux
- TotalFinder for Mac Finder增強工具Mac
- Mybatis-Plus增強包MyBatis
- Java排序理解增強版Java排序
- TotalFinder Mac(Finder增強工具)Mac
- Mac鍵盤增強工具Mac
- TotalFinder for Mac(Finder增強工具)Mac
- SAP螢幕增強示例
- openGauss DSS功能增強
- quartz叢集增強版🎉quartz
- JS json字串轉物件、物件轉字串JSON字串物件
- Awk 字串連線操作(字串轉數字,數字轉字串)字串
- xml字串轉JSON字串XML字串JSON
- J2SE-字串轉日期,日期轉字串字串
- 功能強大!帶你走近Smartbi增強分析模組
- 賬號洩漏門:DBA需增強網路安全意識【轉】
- 在ORACLE中利用角色增強應用系統安全性(轉)Oracle