05. oktober 2001 - 12:21
Der er
17 kommentarer og 1 løsning
GroupDigits funktion ...
Plain and simple... lav en funktion der tager f.eks. en streng som: \"24123456789\" og gruperer tallene med 3 i hver gruppe, så det ser ud som følger: \"24.123.456.789\". 60 point til den der kommer med en brugbar funktion. PS. Hvis der er flere der svarer tager jeg den hvis kode er pænest!
Annonceindlæg fra Deloitte
05. oktober 2001 - 12:24
#1
Bruger VB5 bare i så i ve\'t ..
05. oktober 2001 - 12:26
#2
Funktionen accepteres også i PHP/ASP da jeg selv ka omskrive den så...
05. oktober 2001 - 13:30
#3
Dim slut1 As String Dim start1 As String start1 = \"24123456789\" \'slut1 = Left$(start1, 2) & \".\" & Mid$(start1, 3,) & \".\" mid$(start1, 1,8 ) & \".\" & Right$(start1, 4) slut1 = Left$(start1, 2) & \".\" & Mid$(start1, 3, 3) & \".\" & Mid$(start1, 6, 3) & \".\" & Right$(start1, 3) MsgBox slut1 Jeg går ud fra at første del kun er på 2 tal. V.H Kisbye
05. oktober 2001 - 13:30
#4
Så får du da bare en PHP løsning :) Happy huntin\' <?php function dotify($int) { $res = \"\"; $intsize = strlen($int); $internalcount = 0; for ($i=$intsize;$i>0;$i--) { $res .= $int[$i]; if ($internalcount%3 == 0 && $internalcount != 0) $res .= \".\"; $internalcount++; } return strrev($res); } $tal = \"123456789012345678901234567890\"; echo $tal.\"<BR>\\n\"; echo dotify($tal).\"<BR>\\n\"; ?>
05. oktober 2001 - 13:31
#5
Linien der er udkommenteret skal du bare se bort fra.
05. oktober 2001 - 13:32
#6
Mit bud: Public Sub LavPænt(Tal) Lgd = Len(Tal) While Lgd >= 3 tekst = Right(Tal, 3) Tal = Left(Tal, Lgd - 3) Lgd = Len(Tal) Gemstr = tekst & \".\" & Gemstr Wend If Tal <> \"\" Then Gemstr = Tal & \".\" & Gemstr MsgBox Gemstr End Sub
05. oktober 2001 - 13:33
#7
men brug dog et sprog hvor vi må regexp\'e lidt :))
05. oktober 2001 - 13:39
#8
Hov den slutter med \".\" Klares ved at indsætte: Lgd = Len(Gemstr) Gemstr = Left(Gemstr, Lgd - 1) før msg :)
05. oktober 2001 - 13:52
#9
Prøver lige peter.erikse\'s ... det er trodsalt allerede skrevet i VB...
05. oktober 2001 - 14:07
#10
peter.erikse, din fejler hvis ikke tallets længde er deleligt med 3. Omskriver lige ljweb\'s ..
05. oktober 2001 - 14:08
#11
:o)
05. oktober 2001 - 14:10
#12
Den fejler ikke hos mig
05. oktober 2001 - 14:12
#13
peter.erikse, hmm .. ud af 1234567890 fik jeg .234.567.890 ... ca.
05. oktober 2001 - 14:20
#14
Det gør den altså ikke hos mig, men pyt
05. oktober 2001 - 14:20
#15
Bruger ljweb\'s .. til \"forbipasserende\" ser funktionen således ud i VB: Public Function Dotify(Expression) intInternalCount = 0 For intIndex = Len(Expression) To 1 Step -1 strRes = strRes & Mid(Expression, intIndex, 1) If (intInternalCount Mod 3) = 0 And intInternalCount > 1 Then strRes = strRes & \".\" intInternalCount = intInternalCount + 1 Next Dotify = StrRev(strRes) End Function
05. oktober 2001 - 14:24
#16
thx4ptn
05. oktober 2001 - 14:24
#17
Nu var min Funktion altså også i VB. Men pyt... :)
05. oktober 2001 - 14:25
#18
Prøv med denne her: s = \"24123456789\" s = Format(s, \"##,###,##0\")
Kurser inden for grundlæggende programmering