delphi 根据字符串分隔符位置取值  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi 根据字符串分隔符位置取值


unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


function StrSplit(SourStr: string; Delimiter: string): TArray;
var
  i, len, count, count2: integer;
  sPart: string;
  sArr: TArray;
begin

  len := Length(SourStr);
  sPart := '';
  count := 0;
  for i := 1 to len do
  begin
    if (SourStr[i] = Delimiter) or ((i = len) and (SourStr[i] <> Delimiter))
    then
    begin
      count := count + 1;
      SetLength(sArr, count);
      if (i = len) and (SourStr[i] <> Delimiter) then
        sPart := sPart + SourStr[i];
      sArr[count - 1] := sPart;
      sPart := '';
    end
    else
    begin
      sPart := sPart + SourStr[i];
    end;
  end;
  Result := sArr;
end;


// val1=123.22;val2=33.4;val4=55.5
function StrDelimiter (Sour: string; NumInString:integer): string;
var
  strValue, Item, sName, sValue: string;
  sArr: TArray;
  i, j, n, lenArr, lenItem: integer;
  find: boolean;
begin
  Result := '';
  sArr := StrSplit(Sour, ';');

  lenArr := Length(sArr);
  if (lenArr > 0) and (NumInString-1 <= lenArr) then
    Result:= sArr[NumInString-1];
end;


function CountInStrDelimiter (Sour: string; Delimiter: string ): integer;
var
  sArr: TArray;
  lenArr: integer;
begin
  Result := -1;
  sArr := StrSplit  (Sour, Delimiter);

  lenArr := Length(sArr);
  if (lenArr > 0)  then
    Result:= lenArr;
end;


procedure TForm1.FormCreate(Sender: TObject);
var
fgnum:integer;
begin

fgnum:=CountInStrDelimiter('val1=123.22;val2=33.4;val4=55.5',';');

Caption:='分割符数'+inttostr(fgnum)+' '+StrDelimiter('val1=123.22;val2=33.4;val4=55.5',2);

end;

end.

推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.11944890022278 seconds