Jag håller på med ett program som bland annat läser ut ett värde från en fil, nu hör det till saken att jag enbart vill ha texten som är före punkten eller kommat. Berätta i stället vad du vill göra. Ser mer ut som du söker en amtematisk formel för att plocka ut vissa siffror ur ett tal. Säg att jag via en funktion får ut "1234,4567890", den första koden jag hade tog bort allt efter kommat, men när en annan person körde programmet på sin dator så fick han ut "1234.4567890", varför punkten inte var ett komma vet jag inte. Varför inte bara leta rätt på vart tecknet finns och returnera allt framför ;) lånat lite från msdn dårå Tror tyvärr inte att det skulle fungera eftersom det är en senare version av vb än den som Johan använder (funktionen left() eller left$() finns inte kvar i .net och ".split(delimiter)" finns inte i den äldre versionen. Men det är ett ganska snyggt sätt att dela på saker i de nyare versionerna. Kör nu med nedanstående kod, fast jag vet inte var jag ska lägga txtValue.Text = tjesan & " s", har lagt det lite överallt men då får jag inte ut något värde alls. (Att jag använder mig av VB6 kanske jag borde skrivit först och främst...) Borde fungera med följande:Ta bort komma och punkt.
Från början trodde jag enbart att värdet jag tar ut låg på fyra tecken så det löste jag enkelt med nedanstående kod. Efter lite undersökning använde jag mig av Split för att ta bort allt efter kommat, men det visade sig senare att det inte fungerade hos en användare, då denne hade en punkt istället för ett komma.
'Jag vet, strängnamnen är inte dom bästa :P
Dim tjosan As String
Dim tjesan As String
tjosan = Val(Size) * 8 / Val(Length) - 10
tjesan = Left$(tjosan, 4)
txtValue.Text = tjesan & " s"
Hur ska jag således gå till väga för att ta bort allt efter kommat eller punkten?
Sv: Ta bort komma och punkt.
Om det är så att du bara är ute efter heltalsbiten av talet:
Dim tjosan As double
Dim tjesan As String
tjosan = Val(Size) * 8 / Val(Length) - 10
tjesan = Int(tjosan)
txtValue.Text = tjesan & " s"
Sv:Ta bort komma och punkt.
När jag sedan körde med koden från första inlägget (för tillfället är det den kod jag använder), så tar den bort allt efter fjärde teckent, jag antog - i min enfald - att värdet bara kunde bli fyra tecken, och inte tre.
Med nuvarande koden så blir det "123," av "123,4567890", och inte "123" så som jag vill.Sv: Ta bort komma och punkt.
dim tjosan as double
dim tjesan as string
If InStr(1, tjosan, ",") > 0 Then
tjesan = Left(tjosan, InStr(1, tjosan, ",") - 1)
ElseIf InStr(1, tjosan, ".") > 0 Then
tjesan = Left(tjosan, InStr(1, tjosan, ".") - 1)
End If
Att din kollega har punkt istället för komma misstänker jag har med dom nationella inställningarna på datorn att göra, engelska inställningar använder punkt istället för komma som decimalavgränsare.
Sv: Ta bort komma och punkt.
Dim delimStr As String = ".,"
Dim delimiter As Char() = delimStr.ToCharArray()
Dim split As String() = Nothing
split = dintext.split(delimiter)
split(0).tostring
(antar man kan skriva characterarrayen direktSv:Ta bort komma och punkt.
Sv:Ta bort komma och punkt.
dim tjosan as double
dim tjesan as string
If InStr(1, tjosan, ",") > 0 Then
tjesan = Left(tjosan, InStr(1, tjosan, ",") - 1)
ElseIf InStr(1, tjosan, ".") > 0 Then
tjesan = Left(tjosan, InStr(1, tjosan, ".") - 1)
End If
Sv: Ta bort komma och punkt.
<code>
dim tjosan as double
dim tjesan as string
If InStr(1, tjosan, ",") > 0 Then
tjesan = Left(tjosan, InStr(1, tjosan, ",") - 1)
ElseIf InStr(1, tjosan, ".") > 0 Then
tjesan = Left(tjosan, InStr(1, tjosan, ".") - 1)
End If
txtValue.text = tjesan & " s"
</code>