코딩 이야기/델파이 코딩

델파이 문자열 포맷 함수 종류 및 예시

안개소리 2025. 4. 21. 14:21

델파이 문자열 포맷 함수 종류 및 예시

델파이에서 문자열을 특정 형식으로 만들거나(포맷팅), 다른 데이터 타입을 문자열로 변환하는 함수들은 주로 SysUtils 유닛에 있습니다.

사용해야 할 PAS 유닛

uses SysUtils;

주요 문자열 포맷/변환 함수 및 예시

Format 함수

기능: 지정된 포맷 문자열과 인자 목록을 사용하여 포맷된 문자열을 생성합니다. 가장 유연한 문자열 포맷 기능을 제공합니다.

형식 지정자 예시: %s (문자열), %d (정수), %f (실수), %n (통화), %x (16진수) 등

예시:

Format 함수 사용 예시 (설명, 코드, 결과 통합 셀)
예시 종류 예시 내용 (설명, 코드, 결과)
기본 포맷 기본적인 문자열과 정수를 포맷합니다.

Name := '홍길동';
Age := 30;
FormattedString := Format('이름: %s, 나이: %d', [Name, Age]);
ShowMessage(FormattedString);

결과: 이름: 홍길동, 나이: 30
실수 포맷 실수를 소수점 이하 첫째 자리까지 표시합니다.

Height := 175.5;
FormattedString := Format('키: %.1f cm', [Height]);

결과: 키: 175.5 cm
통화 포맷 (%n) 통화 형식으로 포맷합니다 (시스템 설정 따름).

Money := 12345.67;
FormattedString := Format('금액: %n', [Money]);

결과 예시: 금액: ₩12,345.67 (한국 설정 시)
통화 포맷 (%m) 통화 형식으로 포맷하며 소수점 이하 2자리를 강제합니다.

Money := 12345.67;
FormattedString := Format('금액 (강제 2자리): %m', [Money]);

결과 예시: 금액 (강제 2자리): ₩12,345.67
16진수 포맷 정수를 16진수 문자열로 포맷합니다.

FormattedString := Format('정수 (16진수): %x', [255]);

결과: 정수 (16진수): FF
너비 지정 (우측 정렬) 문자열을 10칸 너비에 우측 정렬하여 포맷합니다.

Name := '홍길동';
FormattedString := Format('이름 (10칸 우측 정렬): %10s', [Name]);

결과 예시: 이름 (10칸 우측 정렬):       홍길동
너비 지정 (좌측 정렬) 문자열을 10칸 너비에 좌측 정렬하여 포맷합니다.
Name := '홍길동';
FormattedString := Format('이름 (10칸 좌측 정렬): %-10s', [Name]);

결과 예시: 이름 (10칸 좌측 정렬): 홍길동      
복합 포맷 여러 인자와 다양한 형식을 함께 사용하여 포맷합니다.

Name := '홍길동';
Age := 30;
Height := 175.5;
FormattedString := Format('종합 정보: 이름=%s, 나이=%d, 키=%.2f', [Name, Age, Height]);

결과 예시: 종합 정보: 이름=홍길동, 나이=30, 키=175.50
 

타입 변환 함수 (데이터 타입을 문자열로)

이 함수들은 특정 데이터 타입의 값을 해당 타입의 기본 문자열 표현으로 변환해 줍니다. 간단한 변환에 유용합니다.

IntToStr 함수

기능: Integer 값을 문자열로 변환합니다.

예시:

var
  Count: Integer;
  CountStr: string;
begin
  Count := 123;
  CountStr := IntToStr(Count);
  ShowMessage('카운트: ' + CountStr); // 결과 예시: 카운트: 123
end;

FloatToStr 함수

기능: 부동 소수점 값을 문자열로 변환합니다. 시스템 설정을 따릅니다.

예시:

var
  Value: Double;
  ValueStr: string;
begin
  Value := 123.456;
  ValueStr := FloatToStr(Value);
  ShowMessage('값: ' + ValueStr); // 결과 예시: 값: 123.456 (시스템 설정에 따라 다를 수 있음)
end;

FloatToStrF 함수

기능: 부동 소수점 값을 지정된 포맷과 정밀도로 문자열로 변환합니다.

포맷 종류 예시: ffCurrency, ffFixed, ffExponent

예시:

var
  Value: Double;
  ValueStr: string;
begin
  Value := 123.45678;
  // 소수점 이하 2자리 고정 형식
  ValueStr := FloatToStrF(Value, ffFixed, 10, 2); // 값, 형식, 전체 자릿수, 소수점 이하 자릿수
  ShowMessage('고정 형식: ' + ValueStr); // 결과 예시: 고정 형식: 123.46

  // 통화 형식 (시스템 설정 따름)
  ValueStr := FloatToStrF(Value, ffCurrency, 10, 2);
  ShowMessage('통화 형식: ' + ValueStr); // 결과 예시: 통화 형식: ₩123.46 (한국 설정 시)
end;

DateToStr, TimeToStr, DateTimeToStr 함수

기능: TDateTime 날짜 또는 시간 값을 시스템 기본 형식의 문자열로 변환합니다. (SysUtils에 있으며, 날짜/시간 관련 함수입니다.)

예시:

var
  DT: TDateTime;
  DateStr, TimeStr, DateTimeStr: string;
begin
  DT := Now;
  DateStr := DateToStr(DT);
  TimeStr := TimeToStr(DT);
  DateTimeStr := DateTimeToStr(DT);
  ShowMessage('날짜: ' + DateStr);
  ShowMessage('시간: ' + TimeStr);
  ShowMessage('날짜 시간: ' + DateTimeStr);
end;

BoolToStr 함수

기능: Boolean 값을 문자열 ('TRUE' 또는 'FALSE' 또는 지정한 문자열)로 변환합니다.

예시:

var
  IsActive: Boolean;
  StatusStr: string;
begin
  IsActive := True;
  StatusStr := BoolToStr(IsActive); // 결과 예시: 'TRUE' 또는 '참'
  ShowMessage('상태 1: ' + StatusStr);

  StatusStr := BoolToStr(IsActive, True); // 두 번째 인자가 True이면 0/1 반환 (1)
  ShowMessage('상태 2: ' + StatusStr); // 결과 예시: '1'

  StatusStr := BoolToStr(IsActive, '활성', '비활성'); // True/False 시 문자열 직접 지정
  ShowMessage('상태 3: ' + StatusStr); // 결과 예시: '활성'
end;

Format 함수는 다양한 인자를 받아 복잡한 포맷을 적용할 때 주로 사용되며, IntToStr, FloatToStr 같은 함수들은 특정 타입의 값을 간단히 문자열로 변환할 때 편리하게 사용할 수 있습니다.