Textbox'daki sayıları oto 1000 bölme ? acil

yusuf161993

Yeni üye
14 Ağu 2007
29
0
Butona bastığım zaman textbox içindeki 3-2-1 basamaklı sayıları 1000 ile bölcek örnek olarak 500 sayısı varsa onu 0.500 şeklinde yazacak ama diğer sayı ve yazıları bozmucak sadece 3 basamağa kadar bu işlemi yapacak 50000 gibi sayılara karışmıcak programcı değilim bi iş için lazım direk kodu verirseniz sevinirim.
örnek olarak : 5-50-500 bu sayıları şu şekilde yazacak ( 0.005) (0.050) (0.500)
yada başka yolu varsa 3 basamaklı sayıların başına 0. koyacak direk
(Visual Basic 6) (

böyle bi kod var ama 1 sayı için yapıyo ve textbox da harf olursa yapmıyo benim sayfada bi çok sayı ve kelimeler var.
Kod:
Dim sayi, uzunluk As Integer
sayi = Text1.Text
uzunluk = Len(Text1.Text)
Select Case uzunluk
Case 1: Text1.Text = sayi / 1000
Case 2: Text1.Text = sayi / 1000
Case 3: Text1.Text = sayi / 1000
End Select
 

yasin52200

Katılımcı Üye
28 Eki 2012
511
0
Ordu
Sen bunu sayfa kaynağı kodundamı kullanacaksın. Texttin içinde sadece 3-2-1 basamaklı sayılar varsa kolay işin. Ama bu sayılar yanında farklı şeylerde varsa işin zorlaşabilir. Tam olarak ne için kullanacağını söyle yardımcı olurum.
 

yusuf161993

Yeni üye
14 Ağu 2007
29
0
benim amacım bi sayfanın içindeki bütün sayıları basamaklara ayırmak bi programı çalıştırmak için lazım tek tek nokta koymak zor oluyor otomotik çevirmesi lazım


Böyle bi kod buldum bütün sayıları örnek 20000 gibi sayıları 20.000 yapıyo nokta koyuyo
ama 100 gibi sayılar kalıyo onlarıda 0.100 olarak yazmasını istiyorum

Kod:
Private Sub Command2_Click()
Text2.Text = SayıDeğiştir(Text1.Text)
End Sub


Private Function BasamaklaraAyır(ByRef sayı As String, Optional ByVal ayraç As String = ".") As String
Dim n As Integer, s As Integer
Dim tmp As String
Dim uzunluk As Integer
Dim rakam As String
uzunluk = Len(sayı)
For n = uzunluk To 1 Step -1

    rakam = Mid$(sayı, n, 1)
    s = uzunluk - n
    
    If (s Mod 3 = 0 And n <> Len(sayı)) Then
        tmp = ayraç & tmp
    End If
        tmp = rakam & tmp
Next n

BasamaklaraAyır = tmp

End Function


Private Function SayıDeğiştir(ByRef str As String)
   'Create objects.
   Dim re As RegExp
   Dim objMatch As Match
   Dim colMatches   As MatchCollection
   Dim RetStr As String
   
   ttt = str
   ' Create a regular expression object.
   Set re = New RegExp

   'Set the pattern by using the Pattern property.
   re.Pattern = "([-+]?[0-9]*\.?[0-9]{1,})"

   ' Set Case Insensitivity.
    re.IgnoreCase = True

   'Set global applicability.
    re.Global = True

   'Test whether the String can be compared.
   If (re.Test(str) = True) Then

   'Get the matches.
    Set colMatches = re.Execute(str)   ' Execute search.
    
    For Each objMatch In colMatches   ' Iterate Matches collection.
    'Text1.Text = Text1.Text & vbCrLf & ttt

      ttt = Replace(ttt, objMatch.Value, BasamaklaraAyır(objMatch.Value))
    Next
   Else
    RetStr = "String Matching Failed"
   End If
   SayıDeğiştir = ttt
End Function
 

BySlash

Üye
31 Tem 2012
193
0
Çok kolay yolu var,

Vb.NET ;

MaskedTextBox ekle.Üzerine gel üçgene bas Set Mask de numerig digits mi ne var onu seç.

Koddaki textbox1 kısımlarını maskedtextbox1 diye değiştir bitti.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.