Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Вниз

Как преобразовать число потери нулей впереди   Найти похожие ветки 

 
Русланка   (2005-08-11 13:32) [0]

Необходимо чтобы числа отображались в пятизначной форме
00001
00453

При преобразовании IntToStr незначащие нули спереди отбрасываются. Есть ли другая функция, чтобы не отбрасывала нули?


 
Digitman ©   (2005-08-11 13:35) [1]

решение "в лоб" :

FormatFloat("00000", StrToFloat(IntToStr(MyIntValue)));


 
Leonid Troyanovsky ©   (2005-08-11 13:51) [2]


> Русланка   (11.08.05 13:32)  

> Есть ли другая функция, чтобы не отбрасывала нули?


Format("%.5d", [453]);

--
Regards, LVT.


 
afanasic   (2005-08-11 14:15) [3]

st := IntToStr(x);
while Length(st) < 5 do
 st := "0"+st;


 
Leonid Troyanovsky ©   (2005-08-11 14:25) [4]


> afanasic   (11.08.05 14:15) [3]
> st := IntToStr(x);
> while Length(st) < 5 do
>  st := "0"+st;


Тогда уж RightStr("00000"+IntToStr(st), 5)

--
Regards, LVT.


 
Fay ©   (2005-08-11 14:32) [5]

2 Leonid Troyanovsky ©   (11.08.05 14:25) [4]
А если 123456789 ? 8)


 
Leonid Troyanovsky ©   (2005-08-11 14:36) [6]


> Fay ©   (11.08.05 14:32) [5]
> 2 Leonid Troyanovsky ©   (11.08.05 14:25) [4]
> А если 123456789 ? 8)


Вот такая у нас пятизначная форма.
Зато нули не отбрасывает.

--
Regards, LVT.


 
afanasic   (2005-08-11 16:30) [7]


> Leonid Troyanovsky

На пальцах, чтобы не задействовать лишние модули и неизвестные функции...
Можно усложнить с обрезанием:
st := Copy(IntToStr(x),1,5);
while Length(st) < 5 do
st := "0"+st;


 
Fay ©   (2005-08-11 16:37) [8]

2 afanasic   (11.08.05 16:30) [7]
Вы - маньяк?! Без конкатенации в цикле жить не можете?


 
afanasic   (2005-08-11 16:57) [9]

А если это запихнуть в функцию, а функцию в модуль SysUtils, тогда ей будут пользоваться?
Это первое, что приходит в голову, если не знаешь стандартных...
По крайней мере, какой вопрос, такой ответ...
Другой вариант:
st := "00000"+IntToStr(x);
st := Copy(st,Length(st)-4,5);


 
Alexander Panov ©   (2005-08-11 18:28) [10]

function PadL(const Src: String; Len: Integer; Ch: Char="0"): String; overload;
var
   LenSrc: Integer;
begin
   Result := Trim(Src);
   LenSrc := Length(Result);
   if LenSrc>Len then Exit;
   Result := StringOfChar(Ch,Len-LenSrc)+Result;
end;

function PadL(const Src: Integer; Len: Integer): String; overload;
begin
   Result := PadL(Src,Len);
end;


 
Leonid Troyanovsky ©   (2005-08-11 20:06) [11]


> Fay ©   (11.08.05 16:37) [8]
> 2 afanasic   (11.08.05 16:30) [7]
> Вы - маньяк?! Без конкатенации в цикле жить не можете?


На самом деле, не все так уж плохо.
Т.е., для строк память выделяется порциями,
ну, скажем, 8 байт (не помню).

--
Regards, LVT.


 
Fay ©   (2005-08-11 20:56) [12]

2 Leonid Troyanovsky ©   (11.08.05 20:06) [11]
Достаточно плохо. Разница в скорости - в разы.


 
Leonid Troyanovsky ©   (2005-08-11 21:07) [13]


> Fay ©   (11.08.05 20:56) [12]
> 2 Leonid Troyanovsky ©   (11.08.05 20:06) [11]
> Достаточно плохо. Разница в скорости - в разы.


 Это доказательно?

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2005-08-11 21:12) [14]


> Leonid Troyanovsky ©   (11.08.05 21:07) [13]

>  Это доказательно?


 Фу-ты. В смысле, доказуемо?

--
Regards, LVT.


 
Fay ©   (2005-08-11 21:26) [15]

2 Leonid Troyanovsky ©   (11.08.05 21:12) [14]
Конечно. Я сначала проверил. Можете тоже проверить 8).



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.01 c
4-1122055520
Ученик
2005-07-22 22:05
2005.09.18
Зависание Thread-ов в функциях TMemoryManager (Delphi 2005)


3-1123231655
Elvis
2005-08-05 12:47
2005.09.18
DBGridEh забитый в ручную


9-1116757621
new1
2005-05-22 14:27
2005.09.18
ODE! Мой FPS Project.


14-1124453310
_Lex_
2005-08-19 16:08
2005.09.18
Новосибирск MP


3-1123158611
Вольный Стрелок
2005-08-04 16:30
2005.09.18
Как определить список пользовательских (несистемных) индексов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский