博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XE4 TStringDynArray 比 c6 的TStringList 好用 字符串 分解 分割 转换 TByteDynArray
阅读量:5844 次
发布时间:2019-06-18

本文共 3077 字,大约阅读时间需要 10 分钟。

 

TStringDynArray 动态数组  字符串 分解 分割  System::DynamicArray<System::UnicodeString>

TByteDynArray,    (TIdBytes)    String  相互转换  DynamicArray<System::Byte>

TIdBytes = array of Byte;

TByteDynArray;

Delphi   type TByteDynArray = array of Byte;

 

TByteDynArray defines a dynamic array of byte elements. You must use to allocate storage for such an array. 

  typedef DynamicArray<Byte>            TByteDynArray;

TBytes,就是 typedef System::DynamicArray<System::Byte> TBytes;

TBytes和TByteDynArray 是等价的。

 

 数组

 System::DynamicArray<int> array { 1, 2, 3, 4, 5};

 

DynamicArray
aint;aint.Low;aint.High;aint[0];
  1. arrayOfInt.Length = 10; 
int total=0;  for (int i=aint.Low; i<=aint.High; i++)    total += aint[i];  return total

 

SplitString 函数
#include <System.StrUtils.hpp>
TStringDynArray __fastcall SplitString(UnicodeString S, UnicodeString Delimiters);
和stringList的Delimiter一样,空格也分割了。 TByteArray 
 
#include <System.StrUtils.hpp>
#include <System.SysUtils.hpp>
 
TStringDynArray ls; ls = SplitString("a|b|c","|"); for(int i = 0; i < ls .Length; i++) ShowMessage(ls [i]);     TStringDynArray sarr;     TStringList *ls = new TStringList();     ls->Text = "a|b|c";     sarr = ls->ToStringArray();     delete ls; //String <==> TByteDynArray     String str; str="abc";     TByteDynArray barr;     barr = str.BytesOf(); bytes=System::Sysutils::BytesOf(Caption); bytes=System::Sysutils::WideBytesOf(Caption); Caption = System::Sysutils::StringOf(barr); Caption = System::Sysutils::WideStringOf(barr);

 

 TBytes bytes;  

TByteDynArray barr;  

String str;  

str = Memo1->Text;  

barr = str.BytesOf();

bytes = BytesOf(str);  

bytes = WideBytesOf(str);  

bytes = barr;

 

 ExtractStrings

int __fastcall ExtractStrings(const System::Sysutils::TSysCharSet &Separators, const System::Sysutils::TSysCharSet &WhiteSpace, System::WideChar * Content, TStrings* Strings);

 TStringDynArray  ar;  ar[0]=2;  ar[25]="";  ar.set_length(28);  ar[0]=2;  ar.Length;

用指定的字符串分割,空格可以不分割!

 

  ExtractStrings([';',',',':'],['#',' '],PChar(s),List);  //第一个参数是分隔符; 第二个参数是开头被忽略的字符
[cpp]
  1. TStringDynArray arr;  
  2. arr = System::Ioutils::TDirectory::GetFiles("C:\\Windows");  
  3. this->Memo1->Lines->AddStrings(arr);  
TStringDynArray arr;	arr = System::Ioutils::TDirectory::GetFiles("C:\\Windows");	this->Memo1->Lines->AddStrings(arr);
[cpp]
  1.  arr = System::Ioutils::TDirectory::GetFiles("c:\\windows","*.ppt", System::Ioutils::TSearchOption::soAllDirectories );  
for I := 0 to Length(LList) - 1 do mmResults.Lines.Add(LList[I]);
 

Delphi 推荐用这个方法

  astr:string;

  list: TArray<string>;
  list := astr.Split(['|']);
  list[0],list[1]...

for i := 0 to High(Editors) do

list[i] 

for s in list

  showmessage(s);

 

Split 是 delphi的函数,c++没有。TStringHelper = record helper for string

 

TStringList好用的特性
ss:TStringList;beginss.AddPair('p1','aaaaa');ss.AddPair('p2','bbbbb');ss.Values['p1'];ss.Values['p2'];

这样的效果

p1=aaaaa

p2=bbbbb

取p1的值aaaa

ss.Values['p1'];

 

st.Split([','],TStringSplitOptions.ExcludeEmpty);
CommaText甚是方便
TStrings.CommaText aa bb cc 返回值 aa,bb,cc TStringList分割字符 新属性StrictDelimiter精确分割,空格不在分割换行了。         slsub->StrictDelimiter=true;         slsub->Delimiter = awchar;         slsub->DelimitedText = str;

转载地址:http://kzqcx.baihongyu.com/

你可能感兴趣的文章
关于分区索引与全局索引性能比较的示例
查看>>
ASP.NET MVC学习之(5):Html.ActionLink
查看>>
yii_wiki_145_yii-cjuidialog-for-create-new-model (通过CJuiDialog来创建新的Model)
查看>>
431.chapter2.configure database mail
查看>>
同一页面中引入多个JS库产生的冲突解决方案(转)
查看>>
C语言之指针与数组总结
查看>>
沟通:用故事产生共鸣
查看>>
1080*1920 下看网站很爽
查看>>
topcoder srm 305 div1
查看>>
[转]ORACLE 异常错误处理
查看>>
Object.observe将不加入到ES7
查看>>
Android类参考---Fragment(一)
查看>>
Windows WMIC命令使用详解(附实例)
查看>>
CMake 构建项目Android NDK项目基础知识
查看>>
请求与响应
查看>>
sql server(常用)
查看>>
算法 - 最好、最坏、平均复杂度
查看>>
MySQL 不落地迁移、导入 PostgreSQL - 推荐 rds_dbsync
查看>>
二叉树的蛇形遍历 leetcode 103
查看>>
Linux设备驱动之IIO子系统——IIO框架及IIO数据结构
查看>>