• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Tạo file lưu những thiết đặt của chương trình

Các thủ thuật về hệ thống, thư mục, tập tin và mạng
User avatar
clarkkent
Mạnh Thường Quân
Mạnh Thường Quân
Posts: 1641
Joined: Wed 16/04/2008 11:25 am
Location: Chợ Lách - Bến Tre
Been thanked: 31 times
Contact:

Tạo file lưu những thiết đặt của chương trình

Postby clarkkent » Thu 26/06/2008 5:33 pm

Thủ thuật: Tạo file lưu những thiết đặt của chương trình
Tác giả: Nguyễn Trung Tín tổng hợp từ diễn đàn cũ của dunghoitoi và NoBi
Mô tả: Tạo file lưu những thiết đặt của chương trình


Cái này thấy ở diễn đàn cũ cũng hay. Làm thử thấy cũng có ích nên đưa lên đây... :D
Ta sẽ tạo ra 1 file *.ini (hay bất kì tên gì cũng được tùy thích ví dụ : *.dat, *.abc ... ) để lưu những thuộc tính của các Control trong
Form để sau khi ta thoát chương trình và mở lại thì những thiết đặt sẽ được nạp lại Form...

Module

Code: Select all

  1. Option Explicit
  2. Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
  3. Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
  4. Declare Function DeleteFile Lib "kernel32.dll" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
  5.  
  6. 'Ghi file
  7. Function WriteIniFile(ByVal sIniFileName As String, ByVal sSection As String, ByVal sItem As String, ByVal sText As String) As Boolean
  8. Dim i As Integer
  9. On Error GoTo sWriteIniFileError
  10. i = WritePrivateProfileString(sSection, sItem, sText, sIniFileName)
  11. WriteIniFile = True
  12. Exit Function
  13. sWriteIniFileError:
  14. WriteIniFile = False
  15. End Function
  16. 'Doc file
  17. Function ReadIniFile(ByVal sIniFileName As String, ByVal sSection As String, ByVal sItem As String, ByVal sDefault As String) As String
  18. Dim iRetAmount As Integer
  19. Dim sTemp As String
  20. sTemp = String$(50, 0)
  21. iRetAmount = GetPrivateProfileString(sSection, sItem, sDefault, sTemp, 50, sIniFileName)
  22. sTemp = Left$(sTemp, iRetAmount)
  23. ReadIniFile = sTemp
  24. End Function


Form cần có 1 Command, TextBox, Label, CheckBox, OptionBox, ComboBox

Code: Select all

  1. Private Sub Command1_Click()
  2. 'Xoa file truoc khi ghi
  3. DeleteFile (App.Path & "\Setting.ini")
  4.  
  5. 'Ghi cac thuoc tinh cua TextBox, Label, CheckBox, OptionBox, ComboBox
  6. WriteIniFile App.Path & "\Setting.ini", "TextBox", "Text", Text1.Text
  7. Label1.Caption = Text1.Text
  8. WriteIniFile App.Path & "\Setting.ini", "Label", "Caption", Label1.Caption
  9. WriteIniFile App.Path & "\Setting.ini", "CheckBox", "Check", Check1.Value
  10. WriteIniFile App.Path & "\Setting.ini", "OptionButton", "Value", Option1.Value
  11. WriteIniFile App.Path & "\Setting.ini", "ComboBox", "Text", Combo1.Text
  12.  
  13. 'Ghi chieu cao va be rong cua Form
  14. WriteIniFile App.Path & "\Setting.ini", "FormHeight", "Height", Me.Height
  15. WriteIniFile App.Path & "\Setting.ini", "FormWidth", "Width", Me.Width
  16.  
  17. 'Ghi vi tri cua Form
  18. WriteIniFile App.Path & "\Setting.ini", "FormTop", "Top", Me.Top
  19. WriteIniFile App.Path & "\Setting.ini", "FormLeft", "Left", Me.Left
  20. End Sub
  21.  
  22. Private Sub Form_Load()
  23. 'Doc cac thuoc tinh cua TextBox, Label, CheckBox, OptionBox, ComboBox
  24. Text1.Text = ReadIniFile(App.Path & "\Setting.ini", "TextBox", "Text", "")
  25. Label1.Caption = ReadIniFile(App.Path & "\Setting.ini", "Label", "Caption", "")
  26. Check1.Value = ReadIniFile(App.Path & "\Setting.ini", "CheckBox", "Check", "0")
  27. Option1.Value = CBool(ReadIniFile(App.Path & "\Setting.ini", "OptionButton", "Value", "False"))
  28. Combo1.Text = ReadIniFile(App.Path & "\Setting.ini", "ComboBox", "Text", "")
  29.  
  30. 'Doc chieu cao va be rong cua Form
  31. Me.Height = ReadIniFile(App.Path & "\Setting.ini", "FormHeight", "Height", "3600")
  32. Me.Width = ReadIniFile(App.Path & "\Setting.ini", "FormWidth", "Width", "4800")
  33.  
  34. 'Doc vi tri cua Form
  35. Me.Top = ReadIniFile(App.Path & "\Setting.ini", "FormTop", "Top", "0")
  36. Me.Left = ReadIniFile(App.Path & "\Setting.ini", "FormLeft", "Left", "0")
  37. End Sub


Có gì sai sót thì các bạn bổ sung nhé... :D


• Hôm bây: www.tinsoftware.com ^ ^
Cố gắng lên...

miniclip05
Posts: 1
Joined: Wed 15/10/2008 8:26 pm

Re: Tạo file lưu những thiết đặt của chương trình

Postby miniclip05 » Wed 15/10/2008 8:30 pm

Cho mình hỏi câu lệnh này nghĩa là gì vậy:
sTemp = String$(50, 0)
Mình không hiểu nghĩa của nó và cũng không thực thi đc câu lệnh này, bạn xem lại.

QuangHoa
Guru
Guru
Posts: 542
Joined: Thu 27/03/2008 9:02 am
Location: Quê hương Đại tướng Võ Nguyên Giáp
Been thanked: 5 times
Contact:

Re: Tạo file lưu những thiết đặt của chương trình

Postby QuangHoa » Thu 16/10/2008 10:18 am

Hàm String$()
Cú pháp

Code: Select all

  1. Function String$(Num as long, Charater) as string

Tạo một chuổi gồm có Num ký tự Charater
Ví Dụ

Code: Select all

  1. MsgBox String$( 30, "a" )
==> Sẻ cho ra 30 chử "a" liên tiếp.
Chú ý tham số Charater nếu là một số nguyên thì sẻ cho ra Tạo một chuổi gồm có Num ký tự có mã là Charater
Ví dụ

Code: Select all

  1. MsgBox String$( 30, 65 )
==> Sẻ cho ra 30 chử "A" liên tiếp.

Code: Select all

  1. MsgBox String$( 30, 97 )
==> Sẻ cho ra 30 chử "a" liên tiếp.
Còn mã lệnh

Code: Select all

  1. sTemp = String$(50, 0)
  2.  

Sẻ cho ra 50 ký tự NULL. (Ký tự NULL (VbNUllChar) không là cái gì cả) :))
Thật ra thì nó chỉ có một tác dụng duy nhất là khởi tạo vùng nhớ cho biến sTemp vì lúc được khai báo nó chỉ là một cái biến rổng (cho dù đã được khai báo độ dài thì vẫn thế thôi).


Hãy chú ý những câu lệnh đại loại như

Code: Select all

  1. STemp="abc"
Thì VB sẻ dãn bộ nhớ cho biến Stemp rồi đưa giá trị cho nó, điều này thực hiện được vì VB biết rỏ biến sTemp nằm ở đâu trong RAM, nhưng khi truyền biến sTem cho một hàm API thì hàm API đó không thể làm được điều tương tự (Không thể dãn vùng nhớ) nên hàm API không thể gán kết quả cho biến sTemp được.
朋友
这些年一个人风也过雨也走,有过泪有过错还记得坚持什么。
真爱过才会懂会记没会回手,终有梦中有你在心中。
朋友一生一起走那些日子不再有,一句话一辈子一生情一杯九。
朋友不曾孤单过一声朋友你会懂,还有伤还有痛还要走还有我。

quydo89
Thành viên chính thức
Thành viên chính thức
Posts: 11
Joined: Fri 13/12/2013 1:20 pm
Has thanked: 1 time

Re: Tạo file lưu những thiết đặt của chương trình

Postby quydo89 » Sun 05/01/2014 2:05 pm

bạn ơi với cái thuộc tính enabled của text sao mình không làm theo được .... bạn viết câu thuộc tính enabled của text để lưu hộ mình với thanks bạn nhiều

quydo89
Thành viên chính thức
Thành viên chính thức
Posts: 11
Joined: Fri 13/12/2013 1:20 pm
Has thanked: 1 time

Re: Tạo file lưu những thiết đặt của chương trình

Postby quydo89 » Sun 05/01/2014 9:43 pm

mình làm được rồi heh


Return to “[VB] Hệ thống - Tập tin - Thư mục và Mạng”

Who is online

Users browsing this forum: No registered users and 1 guest