⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ucomfun.pas

📁 DELPHI DFM资源文件内码批量转换程序
💻 PAS
字号:
unit uComFun;

interface
uses classes, DateUtils, StrUtils, SysUtils, ADODB, Math, iniFiles,DB;

function ScanCharCount(const S: string; const ScanChars: TSysCharSet): Integer;
function ScanChar(const S: string; var Pos: Integer; Ch: Char): Boolean;
function ExecSQL(var ADOQ: TADOQuery; SQL: string): Boolean;
function ActiveSQL(var ADOQ: TADOQuery; SQL: string): Boolean;
function AdoReadString(var ADOQ: TADOQuery; FindField, ResultField: string; FindValue: Variant; defVal: string): string;
function AdoReadInteger(var ADOQ: TADOQuery; FindField, ResultField: string; FindValue: Variant; defVal: Integer): Integer;
function AdoReadBoolean(var ADOQ: TADOQuery; FindField, ResultField: string; FindValue: Variant; defVal: Boolean): Boolean;
function GetplusStr(sSrc, sSepStr: string; iOrder: Integer): string;
function GetSPNumByMobile(const sMobile:String):String;

implementation
function GetSPNumByMobile(const sMobile:String):String;
begin
  if (LeftStr(sMobile,1)='0') then
    Result:='1189330'
  else if ((LeftStr(sMobile,3)='130') or (LeftStr(sMobile,3)='131') or (LeftStr(sMobile,3)='132') or
    (LeftStr(sMobile,3)='133')) then
    Result:='8882'
  else if ((LeftStr(sMobile,3)='134') or (LeftStr(sMobile,3)='135') or (LeftStr(sMobile,3)='136') or
    (LeftStr(sMobile,3)='137') or (LeftStr(sMobile,3)='138') or (LeftStr(sMobile,3)='139') or
    (LeftStr(sMobile,3)='159') ) then
    Result:='08882'
  else
    Result:='1189330';
end;

function ScanChar(const S: string; var Pos: Integer; Ch: Char): Boolean;
var
  I: Integer;
begin
  Result := False;
  I := Pos;
  while (I <= Length(S)) and (S[I] <> Ch) do Inc(I);
  if (I <= Length(S)) and (S[I] = Ch) then
  begin
    Pos := I;
    Result := True;
  end;
end;

function ScanCharCount(const S: string; const ScanChars: TSysCharSet): Integer;
var
  I: Integer;
begin
  Result := 0;
  I := 1;
  while (I <= Length(S)) do
  begin
    if (S[I] in ScanChars) then
      Inc(Result);
    Inc(I);
  end;
end;

function ExecSQL(var ADOQ: TADOQuery; SQL: string): Boolean;
begin
  Result := False;
  if (ADOQ <> nil) then
  try
    Result := True;
    ADOQ.Active := False;
    ADOQ.SQL.Clear;
    ADOQ.SQL.Add(SQL);
    ADOQ.ExecSQL;
  except
    Result := False;
  end;
end;

function ActiveSQL(var ADOQ: TADOQuery; SQL: string): Boolean;
begin
  Result := False;
  if (ADOQ <> nil) then
  try
    ADOQ.Active := False;
    ADOQ.SQL.Clear;
    ADOQ.SQL.Add(SQL);
    ADOQ.Active := True;
    Result := True;
  except
    Result := False;
  end;
end;

function AdoReadString(var ADOQ: TADOQuery; FindField, ResultField: string; FindValue: Variant; defVal: string): string;
begin
  Result := defVal;
  if (ADOQ <> nil) then
  try
    if (not ADOQ.Active) then
      ADOQ.Active := True;
    if ADOQ.Locate(FindField, FindValue, []) then
      Result := ADOQ.FieldByName(ResultField).AsString;
  except
  end;
end;

function AdoReadInteger(var ADOQ: TADOQuery; FindField, ResultField: string; FindValue: Variant; defVal: Integer): Integer;
begin
  Result := defVal;
  if (ADOQ <> nil) then
  try
    if (not ADOQ.Active) then
      ADOQ.Active := True;
    if ADOQ.Locate(FindField, FindValue, []) then
      Result := ADOQ.FieldByName(ResultField).AsInteger;
  except
  end;
end;

function AdoReadBoolean(var ADOQ: TADOQuery; FindField, ResultField: string; FindValue: Variant; defVal: Boolean): Boolean;
begin
  Result := defVal;
  if (ADOQ <> nil) then
  try
    if (not ADOQ.Active) then
      ADOQ.Active := True;
    if ADOQ.Locate(FindField, FindValue, []) then
      Result := ADOQ.FieldByName(ResultField).AsBoolean;
  except
  end;
end;
//以字符串中的sSepStr串为分隔,默认以空格为分隔符,取第iOrder个子串;
function GetplusStr(sSrc, sSepStr: string; iOrder: Integer): string;
var
  slTmp: TStringList;
  sTmp: string;
begin
  Result := sSrc;
  //if (sSepStr = '') then sSepStr := ' ';
  slTmp := TStringList.Create;
  try
    //以字符串中的空格为分隔符,进行分行处理;
    sTmp := StringReplace(sSrc, sSepStr, #13#10, [rfReplaceAll]);
    slTmp.Text := sTmp;
    if (iOrder <= slTmp.Count - 1) then
      Result := slTmp.Strings[iOrder];
  finally
    slTmp.Free;
  end; ;
end;



end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -