Jump to content
IT-პროგრამირების ფორუმი
Sign in to follow this  
viper

Visual basic and Text files

Recommended Posts

გამარჯობა მეგობრებო

სათაურიდან შეატყობდით რომ ეს თემა ეხება ვიზუალ ბეისიქს და ტექსტ ფაილს 
პირველ რიგში დავიწყოთ ერთ მეტად სასარგებლო კოდით რომელიც ამოწმებს არსებობს თუ არა მითითებულ ადგილას მითითებული სახელისა და ფორმატის ფაილი . უფრო ადვილად რომ მიხვდეთ თუ როგორ მუშაობს პირდაპირ if წინადადებაში

ჩავსვი.

        If My.Computer.FileSystem.FileExists("c:test.txt") = true Then
            MsgBox("ფაილი არსებობს")
        else
            MsgBox("ფაილი არ არსებობს")
        End If

ამის შემდეგ კიდევ ერთი საჭირო კოდი დაგვჭირდება , რომელიც ქმნის ფაილებს .

      Dim path As String = "C:test.txt"
      System.IO.File.Create(path).Dispose()

ამ შემთხვევაში ის შექმნის ახალ და ცარიელ ტექს ფაილს C ლოკალ დისკში 

ახლა კი გვჭირდება კოდი რომელიც ჩაწერს ამ ტექტ ფაილში გარკვეილ ტექსტს

       Dim path As String = "C:test.txt"
       Dim file As System.IO.StreamWriter
       file = My.Computer.FileSystem.OpenTextFileWriter(path, True)
       file.WriteLine("პირველი ხაზი")
       file.WriteLine("მეორე ხაზი")
       file.WriteLine("მესამე ხაზი")
       file.Close()

ახლა ზუსტად აგიხსნით თუ რას აკეთებს ეს კოდი , ის ჩაწერს ჩვენს მიერ მითითებულ კოდებს ხაზებად და დაასეივებს ტექსტ ფაილს , მაგრამ რა მოხდება მაშინ თუ ამ კოდს ჩავსვამთ private ან public sub ში და ამ sub-ს ჩავწერთ ღილაკზე დაჭერის შემთხვევაში მის სამოქმედო კოდში , უფრო მარტივად რომ აგიხსნათ კოდს მოვიშველიებ 

Public Class Form1
    Private Sub a()
        Dim path As String = "C:test.txt"
        Dim file As System.IO.StreamWriter
        file = My.Computer.FileSystem.OpenTextFileWriter(path, True)
        file.WriteLine("პირველი ხაზი")
        file.WriteLine("მეორე ხაზი")
        file.WriteLine("მესამე ხაზი")
        file.Close()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        a()
    End Sub
End Class

როგორც ხედავთ ღილაკზე დაჭერის შემთხვევაში private sub a()-ში მოქცეული კოდი იწყებს მუშაობას მაგრამ თუ ღილაკს ორჯერ დავაჭერთ მაშინ ჩვენს ტექსტ ფაილში იქნება კოდი
 

პირველი ხაზი
მეორე ხაზი
მესამე ხაზი
პირველი ხაზი
მეორე ხაზი
მესამე ხაზი

ეს იმას ნიშნავს რომ ზემოთ მოცემული კოდისთვის არ არქვს მნიშნველობა თუ რა წერია ტექსტ ფაილში , რამდენი ხაზიც არ უნდა იყოს ჩვენს მიერ მითითებულ ტექსტ ფაილში ის ზემოდან აწერს იმას რასაც ჩვენ ვუბრძანებთ ანუ მაგალითან რომ იყოს 121 ხაზი და ჩვენ დავავალოთ მას ერთი ხაზის დაწერა მაგალითად ტექსტით "www.scipts.ge 111222" მაშინ ჩვენი ტექსტ ფაილი იქნება 122 ხაზიანი და 122ხაზში იქნება ტექსი "www.scipts.ge 111222" .გადავიდეთ შემდეგზე , იმედია ეს გასაგებად ავხსენი 

 

ახლა დაგვჭირდება ისეთი კოდი რომელიც ამოიკითხავს ჩვენი ტექსტ ფაილიდან მითითებულ ხაზებს
 

        Dim Path as String = "C:test.txt"
        Dim lines As String() = IO.File.ReadAllLines(Path)
        Dim line1 As String = lines(0)
        Dim line2 as String = lines(1)        

აქ აუცილებლად უნდა გავითვალისწინოთ ის რომ თუ გვინდა ამოვიღოთ 122 ხაზი მაშინ ჩვენი string ად შემოტანილი ცვლადი უნდა გავუტოლოთ lines(121) რადგან მგონი ყველა პროგრამირების ენაში თვლა იწყება 0 დან და არა 1დან . აქვე უნდა გავითვალისწინოთ ერთი რამ , თუ ჩვენს მიერ მითითებული ტექსტ ფაილი არ შეიცავს მაგალითად 122 ხაზს მაგრამ ჩვენ კოდში გვიწერია რომ უნდა ამოიკითხოს 122-ე ხაზი მაშინ ჩვენი string ცვლადი მიიღებს მნიშვნელობა "" სიცარიელეს ანუ იმას რაც არის მოქცეული ბრჭყალებში.

 

მაგრამ რა უნდა ვქნათ მაშინ როცა გვჭირდება ფაილიდან ამოვიღოთ მთელი ტექსტი ერთიანად და არა ხაზებად , ამ შემთხვევაში გამოგვადგება 

Imports System
Imports System.IO

Public Class Form1
     
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim sr As New StreamReader("C:test.txt")
        Dim line As String
        line = sr.ReadToEnd()
        MsgBox(line)
     End Sub

End Class

       
   

 

 

                                                                                                                                                                        იმედია გამოგადგებათ :*.

  • Upvote 2

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×