17 April 2016

Project Example, Membuat Bash history viewer

Project ini merupakan salah satu project yang telah penulis upload atau dibagikan di penyimpanan Online, berikut ini informasi singkat dari project.
Pembuat: Zainudin Ahmad
Nama Project: Bash History Viewer
Nama File Project: GPI-BashHistoryViewer
Tahun Pembuatan: 2015
Gambas Versi: 3.8
Jumlah Baris Kode: 34 baris
Lisensi: MIT License
Komponen : gb.image, gb.gui, gb.form

Project ini menampilkan atau melihat riwayat bash yang terdapat pada file .bash_history dengan menampilkan perintah yang berbeda pada list box dan jika salah satu item dipilih maka pada text area help akan menampilkan keluaran opsi --help, dan lebih detil lagi project ini juga mempelajari :
  • Menggunakan list box
  • Menggunakan shell untuk mendapatkan output dari opsi --help
  • Menggunakan application.busy untuk menampilkan indikator yakni kursor mouse berubah menjadi indikator menunggu sebuah proses yang sedang berlangsung

Di bawah ini merupakan kode sumber dari project
' Gambas class file

'--------------------------------------------
'author : Zainudin Ahmad
'Website : gambaspi.blogspot.co.id
'License : MIT License
'-------
' Copyright (c) 2015 Zainudin Ahmad
'
' Permission is hereby granted, free of charge, to any person obtaining a copy
' of this software and associated documentation files (the "Software"), to deal
' in the Software without restriction, including without limitation the rights
' to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
' copies of the Software, and to permit persons to whom the Software is
' furnished to do so, subject to the following conditions:
'
' The above copyright notice and this permission notice shall be included in
' all copies or substantial portions of the Software.
'
' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
' IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
' FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
' AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
' LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
' OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
' THE SOFTWARE.
'--------------------------------------------


Public Sub lstCmd_Click()

   Dim sCmd As String
   Dim sOut As String

   sCmd = getCmd(Last.Text)

   Inc Application.Busy

   Shell sCmd & " --help" Wait To sOut

   Dec Application.Busy

   txtHelp.Text = sOut
   txtHelp.Pos = 0

End

Private Function getCmd(sCmd As String) As String

   Dim aData As String[]

   aData = Split(sCmd, " ")

   If aData[0] = "sudo" And If Not (aData[1] Begins "-") Then Return aData[1]

   Return aData[0]

End

Public Sub Form_Open()

   Refresh()

End

Private Sub Refresh()

   Dim aLines As String[]
   Dim sLine As String
   Dim aCmd As New String[]

   aLines = Split(File.Load(User.Home &/ ".bash_history"), "\n", "", True)

   For Each sLine In aLines
     If aCmd.Exist(sLine) Then Continue
     aCmd.Add(sLine)
   Next

   lstCmd.List = aCmd

   txtHelp.Clear()

End

Public Sub btnRefresh_Click()

   Refresh()

End


Form, Control atau Container yang digunakan sewaktu mendisain(drag & drop dari Toolbox) menggunakan Form Disainer dalam project ini adalah
  • 1 Form bernama : FMain
  • 1 HBox bernama : Panel1
  • 1 ListBox bernama : lstCmd
  • 1 TextArea bernama : txtHelp
  • 1 Panel bernama : Panel2
  • 1 Button bernama : btnRefresh

Untuk aturan penamaan pada setiap element di dalam form dan juga penamaan variabel, konstanta, class dan lain-lain anda bisa melihat dihalaman ini : Naming Convention. Semoga saja project ini bisa bermanfaat buat anda, untuk mendapatkan project ini anda dapat mendownload nya dengan mengklik link dibawah ini.

Download Project

Ada kemungkinan project ini bisa berjalan di versi Gambas yang lebih rendah atau lebih tinggi dari versi Gambas 3.8 selama masih menggunakan versi Major yang sama.

Alhamdulillah, Selamat Mencoba :)

Tidak ada komentar:

Posting Komentar