FileSyctemobject???

schleeper

Mitglied
hi leutz

ich möchte gerne überprüfen, ob eine .ini datei vorhanden ist oder nicht. Habs bisher mit dem FileExists methode versucht aber bisher vergeblich. weiss einer da ne lösung dafür???

thx im vorraus
cya schleeper
 
Entweder mit der alten Dir()-Methode, was aber eigentlich eher eine Notlösung sein sollte:
Code:
myIniFile = "C:\test\datei.ini"
If Dir(myIniFile) <> "" Then
    'Datei existiert
Else
    'Datei existiert nicht
End If
Oder eben objektorientiert mit einem FileSystemObject:
Code:
Dim fso As FileSystemObject
Set fso = New FileSystemObject

If fso.FileExists(myIniFile) Then '...
 
:)

hi

thx des funtzt

hab da aber noch an prob, und zwar kann ich nich aus der ini datei lesen, beim starten des programms sollen die gespeicherten einstellungen geladen werden. leider kommt beim starten folgende Meldung: "Projekt oder Bibliothek nicht gefunden" weisst du woran das liegt?
schreiben in die datei funtzt ohne probs :(

zum lesen verwende ich folgendes Modul:

Code:
Option Explicit

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

Public Function ReadConfigurationEntry(strSection As String, strKey As String) As String

    Dim intX As Integer
    Dim lngSize As Long

    'Set the value of lngSize to 255 and add 255 spaces to the ReadConfigurationEntry function
    lngSize = 255
    ReadConfigurationEntry = Space(255)

    'Call the GetPrivateProfileString API to read an entry from the configuration file
    intX% = GetPrivateProfileString(strSection$, strKey$, "", ReadConfigurationEntry, lngSize&, App.Path & "\options.ini")

    ReadConfigurationEntry = Trim$(ReadConfigurationEntry)

End Function
 
Mit diesem Code geht das bei mir ohne Probleme:
Code:
Option Explicit

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

Public Function ReadConfigurationEntry(strSection As String, strKey As String) As String

'Set the value of lngSize to 255 and add 255 spaces to the ReadConfigurationEntry function
ReadConfigurationEntry = Space(255)
'Call the GetPrivateProfileString API to read an entry from the configuration file
GetPrivateProfileString strSection, strKey, "", ReadConfigurationEntry, 255, "D:\meinedatei.ini"
ReadConfigurationEntry = Trim(ReadConfigurationEntry)

End Function
Den Dateinamen musst Du natürlich noch anpassen. Ansonsten hast Du anscheinend vergessen, die Deklaration der Funktion in einer Zeile zu schreiben oder die Zeilen mit einem Unterstrich am Ende umzubrechen.

Wenn es trotzdem noch irgendwelche Fehler gibt, dann lass den Code mal durch den Debugger laufen und achte darauf, in welcher Zeile der Fehler auftritt.
Welches Betriebssystem benutzt Du überhaupt?
 
hi

also der fehler tritt kommt beim aufruf der funktion vor.

Public Function ReadConfigurationEntry(strSection As String, strKey As String) As String

ist gelb markiert und

Space(255)

ist blau markiert.

ich benutze windows XP

cya schleeper
 
hi also hab gerade dein code ausprobiert, und immernoch der gleiche fehler :(. das komische ist nur, das das lesen und schreiben mit genau den gleichen modulen in einem anderen programm das ich zum testen geschrieben habe funktioniert...und das ohne probleme :(
 
Komisch... Wo hast Du den Code eigentlich her? Das klingt irgendwie so, als wenn die "kernel32.dll" nicht mehr da wäre. Kann sein, dass sich das unter Windows XP geändert hat, aber da kann ich nichts zu sagen.
Versuch das doch mal rauszufinden.
 
hmmm...also die kernel32 is da.....hab kein plan warum das aufeinma nichmehr funtzt, kann es irgendwas mit nciht vorhandenen verweisen oder komponenten zu tun haben???
 
Zurück