Jak dodać wiodące zera do liczby (format Delphi)

Różne zastosowania wymagają określonych wartości, aby były zgodne z paradygmatami strukturalnymi. Na przykład numery ubezpieczenia społecznego mają zawsze dziewięć cyfr. Niektóre raporty wymagają wyświetlania liczb ze stałą liczbą znaków. Na przykład numery sekwencji zwykle zaczynają się od 1 i zwiększają bez końca, więc są wyświetlane z zerami wiodącymi, aby przedstawić atrakcyjność wizualną.

Jak Programista Delphi, twoje podejście do dodawania liczby z wiodącymi zerami zależy od konkretnego przypadku użycia tej wartości. Możesz po prostu wpisać wartość wyświetlaną lub przekonwertować liczbę na ciąg znaków w celu przechowywania w bazie danych.

Wyświetl metodę wypełniania

Użyj prostej funkcji, aby zmienić sposób wyświetlania numeru. Posługiwać się format dokonać konwersji, podając wartość dla długość (całkowita długość końcowego wyniku) i liczba, którą chcesz wypełnić:

str: = Format ('%. * d, [długość, liczba])

Aby wstawić liczbę 7 dwoma zerami wiodącymi, podłącz te wartości do kodu:

str: = Format ('%. * d, [3, 7]);

instagram viewer

Wynik to 007 z wartością zwróconą jako ciąg.

Konwertuj na ciąg znaków

Użyj funkcji wypełniania, aby dodać zera na początku (lub dowolny inny znak) w dowolnym momencie w skrypcie. Aby przekonwertować wartości, które są już liczbami całkowitymi, użyj:

funkcja LeftPad (wartość: liczba całkowita; długość: liczba całkowita = 8; pad: char = „0”): string; przeciążać; 

zaczynać

 wynik: = RightStr (StringOfChar (pad, długość) + IntToStr (wartość), długość); 

koniec;

Jeśli konwertowana wartość jest już ciągiem, użyj:

funkcja LeftPad (wartość: ciąg; długość: liczba całkowita = 8; pad: char = „0”): string; przeciążać;

zaczynać

 wynik: = RightStr (StringOfChar (pad, długość) + wartość, długość);

koniec;

To podejście działa z Delfy 6 i nowsze wersje. Oba te bloki kodu mają domyślnie znak dopełniający 0 o długości siedmiu powracających znaków; wartości te mogą być modyfikowane w celu dostosowania do Twoich potrzeb.

Po wywołaniu LeftPad zwraca wartości zgodnie z określonym paradygmatem. Na przykład, jeśli ustawisz wartość całkowitą na 1234, wywoływanie LeftPad:

i: = 1234;
r: = LeftPad (i);

zwróci wartość ciągu 0001234.