Hur ska jag göra för att få koden att inte köras om filen inte finns Hej Hej igen Igen Gessle var iofs redan nöjd med svaret från SvenPon men det räcker väl med: Hej Farför använder du inte FileExist() metoden på FileSystemObject? HejFå koden att inte köras om filen inte finns
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.OpenTextFile(App.Path & "\test.txt", 1)
i = 0
Do Until f.AtEndOfStream
strText = f.ReadLine
If strText <> "" Then
frmOptions.List2.AddItem Replace(strText, ".", "")
Else
i = 1
End If
LoopSv: Få koden att inte köras om filen inte finns
Private Function FileExist(ByVal FilId As String) As Boolean
'FilId innehåller hela sökvägen till sökt fil
'Kontroll om filen redan finns
Dim FileNum As Long
FileNum = FreeFile
On Error Resume Next
Open FilId For Input As #FileNum
Select Case Err
Case Is = 0
FileExist = True
Case Else
FileExist = False
End Select
Close #FileNum
On Error GoTo 0
End Function
'**************************************
If FileExist(App.Path & "\test.txt") = False Then Exit Sub
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.OpenTextFile(App.Path & "\test.txt", 1)
i = 0
Do Until f.AtEndOfStream
strText = f.ReadLine
If strText <> "" Then
frmOptions.List2.AddItem Replace(strText, ".", "")
Else
i = 1
End If
Loop
SvenSv: Få koden att inte köras om filen inte finns
Tillägg om den sökta filen ligger direkt under tex C:\Test.txt
fungerar inte App.Path &"\Test.txt" , då måste du skriva
App.Path &"Test.txt" . När filen ligger direkt på en enhets
root så kommer App.Path lägga ett \ BackSlash själv,
så det kommer att se ut så här C:\\Test.txt
DSSv: Få koden att inte köras om filen inte finns
Av ovan sagda så bör FileExist kompleteras med följande rad
If InStr(FilId, "\\") Then _
FilId = Replace(tmpStr, "\\", "\")
Private Function FileExist(ByVal FilId As String) As Boolean
'FilId innehåller hela sökvägen till sökt fil
'Kontroll om filen redan finns
Dim FileNum As Long
FileNum = FreeFile
If InStr(FilId, "\\") Then _
FilId = Replace(tmpStr, "\\", "\")
DSSv: Få koden att inte köras om filen inte finns
If Dir(App.Path & "\test.txt") = "" Then Exit Sub
före resten av koden...
ThomasSv: Få koden att inte köras om filen inte finns
Den lösningen har sina brister ,förstod som amen i kyrkan
att det skulle komma ett sånt inlägg.
Frågeställningen har varit uppe många många ggr.
De flesta håller med om att min lösning
(som jag givetvis inte kommit på själv) är den mest kompletta.
Du kan fånga alternativ som att filen är öppnad av annat
program osv osv.
mvh
SvenSv: Få koden att inte köras om filen inte finns
<code>
FileName=App.Path & "\test.txt"
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExist(FileName) Then
Set f = fs.OpenTextFile(FileName, 1)
i = 0
Do Until f.AtEndOfStream
strText = f.ReadLine
If Len(strText) Then
frmOptions.List2.AddItem Replace(strText, ".", "")
Else
i = 1
End If
Loop
End If
</code>Sv: Få koden att inte köras om filen inte finns
>Farför använder du inte FileExist() metoden på FileSystemObject?
"Farför gör Ni på detta viset"
Modernt "skit" så gjorde Vi inte förr ;-)
DS