언어 공부/Delphi

[Delphi] 프로그래밍 / Delphi / 문자열 처리 - 실무

Code P 2024. 2. 5. 15:28
반응형

[서론]

Delphi 프로그래밍에서 종종 데이터를 특정 형식에 맞게 변환해야 할 필요가 있습니다. 예를 들어, '연도-숫자' 형식의 문자열을 다루면서, 숫자 부분을 일정 길이로 맞추는 상황이 그러합니다. 이 글에서는 '202310'과 같은 문자열을 '2023-0010'로 변환하는 방법을 알아봅니다.

 

[문제 상황]

주어진 문자열이 '연도(4자리) + 숫자' 형식일 때, 숫자 부분이 항상 5자리가 되도록 왼쪽에 '0'을 추가해야 합니다. 예를 들어 '20231'은 '2023-00001'로 변환되어야 합니다. 그러나 '202312345'와 같이 이미 5자리 이상인 숫자는 그대로 유지해야 합니다.

 

[해결 방법]

해결을 위해 두 가지 주요 단계를 따릅니다: 문자열 분리와 조건부 포맷팅입니다.


  1. 문자열 분리: Delphi에서 Copy 함수를 사용하여 연도와 숫자 부분을 분리합니다.
  2. 조건부 포맷팅: Format 함수를 사용하여 숫자 부분이 5자리 미만일 경우 왼쪽에 '0'을 채웁니다.

[코드 예시]

더보기

function FormatYearNumber(const InputText: string): string;

var

  YearPart, NumberPart: string;
begin
  YearPart := Copy(InputText, 1, 4);
  NumberPart := Copy(InputText, 5, Length(InputText));

  if (Length(NumberPart) < 5) and (NumberPart <> '') then
    NumberPart := Format('%.5d', [StrToInt(NumberPart)]);

  Result := YearPart + '-' + NumberPart;
end;


[사용 방법]

이 함수는 '20231'과 같은 입력에 대해 '2023-00001'을 반환하며, '202312345'는 변환 없이 그대로 '2023-12345'를 반환합니다.

 

[결론]

Delphi에서 Copy와 Format 함수를 조합하여 문자열을 조건에 따라 다르게 포맷팅하는 방법은 매우 유용합니다. 이를 통해 데이터를 표준화하고, 프로그램의 다양한 요구 사항을 충족시킬 수 있습니다.

반응형