Ulike anvendelser krever spesifikke verdier for å samsvare med strukturelle paradigmer. For eksempel er personnummer alltid ni sifre lange. Noen rapporter krever at tall vises med en fast mengde tegn. Sekvensnumre starter for eksempel vanligvis med 1 og trinn uten slutt, slik at de vises med ledende nuller for å presentere en visuell appell.
Som en Delphi-programmerer, din tilnærming til å legge til et tall med ledende nuller avhenger av den spesifikke bruksaken for den verdien. Du kan ganske enkelt velge å legge inn en visningsverdi, eller du kan konvertere et nummer til en streng for lagring i en database.
Vis polstermetode
Bruk en enkel funksjon for å endre hvordan nummeret ditt vises. Bruk format å gjøre konverteringen ved å levere en verdi for lengde (den totale lengden på den endelige utdata) og antallet du vil tømme:
str: = Format ('%. * d, [lengde, antall])
For å tømme nummer 7 med to ledende nuller, kobler du disse verdiene til koden:
str: = Format ('%. * d, [3, 7]);
Resultatet er 007 med verdien returnert som en streng.
Konverter til strengmetode
Bruk en polstringfunksjon for å legge ledende nuller (eller et hvilket som helst annet tegn) når du trenger det i skriptet. For å konvertere verdier som allerede er heltall, bruk:
funksjon LeftPad (verdi: heltall; lengde: heltall = 8; pad: char = '0'): streng; overbelastning;
begynne
resultat: = RightStr (StringOfChar (pute, lengde) + IntToStr (verdi), lengde);
slutt;
Hvis verdien som skal konverteres allerede er en streng, bruk:
funksjon LeftPad (verdi: streng; lengde: heltall = 8; pad: char = '0'): streng; overbelastning;
begynne
resultat: = RightStr (StringOfChar (pute, lengde) + verdi, lengde);
slutt;
Denne tilnærmingen fungerer med Delphi 6 og senere utgaver. Begge disse kodeblokkene har standard en polstringstegn på 0 med en lengde på syv returnerte tegn; disse verdiene kan bli endret for å imøtekomme dine behov.
Når LeftPad kalles, returnerer den verdier i henhold til det spesifiserte paradigmet. Hvis du for eksempel angir en heltallverdi til 1234, ringer du LeftPad:
i: = 1234;
r: = LeftPad (i);
vil returnere en strengverdi på 0001234.