" Umut, hiç görmeyen birine gökkuşağını anlatmak kadar zor ve imkansız... "

Categories

-

Vb.Net Iç içe for döngüsü string islemleri örn. uygulama

Mesela bir kurgumuz olsa, programimizin bulundugu dizinde bir klasörumuz olsa, oradada program hakkinda bilgiler içeren text dosyalarimiz olsa. Bize bu text dosyalarimizin isimleri gerekli olsa. ' C:\Users\Bukalemun\Documents\Visual Studio 2015\Projects\For Döngüsü String Islemleri\For Döngüsü String Islemleri\bin\Debug\TextDosya\6.11.2018.txt ' kisminin sadece 6.11.2018.txt kismini almak istesek bunu nasil yapariz acaba ? Simdi Directory.GetFiles ile belirtilen klasör altindaki dosya isimlerini bir diziye aktariz. Buradaki adres yollari yukarida uzun adresi verir, ama bize sadece dosya ismi ve uzantisi gerekli. Buradaki izleyecegimiz yol, iç içe for kullanaraken sondaki \ karakterinden sonraki kismi çekmemiz gerek. Bu bir yöntem olabilir ayrica file info sinifi kullanilarak iki satir kod yardimiylada çekebiliriz.

Toplamda 148 karakter bulunmakta. Kodlarimiza bakacak olursak;

Imports System.IO
Public Class Form1

    Dim DosyaYolu As New ArrayList
    Dim Yol As String = Directory.GetCurrentDirectory() & "\" & "TextDosya" & "\"
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Dim Name As String = Nothing
        DosyaYolu.AddRange(Directory.GetFiles(Yol))
        txtadres.Text = DosyaYolu(0)
        LblAdresU.Text = txtadres.Text.Length


    End Sub

    Private Sub BtnDosyaIsmi_Click(sender As Object, e As EventArgs) Handles BtnDosyaIsmi.Click

        Dim a As Byte = 0
        For i = 0 To DosyaYolu.Count - 1
            Name = DosyaYolu(i)
            For j = 0 To Name.Length - 1
                If Name(j) = "\" Then
                    a = j
                End If
            Next
            lbldosya.Text = Mid(DosyaYolu(i), (a + 2), DosyaYolu(i).Length - (a + 1))
            'a = 0
        Next

        lbla.Text = a
        lbldosyaiu.Text = lbldosya.Text.Length
        lblsonuc1.Text = txtadres.Text.Length - a

    End Sub
End Class

Burada dikkat edilmesi gereken nokta asagidaki resimde a degiskeni diye belirttigim degisken for döngümüzde 1. for döngüsü ile adres yol ismimizi aliyoruz. sonrasinda  içteki for döngüsü ile aldigimiz adres isminin her karakteri dolasiyoruz. ' \ ' karakterini gördügünde kaçinci karakter oldugunu anlamimiz için j degiskeni degerini a; ya aktariyoruz. Aslinda her '\' karakterini gördügünde ( Toplamda 10 tane var ) kaçinci karakter oldugunu a ya aktariyor ama bize en sonraki gerekli oldugu için zaten, en son degeri a;ya aktariyor ve bizde bize gerekini almis oluyoruz. Sonrasinda Mid string fonksiyonunu kullanarak;

Mid : Bir metnin içerisinde baslangictan belirtilen uzunluga kadar olan karakteri verir. Geriye string türünden bir deger döndürür.

Mid( string deger, baslangiç, uzunluk)

Yukaridaki ( a + 2 ) ile ( a + 1 ) normalde ( a + 1 ) ve ( a ) seklinde olmaliydi. Yanliz for döngüsünü 0 dan baslattigimiz için bir fazlasini ekleyerek islem yapiyoruz.

File info sinifini kullanarak ise çekmek istersek; 

Dim fInfo As FileInfo = New FileInfo(DosyaYolu(0))
lbldosya.Text = fInfo.Name.ToString()

Fileinfo sinifi yardimiylada isimleri çekebiliriz.

Uygulama dosyasini buradan indirebilirsiniz.

  • 0
  • 4615
  • 0

- BUNLARIDA GÖZDEN GEÇİREBİLİRSİNİZ -

HENÜZ YORUM YAPILMAMIŞ !

Yorum yazın

HAKKIMDA

KONULARI TAKİP EDİN

SOSYAL AĞLAR

  • Mesajınızı Gonderin