Olika tillämpningar kräver specifika värden för att överensstämma med strukturella paradigmer. Till exempel är personnummer alltid nio siffror långa. Vissa rapporter kräver att siffror visas med ett fast antal tecken. Sekvensnummer börjar till exempel vanligtvis med 1 och steg utan slut, så att de visas med ledande nollor för att visa en visuell överklagande.
Som Delphi-programmerare beror din strategi för att lägga till ett nummer med ledande nollor på det specifika användningsfallet för det värdet. Du kan helt enkelt välja att lägga till ett visningsvärde, eller så kan du konvertera ett nummer till en sträng för lagring i en databas.
Använd en enkel funktion för att ändra hur ditt nummer visas. Använda sig av formatera att göra konverteringen genom att tillhandahålla ett värde för längd (den totala längden på den slutliga utgången) och antalet du vill pad:
str: = Format ('%. * d, [längd, antal])
För att fylla nummer 7 med två ledande nollor, anslut dessa värden till koden:
str: = Format ('%. * d, [3, 7]);
Resultatet är 007 med värdet returnerat som en sträng.
Använd en stoppningsfunktion för att lägga till ledande nollor (eller något annat tecken) när du behöver det i ditt skript. För att konvertera värden som redan är heltal använder du:
funktion LeftPad (värde: heltal; längd: heltal = 8; pad: char = '0'): sträng; överbelastning;
Börja
resultat: = RightStr (StringOfChar (dyna, längd) + IntToStr (värde), längd);
slutet;
Om värdet som ska konverteras redan är en sträng använder du:
funktion LeftPad (värde: sträng; längd: heltal = 8; pad: char = '0'): sträng; överbelastning;
Börja
resultat: = RightStr (StringOfChar (dyna, längd) + värde, längd);
slutet;
Denna metod fungerar med Delphi 6 och senare utgåvor. Båda dessa kodblock är som standard en polstringstecken 0 med en längd på sjureturnerade tecken; dessa värden kan ändras för att tillgodose dina behov.
När LeftPad anropas returnerar den värden enligt det angivna paradigmet. Om du till exempel ställer in ett heltal till 1234, ringer du LeftPad:
i: = 1234;
r: = LeftPad (i);
kommer att returnera ett strängvärde på 0001234.