Gå til innhold

Anbefalte innlegg

Har et lite problem som det sikkert finnes en enkel løsning på.

 

trenger å gjøre om et tall fra f.eks 25 til å bli 0025

 

Dvs. resultatet som jeg skal lagre i en txt fil skal alltid ha 4 siffer uansett hva nummeret er. (nummeret vil aldri bli høyere enn 9999)

 

Noen som har tips?

Lenke til kommentar
Videoannonse
Annonse

takker, men jeg løste det på min "noob" måte :-)

 

$zero="0";

if ($new_filenr < '10'){

$new_filecount=<$zero$zero$zero$new_filenr>;

}elsif ($new_filenr > '9' && $new_filenr < '100'){

$new_filecount=<$zero$zero$new_filenr>;

}elsif ($new_filenr > '99' && $new_filenr < '1000'){

$new_filecount=<$zero$new_filenr>;

}else{

$new_filecount="$new_filenr";

}

Lenke til kommentar

det kan være verd å lære seg sprintf, hvertfall bruke ferdig kode som andre har laget (tok lang tid før jeg skjønte hva den egentlig gjorde)

 

sprintf er vanlig i flere programmeringsspråk og meget anvendelig. å formatere et tall med "leading zeroes" er nesten å gjøre skam på funksjonen, men det er altså det jeg gjør her.

 

prøvde du kommandlinjeeksemplet? perl -e 'print sprintf "%04i", 25' ?

det viser pent og pyntlig 0025, prøv gjerne med andre tall enn 25.

 

samt det ser profft ut hvis andre skulle finne på å titte på koden :)

Lenke til kommentar

hvis "%04i" delen av koden ser kryptisk ut, er det bare å slå opp sprintf:

 

perldoc -f sprintf

 

fra kommandolinja.

 

I dette tilfellet betyr det at den skal ha formatere argumentet til en integer. Hvis det er mindre enn 4 tegn langt, skal det slenges på 0'er til den blir 4 lang. % markerer starten for mønsteret.

 

så...

 

$string = sprintf(mønster, argument1,argument2,...);

 

er syposis'en :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...