亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? uappstringutilts.pas

?? 從文本文件象Oracle數據庫導入數據
?? PAS
?? 第 1 頁 / 共 4 頁
字號:
{==========================================================================
                            字符串相關的公用函數單元
===========================================================================}

unit uAppStringUtilts;

interface

uses Windows, Messages, SysUtils, classes, stdctrls, comctrls;

type
  TFillStringMode = (fsmLeft, fsmRight, fsmBoth);

function GetCodeFromString_Bracket(AString: string; ADefault: string=''): string;
{ 功    能:獲得包含在括號中的編號
  入    參:AString:必須,包含編號和括號的字符串
            ADefault: 可無,當找不到結點中包含的編號時返回的默認值
  返回結果:代表編號的字符串,如“(12)ABC”返回“12”
}
function GetCodeFromTreeNode(ANode: TTreeNode; ADefault: string=''): string;
{ 功    能:根據樹形節點文本內容截取其中包含的編號,編號應包含在括號中
  入    參:ANode:必須,樹形列表控件當前的結點
            ADefault: 可無,當找不到結點中包含的編號時返回的默認值
  返回結果:代表編號的字符串,如節點文本為“(12)ABC”返回“12”
}
function GetCodeFromString_Dot(AString: string; ADefault: string=''): string;
{ 功    能:獲得字符串中第一個小數點前的編號
  入    參:AString:必須,包含編號和小數點的字符串
            ADefault: 可無,當找不到結點中包含的編號時返回的默認值
  返回結果:代表編號的字符串,如“12.ABD類別”返回“12”
}
function GetCodeFromComboItem(AComboBox: TComboBox; ADefault: string=''): string;
{ 功    能:根據下拉組合框文本內容截取其中包含的編號,編號應在最前,后跟點號
  入    參:AComboBox:必須,下拉組合框控件
            ADefault: 可無,當找不到文本中包含的編號時返回的默認值
  返回結果:代表編號的字符串,如當前項為“12.ABC”返回“12”
}

function IsKeyAlpha(Key: Word; Shift: TShiftState): Boolean;
{ 功    能:檢查按鍵值是否為字母(A..Z或a..z)
  入    參:Key: 必須,按鍵的鍵值
            Shift:必須,shift鍵的狀態
  返回結果:字母返回True,否則返回False
}

function IsKeyNumberic(Key: Word; Shift: TShiftState): Boolean;
{ 功    能:檢查按鍵值是否為數字(0..9)
  入    參:Key: 必須,按鍵的鍵值
            Shift:必須,shift鍵的狀態
  返回結果:數字返回True,否則返回False
}
function FillString(ASrcStr: string; AAddStr: string; AWholeLength: Integer;
         AFillMode: TFillStringMode; AForceLength: Boolean=True): string;
{ 功    能:用指定的字符填充字符串
  入    參:srcStr:必須,目標字符串
            AddStr: 必須,指定字符
            WholeLength: 必須,填充后字符串應該達到的長度
            FillMode: 必須,填充模式
                      0:左側填充
                      1:右側側填充
                      2:兩端填充
            ForceLength: 可無,源字符串超過指定長度時,是否強制截取為指定長度,默認為是
  返回結果:目標字符串填充指定字符后的字符串
}
function InsertEnter(sStr: WideString; iCharNumPerLine: Integer): string;
{ 功能:在一個字符串中指定位置插入換行符
  參數:sStr: 原字符串
        iCharNumPerLine:每行字符串字符個數
  返回:插入換行符后的字符串
}

procedure SplitStringToList(AStr, ASeperator: string; AList: TStrings; AClear: Boolean=True);
{ 功能:將一個由指定的字符分隔的字符串拆分到字符串列表中
  參數:AStr: 原字符串
        ASeprator: 分隔符
        AList: 字符列表
        AClear: 是否清空原列表
}

function ContractListToString(AList: TStrings; ASeprator: string): string;
{ 功能:將一個字符串列表合并到由指定的字符分隔的字符串中
  參數:AList: 字符列表
        ASeprator: 分隔符
  返回值:合并后的字符串
}
procedure AssignStringList(const ASrcStrList: TStringList; var ADestStrList: TStringList);
{ 功能:將一個字符串列表復制到一個字符串列表
  參數:ASrcStrList: 源字符串列表
        ADestStrList: 目標字符串列表
}
function ReplaceString(AStr, ASrcStr, ADestStr: string; ASensitive: Boolean = False;
         AStartPos: Integer = 0; ACount: Integer = 0): string;
{ 功能:將一個字符串中的子串替換為另外子串
  參數:AStr: 源字符串列表
        ASrcStr: 被替換的子串
        ADestStr: 替換后的子串
        ASensitive: 是否區分大小寫
        AStartPos: 查找的起始位置
        ACount: 替換個數,0為替換所有
  返回值:被替換后的字符串
}
function GetHzPy(const AHzStr: string): string;
function GetHzBiHua(chnstr:string):integer;

function NumberToChinese(ANumber: string; AHideZeros: Boolean = False): string;
{ 功能:將一個數字轉換成中文大寫
  參數:ANumber: 代表原數字的字符串
        AHideZeros: 當數字是零是是否返回空
  返回值:代表中文大寫數字的字符串
}
function MoneyToWord(ANumber: string): String;
{功能:將一個數字轉換成中文大寫的貨幣數
  參數:ANumber: 代表原數字的字符串
  返回值:代表中文大寫數字貨幣數的字符串
}

implementation

function NumberToChinese(ANumber: string; AHideZeros: Boolean = False): string;
const
  cWords: WideString = '零壹貳叁肆伍陸柒捌玖';
  cUnits1: WideString = '個拾佰仟';
  cUnits2: WideString = '億萬';
var
  sResult: string;
  sNumber, stNumber, siNumber, sfNumber, sTemp: string;
  I, J, iNumLen, iDotPos: Integer;

  function ToChinese(sNumber: string): WideString;
  var
    iaDigits: array[1..4] of Integer;
    sResult: WideString;
    I, iTemp: Integer;
  begin
    try
      iTemp := StrToInt(sNumber);
    except
      Result := '';
      Exit;
    end;
    iTemp := Abs(iTemp mod 10000);
    iaDigits[1] := iTemp mod 10;
    iTemp := iTemp div 10;
    iaDigits[2] := iTemp mod 10;
    iTemp := iTemp div 10;
    iaDigits[3] := iTemp mod 10;
    iTemp := iTemp div 10;
    iaDigits[4] := iTemp mod 10;
    iTemp := iTemp div 10;
    if iaDigits[1] <> 0 then
      sResult := cWords[iaDigits[1] + 1]
    else
      sResult := '';
    if iaDigits[2] <> 0 then
    begin
      sResult := cUnits1[2] + sResult;
      sResult := cWords[iaDigits[2] + 1] + sResult;
    end
    else if (iaDigits[3] <> 0) and (sResult <> '') then
      sResult := cWords[1] + sResult;
    if iaDigits[3] <> 0 then
    begin
      sResult := cUnits1[3] + sResult;
      sResult := cWords[iaDigits[3] + 1] + sResult;
    end
    else if (iaDigits[4] <> 0) and (sResult <> '') then
      sResult := cWords[1] + sResult;
    if iaDigits[4] <> 0 then
    begin
      sResult := cUnits1[4] + sResult;
      sResult := cWords[iaDigits[4] + 1] + sResult;
    end
    else if (sResult <> '') then
      sResult := cWords[1] + sResult;
    Result := sResult;
  end;
begin
  if (ANumber = '') then
  begin
    if AHideZeros then
      Result := ''
    else
      Result := '零';
    Exit;
  end
  else
  begin
    if Length(ANumber) > 30 then
    begin
      Result := '超大無比的數';
      Exit;
    end;
    try
      if (StrToFloat(ANumber) = 0) then
      begin
        if AHideZeros then
          Result := ''
        else
          Result := '零';
        Exit;
      end;
    except
      if AHideZeros then
        Result := ''
      else
        Result := '零';
      Exit;
    end;
  end;
  if ANumber[1] = '-' then
  begin
    I := 2;
    iNumLen := Length(ANumber) - 1;
  end
  else
  begin
    I := 1;
    iNumLen := Length(ANumber);
  end;
  //去掉字符中的逗號(千位符,例如123,456.00)
  sNumber := '';
  for I := 1 to Length(ANumber) do
  begin
    if ANumber[I] in ['0','1','2','3','4','5','6','7','8','9','.'] then
      sNumber := sNumber + ANumber[I];
  end;
  iDotPos := Pos('.', sNumber);
  if iDotPos > 0 then
  begin
    siNumber := Copy(sNumber, 1, iDotPos - 1);
    sfNumber := Copy(sNumber, iDotPos + 1, iNumLen - iDotPos);
  end
  else
  begin
    siNumber := sNumber;
    sfNumber := '';
  end;
  sResult := '';
  I := Length(siNumber);
  J := 0;
  while I > 0 do
  begin
    if I > 4 then
      stNumber := Copy(siNumber, I - 4 + 1, 4)
    else
      stNumber := Copy(siNumber, 1, I);
    sTemp := ToChinese(stNumber);
    if sTemp <> '' then
    begin
      if J > 0 then
        sResult := sTemp + cUnits2[J mod 2 + 1] + sResult
      else
        sResult := sTemp + sResult;
    end;
    I := I - 4;
    Inc(J);
  end;
  if Copy(sResult, 1, 2) = cWords[1] then
    sResult := Copy(sResult, 3, Length(sResult));
  if sfNumber <> '' then
  begin
    if sResult = '' then
      sResult := cWords[1];
    sResult := sResult + '點';
    for I := 1 to Length(sfNumber) do
    begin
      sResult := sResult + cWords[StrToInt(sfNumber[I]) + 1];
    end;
  end;
  if ANumber[1] = '-' then
    sResult := '負' + sResult;
  Result := sResult;
end;

function MoneyToWord(ANumber: string): String;
var
  Words: array[0..9] of string;
  Units: array[0..9] of string;
  iMoney, fMoney, Jiao, Fen: integer;
  i: integer;
  Digits: array[0..9] of integer;
  rTemp: real;
  Money: Real;
  sNumber: string;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99视频超级精品| 欧美午夜理伦三级在线观看| 99在线视频精品| 91精品欧美福利在线观看| 国产色婷婷亚洲99精品小说| 一区二区三区毛片| 国产精品自拍毛片| 欧美理论在线播放| 亚洲老司机在线| 成人中文字幕电影| 精品国产凹凸成av人导航| 亚洲国产精品人人做人人爽| 成人性生交大片免费看在线播放| 欧美男人的天堂一二区| 亚洲免费在线观看视频| 国产成人一级电影| 欧美成人午夜电影| 奇米在线7777在线精品| 欧美三级乱人伦电影| 自拍偷自拍亚洲精品播放| 国产91精品欧美| 久久九九久久九九| 黄网站免费久久| 精品美女在线观看| 久久精品国产秦先生| 欧美一级专区免费大片| 日日欢夜夜爽一区| 欧美精品v国产精品v日韩精品| 亚洲精品五月天| 色天使色偷偷av一区二区| 中文字幕在线不卡一区| 风间由美一区二区三区在线观看 | 欧美三级一区二区| 一区二区高清免费观看影视大全| 93久久精品日日躁夜夜躁欧美| 国产欧美中文在线| 国产成人精品免费网站| 国产精品少妇自拍| 成人看片黄a免费看在线| 国产人成亚洲第一网站在线播放| 国产精品自拍三区| 国产精品久久夜| 一本到一区二区三区| 亚洲小说欧美激情另类| 欧美日韩视频不卡| 久久99蜜桃精品| 欧美高清在线一区| 日本一区二区成人| 最好看的中文字幕久久| 成人国产精品免费| 最新日韩av在线| 在线视频国内一区二区| 亚洲国产人成综合网站| 91精品国产综合久久久蜜臀粉嫩| 天堂成人国产精品一区| 日韩三级.com| 从欧美一区二区三区| 玉米视频成人免费看| 欧美挠脚心视频网站| 国产一区二区h| 亚洲视频在线一区观看| 欧美精品aⅴ在线视频| 国产在线精品免费av| 国产精品理论在线观看| 欧美日本一区二区| 国产九色sp调教91| 一区二区三区四区在线免费观看| 宅男噜噜噜66一区二区66| 国产成人在线电影| 香港成人在线视频| 中文子幕无线码一区tr| 欧美三级午夜理伦三级中视频| 国精产品一区一区三区mba桃花| 亚洲另类中文字| 日韩视频在线你懂得| av色综合久久天堂av综合| 日日夜夜精品视频免费| 中文字幕一区二区三区视频 | 国产成人精品亚洲日本在线桃色| 亚洲欧洲精品一区二区三区 | 欧美亚洲日本一区| 国产乱码字幕精品高清av| 亚洲制服丝袜一区| 国产调教视频一区| 欧美一激情一区二区三区| 99综合电影在线视频| 国产精品综合在线视频| 亚洲第一成年网| 综合久久国产九一剧情麻豆| 久久色在线观看| 欧美狂野另类xxxxoooo| 99精品国产视频| 国产成人精品免费| 久88久久88久久久| 日韩电影免费一区| 一区二区三区中文在线观看| 国产亚洲欧美色| 欧美成人在线直播| 日韩一卡二卡三卡国产欧美| 欧美在线观看18| 99re在线精品| jiyouzz国产精品久久| 国产成人一区二区精品非洲| 精品夜夜嗨av一区二区三区| 美女高潮久久久| 免费成人在线网站| 蜜臀91精品一区二区三区| 日本va欧美va精品发布| 首页国产欧美日韩丝袜| 五月天网站亚洲| 日韩精品一二区| 日韩精彩视频在线观看| 肉肉av福利一精品导航| 婷婷国产v国产偷v亚洲高清| 亚洲电影在线播放| 亚洲成人福利片| 日韩主播视频在线| 日本不卡不码高清免费观看| 青青草国产精品亚洲专区无| 日韩 欧美一区二区三区| 亚洲丶国产丶欧美一区二区三区| 亚洲精品亚洲人成人网| 亚洲午夜电影在线观看| 图片区小说区国产精品视频| 天堂av在线一区| 狠狠色狠狠色综合日日91app| 国产精品影音先锋| 成人动漫一区二区在线| 91麻豆swag| 欧美一区二区三区影视| 精品国产网站在线观看| 国产拍欧美日韩视频二区| 亚洲免费大片在线观看| 亚洲成人免费电影| 美女视频免费一区| 成人性生交大片免费看视频在线| 一本到不卡精品视频在线观看| 欧美日韩免费高清一区色橹橹 | 91色.com| 欧美精品欧美精品系列| 久久综合九色综合欧美98| 国产视频一区二区在线| 一区二区三区四区不卡在线 | 久久久99久久| 亚洲人成网站影音先锋播放| 亚洲午夜久久久久久久久久久| 免费观看在线综合色| 国产成人精品三级麻豆| 日本电影亚洲天堂一区| 日韩欧美美女一区二区三区| 亚洲国产激情av| 亚洲第一在线综合网站| 国产美女精品在线| 在线视频你懂得一区| 久久免费午夜影院| 一区二区三区四区av| 国产伦理精品不卡| 欧美亚洲日本一区| 国产精品情趣视频| 人禽交欧美网站| 一本一道久久a久久精品| 日韩欧美二区三区| 亚洲综合色噜噜狠狠| 国产精品系列在线观看| 欧美精品自拍偷拍动漫精品| 欧美激情在线看| 另类中文字幕网| 欧亚洲嫩模精品一区三区| 久久蜜臀精品av| 蜜臀精品一区二区三区在线观看| 91美女片黄在线观看| 精品国产一区二区三区久久影院 | 国产精品乱码一区二三区小蝌蚪| 天堂资源在线中文精品| av成人老司机| 国产亚洲综合在线| 精品一区二区三区在线播放视频| 欧美三级日韩三级| 一区二区三区在线视频播放| 东方aⅴ免费观看久久av| 日韩免费一区二区三区在线播放| 亚洲欧美偷拍三级| 成人午夜免费视频| 久久青草欧美一区二区三区| 日韩在线a电影| 欧美日韩黄色一区二区| 亚洲最新视频在线播放| 91丨porny丨蝌蚪视频| 国产欧美日韩中文久久| 久久电影国产免费久久电影 | 欧美优质美女网站| 亚洲人xxxx| 色诱视频网站一区| 亚洲乱码国产乱码精品精的特点| thepron国产精品| 国产精品久久综合| 97se亚洲国产综合在线| ...xxx性欧美| 色综合中文字幕| 一区二区三区欧美日韩|