📄 ucomfun.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 + -