티스토리 뷰
반응형
델파이 프로그래밍 하다 보면,
문자열 라이브러리에서 제공되지 않는 유익한 함수가 필요할 때가 있습니다.
아래 문자열 함수는 내가 항시 정의하고 사용하는 함수입니다.
필요하신 분은 별도로 함수 정의하시고 사용하시면 될 듯 합니다.
// 문자열 aSrcStr에서 서브문자열 aCutStr을 구분문자열로 xCnt만큼 이후 문자열을 반환함
// 예: 서울시 강남구 역삼동 1234 강남빌딩 3층 : 역삼동 이후문자열을 받고 싶을 때
// 문자열 aSrcStr에서 서브문자열 aCutStr을 구분문자열로 xCnt만큼 이후 문자열을 반환함
// 예: 서울시 강남구 역삼동 1234 강남빌딩 3층 : 역삼동 이후문자열을 받고 싶을 때
function SeperateString(aSrcStr, aCutStr:String; aCnt:Integer):String;
var
xTemp : String;
I : Integer;
begin
// 기본 반환값 설정
SeperateString := aSrcStr;
if aSrcStr = '' then Exit;
if aCutStr = '' then Exit;
if aCnt < 1 then Exit;
xTemp := aSrcStr;
for I := 1 to aCnt do
begin
if Pos(aCutStr, xTemp) > 0 then
begin
xTemp := Trim(Copy(xTemp, Pos(aCutStr, xTemp), Length(xTemp)));
end
else
begin
SeperateString := xTemp;
Exit;
end;
end;
SeperateString := xTemp;
end;
// 스트링리스트 aStrList를 구분자 aDivS로 구반한 문자열로 반환
// 예 : 강남구,서초구
//---------------------------------------------------------------------------------------------------
// 스트링리스트 aStrList를 구분자 aDivS로 구반한 문자열로 반환
// 예 : 강남구,서초구
function GetCommaStrByStrList(aStrList: TStringList; aDivS: String): String;
var
xIdx: Integer;
xResult: String;
begin
Result := '';
if aStrList.Count = 0 then
exit;
try
xResult := '';
for xIdx := 0 to aStrList.Count - 1 do
xResult := xResult + aDivS + aStrList[xIdx];
xResult := Copy(xResult, Length(aDivS) + 1, MAXINT);
except
end;
Result := xResult;
end;
// 문자열 aSrcStr에서 숫자만으로 추출된 문자열 반환
// ( 소숫점과 음수값을 포함)
// 예> 1234.56 -1234
//---------------------------------------------------------------------------------------------------
// 문자열 aSrcStr에서 숫자만으로 추출된 문자열 반환
// ( 소숫점과 음수값을 포함)
// 예> 1234.56 -1234
function GetNumberPlus(aSrcStr: String): String;
var
xIdx : Integer;
xSrcStr : String;
xResult : String;
begin
xResult := '';
xSrcStr := Trim(aSrcStr);
if xSrcStr = '' then Exit;
try
for xIdx := 1 To Length(xSrcStr) do
if ((xSrcStr[xIdx] >= '0') and (xSrcStr[xIdx] <= '9')) or (xSrcStr[xIdx] = '.') or (xSrcStr[xIdx] = '-') then
xResult := xResult + xSrcStr[xIdx];
except
end;
Result := xResult;
end;
// 문자열 aSrcStr에서 숫자만으로 추출된 문자열 반환.
// 예> 010-1234-1234 - 01012341234
//---------------------------------------------------------------------------------------------------
// 문자열 aSrcStr에서 숫자만으로 추출된 문자열 반환.
// 예> 010-1234-1234 - 01012341234
function GetNumber(aSrcStr: String): String;
var
xIdx : Integer;
xSrcStr : String;
xResult : String;
begin
xResult := '';
xSrcStr := Trim(aSrcStr);
if xSrcStr = '' then Exit;
try
for xIdx := 1 To Length(xSrcStr) do
if (xSrcStr[xIdx] >= '0') and (xSrcStr[xIdx] <= '9') then
xResult := xResult + xSrcStr[xIdx];
except
end;
Result := xResult;
end;
// 주민번호 유효검사
//---------------------------------------------------------------------------------------------------
// 주민번호 유효검사
function CheckJumin(aNo: string): Boolean;
const Weight: packed array[1..12] of Integer = (2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5);
var Loop, Sum, Rest: Integer;
begin
if Length(aNo) <> 13 then Result := False
else
try
Sum := 0;
for Loop := 1 to 12 do
Sum := Sum + StrToInt(aNo[Loop]) * Weight[Loop];
Rest := 11 - (Sum mod 11);
if Rest = 11 then Rest := 1;
if Rest = 10 then Rest := 0;
Result := Char(Rest + 48) = aNo[13];
except
Result := False;
end;
end;
// 사업자등록번호 유효검사
//---------------------------------------------------------------------------------------------------
// 사업자등록번호 유효검사
function CheckSaUpJa(aNo: string): Boolean;
const Weight: packed array[1..8] of Integer = (1, 3, 7, 1, 3, 7, 1, 3);
var TempStr: string;
Loop, Sum: Integer;
begin
Result := True;
Sum := 0;
for Loop := 1 to 8 do
Sum := Sum + StrToInt(aNo[Loop]) * Weight[Loop];
Loop := StrToInt(aNo[9]) * 5;
Sum := Sum + (Loop div 10) + (Loop mod 10);
Sum := Sum mod 10;
if Sum = 0 then TempStr := '0'
else TempStr := IntToStr(10 - Sum);
if TempStr <> aNo[10] then Result := False;
end;
// 전화번호에 대시(-) 무조건 생성
// 예> 01012341234 : 010-1234-1234
//---------------------------------------------------------------------------------------------------
// 전화번호에 대시(-) 무조건 생성
// 예> 01012341234 : 010-1234-1234
function GetTelNumByAddDash(const aSrcTel: String): String;
var
TelNumber: String;
s1, s2, s3: string;
num: Integer;
begin
TelNumber := StringReplace(Trim(aSrcTel), '-', '', [rfReplaceAll]);
num := Length(TelNumber);
if num = 9 then
begin
s1 := Copy(TelNumber, 1, 2);
s2 := Copy(TelNumber, 3, 3);
s3 := Copy(TelNumber, 6, 4);
end
else if num = 10 then
begin
if Copy(CID_TelNumber, 1, 2) = '02' then
begin
s1 := Copy(TelNumber, 1, 2);
s2 := Copy(TelNumber, 3, 4);
s3 := Copy(TelNumber, 7, 4);
end
else
begin
s1 := Copy(TelNumber, 1, 3);
s2 := Copy(TelNumber, 4, 3);
s3 := Copy(TelNumber, 7, 4);
end;
end
else if num = 11 then
begin
s1 := Copy(TelNumber, 1, 3);
s2 := Copy(TelNumber, 4, 4);
s3 := Copy(TelNumber, 8, 4);
end;
if (num >= 9) and (num <= 11) then
TelNumber := s1 + '-' + s2 + '-' + s3;
GetTelNumByAddDash := TelNumber;
end;
반응형
'프로그래밍' 카테고리의 다른 글
[Delphi] 델파이 음력 양력 변환 함수 (0) | 2023.02.07 |
---|---|
[Delphi] 델파이 폼위치 기록 INI파일 이용하여 위치저장 및 복구 함수 (0) | 2023.02.06 |
[Delphi] 델파이 썸네일 등 이미지 파일크기 축소 (0) | 2023.02.06 |
[Delphi] 델파이 PC명칭 OS버젼 MAC주소 HDD볼륨 구하는 함수 (0) | 2023.02.06 |
[Delphi] 델파이 내부IP 외부IP 구하는 함수 (0) | 2023.02.06 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 델파이날짜연산 #델파이날짜함수 #날짜연산 #날짜함수 #델파이
- 전화특허
- 외부IP구하기
- 와룡공원드라마촬영장소
- 명륜유치원
- 문자보내기 #PC문자보내기 #콜백문자 #콜백서비스 #자동문자 #통화매니저
- Hexa문자열변환
- 부재중문자
- 고객관리 #회원관리 #휴대폰주소록 #문자보내기 #콜백문자 #콜백서비스 #자동문자 #통화매니저
- 폼위치저장
- 통화매니저 #KT통화매니저 #발신자정보표시 #고객관리 #콜백문자 #문자보내기
- 성북동판자촌
- 미니드릴
- 통화매니저
- 소형전기드릴
- 소형전동드릴
- 선물하기좋은차
- 가정용전기드릴
- 그레이엄빌
- 델파이
- 내부IP구하기
- 도메인IP변환
- 가정용전기드라이버
- 전화번호대시넣기
- 동부시립병원
- 성북동부자마을
- 고객이음 #문자보내기 #단체문자 #고객관리 #회원관리 #콜백문자 #콜백서비스 #자동문자
- 가정용전동드라이버
- 한양도성둘레길
- 유기농건강차
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함