1、

  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. function isSupportFileTypes(ext: string;iniFilePath:string): Boolean;
  22. var
  23. supportFileTypes: TStringList;
  24. i: Integer;
  25. myini:TIniFile;
  26. config:string;
  27. begin
  28. Result := False;
  29. //iniFilePath要绝对路径
  30. myini:=TIniFile.Create(iniFilePath);
  31. supportFileTypes := TStringList.Create;
  32. config:=myini.ReadString('supportExtractFileType','config','');
  33. supportFileTypes:=SplitString(config,'|');
  34. // zip apk rar dll exe等不支持抽取文本信息
  35. for i := 0 to supportFileTypes.Count - 1 do
  36. begin
  37. if Trim(supportFileTypes[i]) = LowerCase(ext) then
  38. begin
  39. Result := True;
  40. //ShowMessage('true');
  41. Break;
  42. end;
  43. end;
  44. supportFileTypes.Free;
  45. myini.Free;
  46. end;

2、

  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. End;
  11. while WebBrowser.ReadyState <> READYSTATE_COMPLETE do
  12. Application.ProcessMessages;
  13. While not Assigned(WebBrowser.Document) do
  14. Application.ProcessMessages;
  15. ms := TMemoryStream.Create;
  16. MyStrList := TStringList.Create;
  17. (WebBrowser2.Document as IPersistStreamInit)
  18. .Save(TStreamAdapter.Create(ms), True);
  19. ms.Position := 0;
  20. MyStrList.LoadFromStream(ms, TEncoding.UTF8);
  21. Result := MyStrList.Text;
  22. end;

3、

  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. function MBCSToUnicode( // 将多字节字符串转换成Unicode编码字符串
  17. mCodePage: UINT; // 对照表页码
  18. mMBCS: string // 多字节字符串
  19. ): WideString; // 返回处理后的字符串
  20. var
  21. L: Integer;
  22. begin
  23. L := MultiByteToWideChar(mCodePage, 0, PAnsiChar(mMBCS), -1, nil, 0);
  24. SetLength(Result, L);
  25. if L <= 0 then
  26. Exit;
  27. MultiByteToWideChar(mCodePage, 0, PAnsiChar(mMBCS), -1, @Result[1], L);
  28. end;
  29. procedure TForm3.Button1Click(Sender: TObject);
  30. var
  31. str,str2:string;
  32. begin
  33. str:=UnicodeToMBCS(CP_UTF8,'你好你是猪test');
  34. ShowMessage(str);
  35. str2:=MBCSToUnicode(CP_UTF8,str);
  36. ShowMessage(str2);
  37. end;

4、提升进程权限:

  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

  1. procedure TForm2.Button1Click(Sender: TObject);
  2. var
  3. sb: TStringBuilder;
  4. begin
  5. sb := TStringBuilder.Create;
  6. sb.Append('test');
  7. sb.AppendLine;//换行
  8. sb.AppendFormat('%s %d', ['Delphi', 2009]);
  9. sb.AppendLine;//换行
  10. 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]');
  11. // sb.AppendLine('[2015-6-2 09:19:41||test][2015-6-2 09:21:12||fuck]');
  12. sb.Replace('[', '');
  13. sb.Replace(']', '');
  14. ShowMessage(sb.ToString);
  15. sb.Free;
  16. 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

拆分字符串,GetHtmlByWebBrowser,UnicodeToMBCS,提升进程权限的更多相关文章

  1. Windows下提升进程权限

    windows的每个用户登录系统后,系统会产生一个访问令牌(access token) ,其中关联了当前用户的权限信息,用户登录后创建的每一个进程都含有用户access token的拷贝,当进程试图执 ...

  2. 解决windows10 里vs2015 附件进程调试提示“此任务要求应用程序有提升的权限”

    刚用windows10 ,感觉有些地方别扭.就在是vs2015开发程序的时候,就遇到了个问题. 首先 我是使用adminitrator账号登陆的. 双击vs解决方案,打开iis,然后结合vs2015里 ...

  3. Win10 通过附加进程调试时出现“此任务要求应用程序具有提升的权限”

    最近有新人在使用vs调试时出现了“此任务要求应用程序具有提升的权限”的提示,每次调试vs就会重启一次. 问到我时,我经过查了一番资料才给解决掉了. 其实,问题主要是因为直接启动vs项目时没有足够的权限 ...

  4. .NET中提升UAC权限的方法总结

    [题外话] 从Vista开始,由于增加了UAC(用户账户控制,User Account Control)功能,使得管理员用户平时不再拥有能控制所有功能的管理员权限了,所以在调用很多比较重要的功能时需要 ...

  5. win8 64位操作系统 Microsoft Visual Studio 2010在IIS上调试 “此任务要求应用程序具有提升的权限”等问题

    很少在IIS上调试程序,因系统原因,所以不得不在IIS上预览项目和调试项目(因为只能在IIS上预览项目才能看到项目里的数据). 1.附加到进程(注意附加到进程前必须预览项目) 2.选择调试项 需要注意 ...

  6. R语言拆分字符串

    R语言拆分字符串 aaa<-"aa;bb;cc"ccc<-strsplit(aaa,split=";") bbb<- unlist(strsp ...

  7. 【SQL】sql版Split函数。用于拆分字符串为单列表格

    功能与.net版string.Split函数类似,只不过.net返回的是数组,这个返回的是一个单列表格,每个拆分出来的子串占一行.可选是否移除空格子串和重复项.市面上类似的函数不算少,但大多都是在循环 ...

  8. oracle11g 拆分字符串的详细技巧

    转自:http://m.blog.csdn.net/article/details?id=51946573 <-->功能需求                 有一个比较长的SQL语句,查询 ...

  9. linux下进程权限分析

    转自http://blog.chinaunix.net/uid-27105712-id-3349522.html 在linux下,关于文件权限,大部分人接触比较多,也比较熟悉了解.但是对进程权限一般知 ...

随机推荐

  1. Struts2学习笔记(一) Struts2配置文件的配置

    1.配置web.xml文件. 在Struts2中,struts框架式通过Filter启动的.Filter在web.xml中的配置如下: <filter> <filter-name&g ...

  2. 利用navicat for oracle将数据库全部数据移动

    话不多说.直接上图. 1.首先选择自己的数据库. 右键,data transfer 2.选择相应源数据库,目标数据库.点击start就可以.假设中间失败,可多尝试几次. 2.

  3. uboot代码1:uboot启动大体流程, stage1 + stage2

    start.S stage 1: reset: set the cpu to svc32 mode disable the watchdog mask all IRQs(INTMSK, INTSUBM ...

  4. Ajax Post提交事例及SpringMVC注解@RequestMapping取不到参数值解决办法

    var xmlHttp; //定义变量,用来创建xmlHttp对象 function ajaxfunction(url,onreadystatechangMethod,param){ // 创建xml ...

  5. 【笔记】《通俗详细地讲解什么是P和NP问题》的概念记录

    1问题规模: 要计算或解决一个问题,该问题通常有一个大小规模,用n表示. 2算法的时间复杂度 计算次数与n的关系函数.(因为计算次数隐含时间). 3多项式时间复杂度 所有形如a*n^k+b*n^(k- ...

  6. 11g r2 模拟OCR和voting disk不可用,完整恢复过程,以及一些注意事项

    环境:RHEL5.8 RAC 11.2.0.3.0 1:查看ORC和voting disk信息: In 11g Release 2 your voting disk data is automatic ...

  7. Java与C#的语法区别(不断更新中...)

    1.static关键字: 在java中静态成员能够被对象和类名调用: 在C#中,静态成员只能被类调用不能被对象调用. 2.for循环: 在java中可以在for前面添加标记,然后在for循环中可以br ...

  8. 搭建Go开发及调试环境(LiteIDE + GoClipse)

    搭建Go开发及调试环境(LiteIDE + GoClipse) -- Windows篇 这里以Windows7 64位为例,如果是32位环境需安装对应版本程序. 一.安装golang1.2.2 1.3 ...

  9. qt下的跨目录多工程编译

    原地址:http://blog.csdn.net/fjb2080/article/details/7386292 转自:http://blog.csdn.net/high_high/article/d ...

  10. MFC获取rgb图像数据后动态显示及保存图片的方法

    该情况可用于视频通信中获取的位图数据回放显示或显示摄像头捕获的本地图像 第一种方法 #include<vfw.h> 加载 vfw32.lib  链接库 //---------------- ...