• 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
Hình đại diện của người dùng
clarkkent
Mạnh Thường Quân
Mạnh Thường Quân
Bài viết: 1641
Ngày tham gia: T.Tư 16/04/2008 11:25 am
Đến từ: Chợ Lách - Bến Tre
Been thanked: 31 time
Liên hệ:

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

Gửi bàigửi bởi clarkkent » T.Năm 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

Mã: Chọn hết

  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

Mã: Chọn hết

  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
Bài viết: 1
Ngày tham gia: T.Tư 15/10/2008 8:26 pm

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

Gửi bàigửi bởi miniclip05 » T.Tư 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
Bài viết: 542
Ngày tham gia: T.Năm 27/03/2008 9:02 am
Đến từ: Quê hương Đại tướng Võ Nguyên Giáp
Been thanked: 5 time
Liên hệ:

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

Gửi bàigửi bởi QuangHoa » T.Năm 16/10/2008 10:18 am

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

Mã: Chọn hết

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

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

Mã: Chọn hết

  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ụ

Mã: Chọn hết

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

Mã: Chọn hết

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

Mã: Chọn hết

  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ư

Mã: Chọn hết

  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
Bài viết: 11
Ngày tham gia: T.Sáu 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

Gửi bàigửi bởi quydo89 » CN 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
Bài viết: 11
Ngày tham gia: T.Sáu 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

Gửi bàigửi bởi quydo89 » CN 05/01/2014 9:43 pm

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


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

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách