Voorloopnullen aan een getal toevoegen (Delphi-indeling)

Verschillende toepassingen vereisen specifieke waarden om te voldoen aan structurele paradigma's. Burgerservicenummers zijn bijvoorbeeld altijd negen cijfers lang. Sommige rapporten vereisen dat nummers worden weergegeven met een vast aantal tekens. Volgnummers beginnen bijvoorbeeld meestal met 1 en worden zonder einde verhoogd, zodat ze worden weergegeven met voorloopnullen om een ​​visuele aantrekkingskracht te geven.

Als Delphi-programmeur hangt uw benadering van het toevoegen van een getal met voorloopnullen af ​​van de specifieke use case voor die waarde. U kunt eenvoudig kiezen om een ​​weergavewaarde op te nemen, of u kunt een getal omzetten in een tekenreeks voor opslag in een database.

Padding-methode weergeven

Gebruik een eenvoudige functie om te wijzigen hoe uw nummer wordt weergegeven. Gebruik formaat om de conversie te maken door een waarde op te geven voor lengte (de totale lengte van de uiteindelijke uitvoer) en het nummer dat u wilt opvullen:

str: = Formaat ('%. * d, [lengte, aantal])

Om nummer 7 met twee voorloopnullen op te vullen, sluit u die waarden aan op de code:

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

Het resultaat is 007 met de waarde geretourneerd als een tekenreeks. 

Omzetten naar String-methode

Gebruik een opvulfunctie om voorloopnullen (of een ander teken) toe te voegen wanneer u het nodig hebt in uw script. Om waarden te converteren die al gehele getallen zijn, gebruikt u:

functie LeftPad (waarde: geheel getal; lengte: geheel getal = 8; pad: char = '0'): string; overbelasten; 

beginnen

   resultaat: = RightStr (StringOfChar (pad, lengte) + IntToStr (waarde), lengte); 

einde;

Als de om te zetten waarde al een tekenreeks is, gebruikt u:

functie LeftPad (waarde: string; lengte: geheel getal = 8; pad: char = '0'): string; overbelasten;

beginnen

   resultaat: = RightStr (StringOfChar (pad, lengte) + waarde, lengte);

einde;

Deze aanpak werkt met Delphi 6 en latere edities. Beide codeblokken hebben standaard een opvulkarakter van met een lengte van zevengeretourneerde tekens; die waarden kunnen worden aangepast om aan uw behoeften te voldoen.

Wanneer LeftPad wordt aangeroepen, retourneert het waarden volgens het opgegeven paradigma. Als u bijvoorbeeld een geheel getal instelt op 1234, roept u LeftPad aan:

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

retourneert een tekenreekswaarde van 0001234.