http://www.irt.org/script/8.htm
Fiksumpi, saisiko tuon funktion käännettynä VB6:lle ?
Tuossa on yksi toteutus:
Function LisaaPilkut(luku As String) As String
If Len(luku) < 4 Then
LisaaPilkut = luku
Else
LisaaPilkut = LisaaPilkut(Left(luku, Len(luku) - 3)) & "," & Right(luku, 3)
End If
End FunctionYllä olevaa funktiota käytetään näin:
MsgBox LisaaPilkut(1234567)
Toinen ratkaisu on käyttää funktiota Format seuraavasti:
MsgBox Format(1234567, "#,#")
Tässä tapauksessa tuhaterotin riippuu Windowsin kieliasetuksista. Esimerkiksi suomen kielessä tuhaterotin on välilyönti eikä pilkku.
Kun txtAttackXP muuttuu, VB herjaa "ByRef argument type mismatch" TotalEnemies-muuttujasta yritettäessä ajaa sitä LisaaPilkut(käänsin sen -> AddComma) läpi.
Option Explicit
Dim TotalEnemies As Integer
Dim XPgain As Integer
Dim EnemyHits As Integer
Dim AttackType As String
Private Sub Calcu()
On Error Resume Next
' välistä poistettu koodia
lblResults.Caption = "You need to kill " & AddComma(TotalEnemies) & txtEnemyHP.Text & "HP enemies to gain " & AddComma(XPgain) & "XP for level " & txtTargetLVL.Text & " " & AttackType
End Sub
Private Function AddComma(integerNumber As String) As String
If Len(integerNumber) < 4 Then
AddComma = integerNumber
Else
AddComma = AddComma(Left(integerNumber, Len(integerNumber) - 3)) & "," & (Right(integerNumber, 3))
End If
End FunctionKutsu funktiota näin: AddComma((TotalEnemies)).
Aihe on jo aika vanha, joten et voi enää vastata siihen.