2010-05-26 1 views
3

이 질문은 This question과 관련이 있습니다. 일부 Windows 탐색기 기능은 Delphi 응용 프로그램에서 자동으로 사용됩니다.메트릭 접두사를 사용하여 숫자를 표시하는 방법 (명시 적으로 코딩하지 않음)이 있습니까?

Delphi에서 메트릭스 접두사를 사용하여 정수를 포맷하는 방법이 있습니까? 어떻게 든 자동으로 Windows 탐색기와 같은 결과를 얻을 수 있습니까? 1024에서 1.0 K로 자동 변환하는 것을 의미합니다.

는 이제

FormatMetric('FileSize = %d', [26112], 1,'B') 
// where the third parameter is the number of decimal digits 
// and the fourth is the string that is appended 

같은 것이 물론

25.5 KB 

내가이 코딩 할 수 있습니다 반환 가정 해 봅시다하지만,이 같은 RTL 무언가가있다?

+0

KB 또는 KiB를 참조하십시오. 1024는 메트릭 접두사가 아닙니다. –

+0

메트릭스 접두사는 K, M, G, T, P를 의미합니다 (킬로, 메가, 기가, 테라, 페타). 나는 그 값을 표시하는 파일 시스템 방식을 언급하고있다. – LaBracca

답변

6

Windows API 호출 StrFormatByteSizeA가 필요합니다.

msdn : http://msdn.microsoft.com/en-us/library/bb759974%28VS.85%29.aspx

+0

감사합니다.이 API는 필요한 것입니다. 델파이 래퍼가 없다고 상상할 수 있지만 필요하지는 않습니다. – LaBracca

+0

'ShLwAPI.pas;에'StrFormatByteSizeA'와'StrFormatByteSizeW' 모두에 대한 델피 선언문이 있습니다. 평소처럼 uses 절에 추가하십시오. –

+0

예, 저는 이것을 지금 발견했습니다. 어쨌든 StrFormatByteSizeW를 사용하더라도 2GB보다 큰 값을 얻을 수 없습니다. 뭐야? – LaBracca

관련 문제