Главная страница
    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.48 MB
Время: 0.014 c
11-1090511223
Максим
2004-07-22 19:47
2005.09.18
FindComponent


14-1124688619
Guest_03
2005-08-22 09:30
2005.09.18
Подключил мобильник и чуть не сжег БП !


1-1124262559
Найти
2005-08-17 11:09
2005.09.18
drag&amp;drop в TListBox


8-1115292435
TS
2005-05-05 15:27
2005.09.18
Конвертация BMP to JPEG


2-1123741993
Novice
2005-08-11 10:33
2005.09.18
указатели - 2





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский