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]);
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.