1、

 




[delphi] 

  1. // 根据字符串,拆分字符串,相当于vb中的split函数  
  2. function SplitString(const Source, ch: string): TStringList;  
  3. var  
  4.   temp: String;  
  5.   i: Integer;  
  6. begin  
  7.   Result := TStringList.Create;  
  8.   // 如果是空自符串则返回空列表  
  9.   if Source = '' then  
  10.     exit;  
  11.   temp := Source;  
  12.   i := pos(ch, Source);  
  13.   while i <> 0 do  
  14.   begin  
  15.     Result.add(copy(temp, 0, i - 1));  
  16.     Delete(temp, 1, i + length(ch) - 1);  
  17.     i := pos(ch, temp);  
  18.   end;  
  19.   Result.add(temp);  
  20. end;  
  21.   
  22. function isSupportFileTypes(ext: string;iniFilePath:string): Boolean;  
  23. var  
  24.   supportFileTypes: TStringList;  
  25.   i: Integer;  
  26.   myini:TIniFile;  
  27.   config:string;  
  28. begin  
  29.   Result := False;  
  30.   //iniFilePath要绝对路径  
  31.   myini:=TIniFile.Create(iniFilePath);  
  32.   supportFileTypes := TStringList.Create;  
  33.   config:=myini.ReadString('supportExtractFileType','config','');  
  34.   supportFileTypes:=SplitString(config,'|');  
  35.   // zip apk rar dll exe等不支持抽取文本信息  
  36.   for i := 0 to supportFileTypes.Count - 1 do  
  37.   begin  
  38.     if Trim(supportFileTypes[i]) = LowerCase(ext) then  
  39.     begin  
  40.       Result := True;  
  41.       //ShowMessage('true');  
  42.       Break;  
  43.     end;  
  44.   end;  
  45.   supportFileTypes.Free;  
  46.   myini.Free;  
  47.   
  48. end;  


2、




[delphi]

  1. function TFrmMain.GetHtmlByWebBrowser(const WebBrowser: TWebBrowser;  
  2.   URL: string): string;  
  3. var  
  4.   ms: TMemoryStream;  
  5.   MyStrList: TStringList;  
  6. begin  
  7.   Try  
  8.     WebBrowser.Navigate(URL);  
  9.   Except  
  10.   
  11.   End;  
  12.   while WebBrowser.ReadyState <> READYSTATE_COMPLETE do  
  13.     Application.ProcessMessages;  
  14.   While not Assigned(WebBrowser.Document) do  
  15.     Application.ProcessMessages;  
  16.   ms := TMemoryStream.Create;  
  17.   MyStrList := TStringList.Create;  
  18.   (WebBrowser2.Document as IPersistStreamInit)  
  19.   .Save(TStreamAdapter.Create(ms), True);  
  20.   ms.Position := 0;  
  21.   MyStrList.LoadFromStream(ms, TEncoding.UTF8);  
  22.   Result := MyStrList.Text;  
  23. end;  


3、




[delphi] ​

  1. function UnicodeToMBCS( // 将Unicode编码字符串转换成多字节字符串  
  2.   mCodePage: UINT; // 对照表页码  
  3.   mUnicode: WideString // Unicode编码字符串  
  4.   ): string; // 返回处理后的字符串  
  5. var  
  6.   L: Integer;  
  7. begin  
  8.   L := WideCharToMultiByte(mCodePage, 0, PWideChar(mUnicode), -1, nil, 0, nil,  
  9.     nil);  
  10.   SetLength(Result, L);  
  11.   if L <= 0 then  
  12.     Exit;  
  13.   WideCharToMultiByte(mCodePage, 0, PWideChar(mUnicode), -1, @Result[1], L,  
  14.     nil, nil);  
  15. end;  
  16.   
  17. function MBCSToUnicode( // 将多字节字符串转换成Unicode编码字符串  
  18.   mCodePage: UINT; // 对照表页码  
  19.   mMBCS: string // 多字节字符串  
  20.   ): WideString; // 返回处理后的字符串  
  21. var  
  22.   L: Integer;  
  23. begin  
  24.   L := MultiByteToWideChar(mCodePage, 0, PAnsiChar(mMBCS), -1, nil, 0);  
  25.   SetLength(Result, L);  
  26.   if L <= 0 then  
  27.     Exit;  
  28.   MultiByteToWideChar(mCodePage, 0, PAnsiChar(mMBCS), -1, @Result[1], L);  
  29. end;  
  30.   
  31. procedure TForm3.Button1Click(Sender: TObject);  
  32. var  
  33.   str,str2:string;  
  34. begin  
  35.   str:=UnicodeToMBCS(CP_UTF8,'你好你是猪test');  
  36.   ShowMessage(str);  
  37.   str2:=MBCSToUnicode(CP_UTF8,str);  
  38.   ShowMessage(str2);  
  39. end;  


4、提升进程权限:




[delphi] 

  1.  procedure TForm1.GetPrivilege;  
  2. var  
  3.   NewState:       TTokenPrivileges;  
  4.   lpLuid:         Int64;  
  5.   ReturnLength:   DWord;  
  6.   ToKenHandle:    Cardinal;  
  7. begin  
  8.   OpenProcessToken(GetCurrentProcess,  
  9.                    TOKEN_ADJUST_PRIVILEGES  
  10.                    OR TOKEN_ALL_ACCESS  
  11.                    OR STANDARD_RIGHTS_REQUIRED  
  12.                    OR TOKEN_QUERY,ToKenHandle);  
  13.   LookupPrivilegeValue(nil,'SeShutdownPrivilege',lpLuid);  
  14.   NewState.PrivilegeCount:=1;  
  15.   NewState.Privileges[0].Luid:=lpLuid;  
  16.   NewState.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;  
  17.   ReturnLength:=0;  
  18.   AdjustTokenPrivileges(ToKenHandle,False,NewState,0,nil,ReturnLength);  
  19. end;  


5 、stringbuilder

 




[delphi] 

  1. procedure TForm2.Button1Click(Sender: TObject);  
  2. var  
  3.   sb: TStringBuilder;  
  4. begin  
  5.   
  6.   sb := TStringBuilder.Create;  
  7.   sb.Append('test');  
  8.   sb.AppendLine;//换行  
  9.   sb.AppendFormat('%s %d', ['Delphi', 2009]);  
  10.   sb.AppendLine;//换行  
  11.   sb.AppendLine('[2015-05-04 09:00:03||android0033333][2015-05-04 08:55:28||android003][2015-05-04 08:54:33||android002][2015-05-04 08:53:50||android01][2015-05-04 08:38:02||android]');  
  12.   
  13.   // sb.AppendLine('[2015-6-2 09:19:41||test][2015-6-2 09:21:12||fuck]');  
  14.   sb.Replace('[', '');  
  15.   sb.Replace(']', '');  
  16.   ShowMessage(sb.ToString);  
  17.   sb.Free;  
  18.   
  19. end;  


6、delphi 字符串操作函数

查找位置函数

[调用格式]:pos(s1,s2);Integer;

[功能]:返回字符串s1在字符串s2中首次出现的位置,若s2中不存在s1,则返回0。

[说明]:  若s1在s2当中,则必须满足s1的所有字符都在s2中,即s1是s2哦子串。

[例如]:  x:=pos('bx','adcd');   //x的值为2

合并字符串过程

[调用格式]

Appendstr(var l;const s2);

[功能]:相同于执行s1:='s1+s2';

[说明]:本过程比语句"s1:=s1+s2";执行效率高

 



截取子字符串函数

[调用格式]: Copy(str, m, n): String;

[功能]:在字符串str 中截取从第 m 个字符开始长度为n 的子字符串,并作为函数的返回值。

[说明]:若m大于s 的长度,则返回一个空串;若从第m 个字符到s 的结尾不足n 个字符,则返回其间的所有字符。

[例如]:

Source code ( By http://www.fishc.com )   

s1:= Copy( ‘IloveFishc!', 6, 5 ); // s1 的值为‘Fishc'

s2:= Copy( ‘小甲鱼爱美眉!’, 4, 5 ); // s2 的值?

s3:= Copy( ‘IloveFishc!’, 1, 1 ); 

s4:= Copy( ‘IloveFishc!’, 0, 1);

注意:s3 和 s4 其实是一样的!

 



删除子字符串过程

[调用格式]:Delete( str, m, n );

[功能]:在字符串str 中删除从第m个字符开始长度为n的子字符串。

[说明]:

如果m大于str 的长度,则不删除任何字符; 

如果从第m 个字符开始到str 的末尾不足n个字符,则删除其间的所有字符; 

如果n小于等于0,则不删除任何字符。 

 



插入子字符串过程

[调用格式]:Insert( str1, str, k );

[功能]:将字符串str1插入到字符串str 中的第k个字符处。



function UpperCase(const S: string): string;          //转大写

function LowerCase(const S: string): string;          //转小写

StringReplace 

SetLength

CopyMemory

GetMem

Move