function VolumeID(DriveChar: Char): string;
var
OldErrorMode: Integer;
NotUsed, VolFlags: DWORD;
Buf: array [0..MAX_PATH] of Char;
begin
OldErrorMode := SetErrorMode(SEM_FAILCRITICALERRORS);
try
Buf[0] := #$00;
if GetVolumeInformation(PChar(DriveChar + ':\'), Buf, DWORD(sizeof(Buf)),
nil, NotUsed, VolFlags, nil, 0) then
SetString(Result, Buf, StrLen(Buf))
else Result := '';
if DriveChar < 'a' then
Result := AnsiUpperCaseFileName(Result)
else
Result := AnsiLowerCaseFileName(Result);
Result := Format('[%s]',[Result]);
finally
SetErrorMode(OldErrorMode);
end;
end;
Помогите....узнать метку диска
Как округлить тип real(float) до сотен?(например было 6,2545, а необходимо получить 6,25)
Заранее благодарен
:P
Цитата:
Originally posted by fogg
Как узнать метку диска?
Как округлить тип real(float) до сотен?(например было 6,2545, а необходимо получить 6,25)
Заранее благодарен
:P
Как узнать метку диска?
Как округлить тип real(float) до сотен?(например было 6,2545, а необходимо получить 6,25)
Заранее благодарен
:P
1.
Код:
ЗЫ: Выдрал из VCL (модуль FileCtrl), мож че лишнее будет - смотри сам...
2.
Код:
Result:=Round(Value * 100) / 100
подойдет?
Цитата:
Originally posted by makbeth
подойдет?
Код:
Result:=Round(Value * 100) / 100
подойдет?
Думаю, он имел несколько другое в виду - форматированный вывод вещественного числа с заданной точностью:
Код:
Str:=Format('Rounded float number is %.3g', [float])
Цитата:
Originally posted by makbeth
1.
ЗЫ: Выдрал из VCL (модуль FileCtrl), мож че лишнее будет - смотри сам...
2.
подойдет?
1.
Код:
function VolumeID(DriveChar: Char): string;
var
OldErrorMode: Integer;
NotUsed, VolFlags: DWORD;
Buf: array [0..MAX_PATH] of Char;
begin
OldErrorMode := SetErrorMode(SEM_FAILCRITICALERRORS);
try
Buf[0] := #$00;
if GetVolumeInformation(PChar(DriveChar + ':\'), Buf, DWORD(sizeof(Buf)),
nil, NotUsed, VolFlags, nil, 0) then
SetString(Result, Buf, StrLen(Buf))
else Result := '';
if DriveChar < 'a' then
Result := AnsiUpperCaseFileName(Result)
else
Result := AnsiLowerCaseFileName(Result);
Result := Format('[%s]',[Result]);
finally
SetErrorMode(OldErrorMode);
end;
end;
var
OldErrorMode: Integer;
NotUsed, VolFlags: DWORD;
Buf: array [0..MAX_PATH] of Char;
begin
OldErrorMode := SetErrorMode(SEM_FAILCRITICALERRORS);
try
Buf[0] := #$00;
if GetVolumeInformation(PChar(DriveChar + ':\'), Buf, DWORD(sizeof(Buf)),
nil, NotUsed, VolFlags, nil, 0) then
SetString(Result, Buf, StrLen(Buf))
else Result := '';
if DriveChar < 'a' then
Result := AnsiUpperCaseFileName(Result)
else
Result := AnsiLowerCaseFileName(Result);
Result := Format('[%s]',[Result]);
finally
SetErrorMode(OldErrorMode);
end;
end;
ЗЫ: Выдрал из VCL (модуль FileCtrl), мож че лишнее будет - смотри сам...
2.
Код:
Result:=Round(Value * 100) / 100
подойдет?
Спасибо! Все работает