/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
auto-indsætning af 0 (nul) i VBS + XSL
Fra : Morten Abildgaard


Dato : 24-08-02 15:41

Hej igen,

Er der en indbygget funktion (meget gerne til både VBScript og XSL) til
automatisk indsætning af før- eller efter-stående 0, så man får en bestemt
længde på et tal?
Jeg bruger nemlig et ID til at identificere (original idé, ik') en bestemt
node i en XML-database. Når jeg opretter en ny post/record i databasen
genereres et auto-id, der jo bare er et fortløbende nummer. Men da nummeret
skal være på 7 cifre efterlyser jeg en indbygget funktion til at lave
"3567" om til "0003567" og "3" om til "0000003".
Jeg gider jo ikke til at lave en løkke, hvis jeg kan blive fri.

Jeg fandt funktionen "digits" i Xpath-dokumentationen, men kan ikke lige
regne ud hvad den kan.

/morten

 
 
SumSum (24-08-2002)
Kommentar
Fra : SumSum


Dato : 24-08-02 15:47

"Morten Abildgaard" <none@all.dk> skrev i en meddelelse
news:Xns9274A9C3512A5nonealldk@212.242.40.196...
> Hej igen,
>
> Er der en indbygget funktion (meget gerne til både VBScript og XSL) til
> automatisk indsætning af før- eller efter-stående 0, så man får en bestemt
> længde på et tal?

Kan du bruge:
FormatNumber(Expression [,NumDigitsAfterDecimal [,IncludeLeadingDigit
[,UseParensForNegativeNumbers [,GroupDigits]]]])
?
Arguments
-Expression
Required. Expression to be formatted.
-NumDigitsAfterDecimal
Optional. Numeric value indicating how many places to the right of the
decimal are displayed. Default value is -1, which indicates that the
computer's regional settings are used.
-IncludeLeadingDigit
Optional. Tristate constant that indicates whether or not a leading zero is
displayed for fractional values. See Settings section for values.
-UseParensForNegativeNumbers
Optional. Tristate constant that indicates whether or not to place negative
values within parentheses. See Settings section for values.
-GroupDigits
Optional. Tristate constant that indicates whether or not numbers are
grouped using the group delimiter specified in the control panel. See
Settings section for values.

*SNIP*
> Jeg fandt funktionen "digits" i Xpath-dokumentationen, men kan ikke lige
> regne ud hvad den kan.

Aner det heller ikke

SumSum


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.381 / Virus Database: 214 - Release Date: 02-08-2002



SumSum (24-08-2002)
Kommentar
Fra : SumSum


Dato : 24-08-02 15:59

"SumSum" <motor30@hotmail.com> skrev i en meddelelse
news:3d679ca5$0$43948$edfadb0f@dspool01.news.tele.dk...
> > Er der en indbygget funktion (meget gerne til både VBScript og XSL) til
> > automatisk indsætning af før- eller efter-stående 0, så man får en
bestemt
> > længde på et tal?
>
> Kan du bruge:
> FormatNumber(Expression [,NumDigitsAfterDecimal [,IncludeLeadingDigit
> [,UseParensForNegativeNumbers [,GroupDigits]]]])
> ?

Nej, det kan du ikke. Jeg var for hurtig til at foreslå det. FormatNumber
sætter kun ét nul foran kommaet i decimaltal.

SumSum


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.381 / Virus Database: 214 - Release Date: 02-08-2002



Peter Lykkegaard (24-08-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 24-08-02 16:01

Som svar på skriblerier forfattet af SumSum

> "Morten Abildgaard" <none@all.dk> skrev i en meddelelse
> news:Xns9274A9C3512A5nonealldk@212.242.40.196...
>> Hej igen,
>>
>> Er der en indbygget funktion (meget gerne til både VBScript og XSL)
>> til automatisk indsætning af før- eller efter-stående 0, så man får
>> en bestemt længde på et tal?
>
> Kan du bruge:
> FormatNumber(Expression [,NumDigitsAfterDecimal [,IncludeLeadingDigit
> [,UseParensForNegativeNumbers [,GroupDigits]]]])
> ?
Nope, du arbejder videre med tal og der skal jo konverteres til tekst
Ved IncludeLeadingDigit er fx 0,034

Se svaret til Morten for details

mvh/Peter Lykkegaard



Peter Lykkegaard (24-08-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 24-08-02 16:09

Som svar på skriblerier forfattet af Morten Abildgaard

> Men da nummeret skal være på 7 cifre efterlyser jeg en indbygget
> funktion til at lave "3567" om til "0003567" og "3" om til "0000003".

Der findes ikke end indbygget, men her er hvad jeg bruger til formålet

Public Function pustrZeroFill(rstrData, rlngLength)
' Ved tekst returneres as is
If Not IsNumeric(rstrData) Then
pustrZeroFill = rstrData
Else
' Hvis den ønskede længde er større end antal karakterer i data
If rlngLength > Len(Trim(rstrData)) Then
' Byg streng med antal manglende nuller og sæt den sammen med
data
pustrZeroFill = String(rlngLength - Len(Trim(rstrData)), "0") &
Trim(rstrData)
Else
' Leave as is
pustrZeroFill = rstrData
End If
End If
End Function

mvh/Peter Lykkegaard




Morten Abildgaard (24-08-2002)
Kommentar
Fra : Morten Abildgaard


Dato : 24-08-02 16:17

Peter Lykkegaard skrev i
news:3d67a1f2$0$64874$edfadb0f@dspool01.news.tele.dk:
> Som svar på skriblerier forfattet af Morten Abildgaard
>> Men da nummeret skal være på 7 cifre efterlyser jeg en indbygget
>> funktion til at lave "3567" om til "0003567" og "3" om til "0000003".
> Der findes ikke end indbygget, men her er hvad jeg bruger til formålet
> Public Function pustrZeroFill(rstrData, rlngLength)
[klip]
> End Function
>
Nåh-ja. En String()-ting. Det var lige det jeg skulle bruge. Takker

/morten

Jørn Andersen (24-08-2002)
Kommentar
Fra : Jørn Andersen


Dato : 24-08-02 16:28

On Sat, 24 Aug 2002 14:41:18 +0000 (UTC), Morten Abildgaard
<none@all.dk> wrote:

>Men da nummeret
>skal være på 7 cifre efterlyser jeg en indbygget funktion til at lave
>"3567" om til "0003567" og "3" om til "0000003".

strNytNummer = Right("0000000" & CStr(KundeNr), 7)


Good luck!

--
Jørn Andersen,
Brønshøj

Morten Abildgaard (24-08-2002)
Kommentar
Fra : Morten Abildgaard


Dato : 24-08-02 16:54

Jørn Andersen skrev i news:8e9fmukkhvalp3l548a9k5a02pklhi4ge3@4ax.com:
> strNytNummer = Right("0000000" & CStr(KundeNr), 7)
Uhh, det blive bedre og bedre.

Men hvordan gør man så i XSL?

/morten

Jakob Andersen (24-08-2002)
Kommentar
Fra : Jakob Andersen


Dato : 24-08-02 22:59

"Morten Abildgaard" <none@all.dk> wrote
> Men hvordan gør man så i XSL?

Du kan vel strikke en lille template sammen til formålet noget ala dette:

<xsl:template name="fyldnuller">
<xsl:param name="streng" />
<xsl:param name="laengde" />
<xsl:value-of select="substring(concat('0000000000',$streng),
string-length(concat('0000000000',$streng))-$laengde)" />
</xsl:template>

Og så kalde den med f.eks. værdien 100 og strenglængden 7 sådan her:

<xsl:call-template name="fyldnuller">
<xsl:with-param name="streng" select="'100'" />
<xsl:with-param name="laengde" select="7" />
</xsl:call-template>

--
Jakob Andersen
http://www.stresscd.dk/ - Udnyt stress positivt



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408952
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste