zoukankan      html  css  js  c++  java
  • 拆分字符串,GetHtmlByWebBrowser,UnicodeToMBCS,提升进程权限

    1、

    [delphi] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    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 <> 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 := to supportFileTypes.Count - 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] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    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] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    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 <= 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 <= 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] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    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] view plain copy
     
     在CODE上查看代码片派生到我的代码片
    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

    http://blog.csdn.net/earbao/article/details/12883857

  • 相关阅读:
    添加GDataXMLNODE.h和.m的方法
    NSPredicate的用法
    oc正则表达式基本语法(二)
    洛谷3931 [洛谷八连测] 一道难题
    洛谷2024 食物链 并查集
    洛谷1005 【NOIP2007】矩阵取数游戏
    洛谷3927 [洛谷八连测] 一道中档题
    洛谷1113 杂务
    洛谷1019 单词接龙 字符串dfs
    洛谷1414 又是毕业季II
  • 原文地址:https://www.cnblogs.com/findumars/p/5338821.html
Copyright © 2011-2022 走看看