Första gången man startar programmet så skapar den några kataloger och filer. Om du lägger koden som skapar mapper och filer först. Så kommer koden som listar dem att visa dem. Eventuellt kan du ju köra om koden som listar dem. Nu när man har sovit några timmar så ser jag varför filerna inte läses in men frågar är hur man skall lösa det. Du kan ju förhindra fel. Genom att göra kontroll inna du gör något.MsgBox och starta om programmet.
För att programmet skall kunna läsa filerna som skapas så måste programmet startas om.
Har en MsgBox där det står vilka kataloger m.m. som skapas, kan man från den starta om programmet?Sv: MsgBox och starta om programmet.
Om du istället berättar hur du visar dem och varför dem inte visas kanske vi kan hjälpa dig med en lösning. Men att starta om programmet känns helt fel.Sv: MsgBox och starta om programmet.
Så här har jag i korta drag gjort och det ligger överst i filen.
Private Sub Form_load()
On Error GoTo Errorhandler
'Läser från filer
Open ".\config\emp.cfg" For Input As #fnum
'stänger den filen och öppnar en ny
Open ".\config\config.cfg" For Input As #confFile
'Stänger den filen
Om filerna inte kan hittas så får jag ett felmeddelande
Om jag får detta felet så skapas mappar och filer
MkDir(".\config\")
MkDir(".\mapp\mapp2")
Dim intFreeConfig As Integer
intFreeConfig = FreeFile
Open ".\config\config.cfg" For Output As #intFreeConfig
Print #intFreeConfig, "3"
Close #intFreeConfig
Dim intFreeEmp As Integer
intFreeEmp = FreeFile
Open ".\config\emp.cfg" For Output As #intFreeEmp
Print #intFreeEmp, "AJ"
Print #intFreeEmp, "SA"
Print #intFreeEmp, "HJ"
'...
'o.s.v.
Close #intFreeEmp
o.s.v.
För att filerna nu skall läsas in så måste form_load() köras igen....Sv: MsgBox och starta om programmet.
<code>
Private mConfigOption As Long
Private Sub CreateDir(DirName As String)
If Dir(DirName, vbDirectory) = "" Then
MkDir DirName
End If
End Sub
Private Sub Form_load()
Dim strRow As String
Dim FileNo As Long
On Error GoTo Errorhandler
CreateDir ".\config"
CreateDir ".\mapp"
CreateDir ".\mapp\mapp2"
FileNo = FreeFile
'Kontrolerar om emp finns.
If Dir(".\config\emp.cfg") = "" Then
Open ".\config\emp.cfg" For Output As #FileNo
Print #FileNo, "AJ"
Print #FileNo, "SA"
Print #FileNo, "HJ"
'osv...
Close FileNo
End If
Open ".\config\emp.cfg" For Input As #FileNo
Do Until EOF(FileNo)
Line Input #FileNo, strRow
List1.AddItem strRow
Loop
Close FileNo
If Dir(".\config\config.cfg") = "" Then
Open ".\config\config.cfg" For Output As #FileNo
Print #FileNo, "3"
Close FileNo
mConfigOption = 3
Else
Open ".\config\config.cfg" For Input As #FileNo
If Not EOF(FileNo) Then
Line Input #FileNo, strRow
mConfigOption = CLng(strRow)
Else
mConfigOption = 3
End If
Close FileNo
End If
Exit Sub
Errorhandler:
MsgBox Err.Description, vbCritical, Err.Source
End Sub
</code>