VB Text içinde ki veriyi Registera aktarma

Başlatan sir_hawk, 30 Mayıs 2009, 10:19:26

sir_hawk

Merhaba,

Text.box'a klavyeden girilen bir yazının,tanımlı bir diziye aktarılması nasıl yapılır ?

Mesela ;

Trod adında 42 bytetan oluşan bir dizim var. Text.box içinde ki her 1 karaktere ait değer bu dizi ye aktaracağım.

for x=0 to 41
Trod(x)=Val(text1.text,x)
next x


Böyle bir kod parçası ile bu işi görebilirmiyim ?

bybik

Hayır malesef böyle olmuyor :D İnternette  
mid
komutunu aratırsan istediğini yapabilrsin.

mid komutu bir kelime veya cümle içinden karakter veya sayı almaya yarar.Sen burda nid komutu ile tüm karakterleri teker teker alcaksın.

sir_hawk

Örneklerde ;

dim txt
txt="This is a beautiful day!"
document.write(Mid(txt,1,1))

Output:

T


şeklinde örnekler buldum.


for x=1 to 42
Trod(x)=Mid(text1.box,x,x)
next x



bu halde kod yazsam doğru olur sanırım ?

çünkü for döngüsü içerisinde bir örnek bulamadım yoksa bir döngü içerisinde kullanılamıyor mu ?

bybik

for x=0 to 41
Trod(x)=Mid(text1.text,1,x) 
next x


Bu şekilde kullanırsan doğru olur.

kadirbas

Doğru anladıysam, VB'de bir byte dizisi oluşturuyorsunuz ve bu dizi içerisine textbox içerisindeki veriyi yerleştirmek istiyorsunuz.

Eğer yapmak istediğiniz şey buysa, şöyle bir kod işinizi görebilir.

Dim txtBuf(41) As Byte

...

For i = 0 To 41
    If i = Len(Text1.Text) Then
        Exit For
    End If
        
    txtBuf(i) = AscB(Mid(Text1.Text, i + 1, 1))
Next i


Belki daha etkin bir yolu vardır ama benim aklıma ilk gelen, sizin de aklınıza geldiği gibi byte byte kopyalamak oldu..

Kolay gelsin...

kadirbas

Tabi bu arada, kodunuzun dizinin boyutundan bağımsız olmasını istiyorsanız, şöyle değiştirilebilir.

For i = LBound(txtBuf) To UBound(txtBuf)
    If i = Len(Text1.Text) Then
        Exit For
    End If
       
    txtBuf(i) = AscB(Mid(Text1.Text, i + 1, 1))
Next i


Tekrar kolay gelsin...

sir_hawk

Text.box içerisine girilebilecek karakter sayısını sınırladım ve her karakteri bir registera atacağım.
@kadirbas
söylediğiniz gibi benimde aklıma gelen byte byte aktarmak oldu çünkü nette farklı bir uygulama ile karşılaşmadım. Verdiğiniz örnek için teşekkür ederim.

@bybik
verdiğiniz örnek için teşekkür ederim.

Bitince bu başlığa koyacam,belki başka birinin de işine yarar.

Sağlıcakla kalın.