Hallo zusammen,
ist es möglich mit Lotus Script eine Ini-Datei auszulesen und wenn ja, wie?
Es ist nicht die notes.ini gemeint,sondern eine beliebige Ini-Datei.
vielen dank schon mal
Markus
Hallo zusammen,
ist es möglich mit Lotus Script eine Ini-Datei auszulesen und wenn ja, wie?
Es ist nicht die notes.ini gemeint,sondern eine beliebige Ini-Datei.
vielen dank schon mal
Markus
Da eine INI-Datei ja nur eine Textdatei ist kannst du sie mit den ganz normalen Dateibefehlen auslesen.
Willst du sie allerdings auswerten reicht das nicht.
Danke für die Anwort.
Leider reicht das einfache lesen als Textfile nicht aus, ich bräuchte schon eine funktion, der ich den abschnitt und den key mitgebe und als rückgabewert den zugehörigen value bekomme.
in delphi zb. Value := inidatei.readboolean(Abschnitt,Key)
gibt es sowas in lotus skript?
für die notes.ini gibt es doch getenvironmentValue, das wäre das richtige, wenn ich es auf beliebige ini-Dateien anwenden könnte, geht doch aber nur mit der notes.ini, oder?
ich hoffe jemand kann mir helfen.
gruss
markus
tja, das sieht eher schlecht für dich aus.
ich würde mir dafür eine routine schreiben die das standardmässig macht und diese dann halt immer aufrufen.
die muss dann halt den angegebenen textfile öffnen, nach dem abschnitt suchen und den wert auslesen. oder du findest irgendwo im internet eine dll die das kann und bindest die in notes ein.
viel glück beim suchen ...
HELP
:-? ?? habe das gleiche Problem jetzt...
kenne mich mit LScript nur wenig aus und muß die Ini-Datei der Windowsumgebung auslesen, da ich Daten in eine andere Anwendung exportieren soll.
Leider hört der Thread hier auf...
..vielleicht weiß ja irgendwer bißchen mehr und hat gerade Zeit, etwas hierzu zu schreiben...
.. und setzt den Thread auf diese Weise fort?
..konnte jedenfalls im Forum leider nichts finden ...
:cry:
Damit sollte es klappen (Win32 vorausgesetzt)
The INI format is pretty basic...
[header]
key=data
The Windows API includes function calls that will do all of the work for you.
Public Declare Function GetPrivateProfileStringA Lib "kernel32.dll" (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 Declare Function WritePrivateProfileStringA Lib "kernel32.dll" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Both:
lpApplicationName is the section header.
lpKeyName is the key's name.
lpFileName is the filename of the INI.
Get:
lpDefault is what you want the function to return if the key doesn't exist.
lpReturnedString is the String variable that will receive the data from the INI.
nSize is the width of the passed string.
Write:
lpString is the string to store.
[edit]
Reading and Writing a INI Key
Reading a key is pretty simple, just send it a hearty string for it to fill. The call returns a Long that gives the width of the key's data. The Left() function cuts off the irrelevant part of the returned string. The width of 255 should be plenty large for most applications.
sReturn = Space(255)
sReturn = Left(sReturn, GetPrivateProfileStringA(header, key, defaultReturn, sReturn, 255, filePath))
Writing a key is even easier...just supply the header, key, data, and filename.
WritePrivateProfileStringA header, key, Datum, filePath
Der Ausschnitt ist aus einem VB-Forum entnommen.
Bei den Declarations muß man in LS etwas "nachbessern", aber ansonsten steht alles drin, was man braucht, um INI-Dateien zu bearbeiten.
Zur Manipulation von Registry-Einträgen gibt es Ähnliches. Beim Googlen wird man fündig, wenn man etwas wie "Public Function" oder "Declaration" mitsucht. Sonst wird man von käuflichen Utilities, Beratern und Schulungsunterlagen immer zugemüllt.
ZitatIni-Datei der Windowsumgebung
Welche Windows-Version setzt Ihr ein?
ini-Dateien sind alte Technik. Win32 schreibt alles in die Registry.
Das Benutzen der Registry ist - glaube ich - zukunftssicherer, da ini-Dateien begrenzt sind.
Eine ini-Datei ist wie folgt aufgebaut:
Eintrag schreiben:
Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (Byval lpApplicationName As String, Byval lpKeyName As Any, Byval lpString As Any, Byval lpFileName As String) As LongSub Click(Source As Button) WritePrivateProfileString Abschnitt, Eintrag, Wert, DateinameEnd Sub
Abschnitt schreiben:
Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (Byval lpAppName As String, Byval lpString As String, Byval lpFileName As String) As LongSub Click(Source As Button) WritePrivateProfileSection Abschnitt, "", DateinameEnd Sub
Eintrag lesen:
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 Sub Click(Source As Button) Dim RetVal As String * 255, v As Long v = GetPrivateProfileString(Abschnitt, Eintrag, "", RetVal, 255, Dateiname) wert = Left(RetVal, v - 1)End Sub
Abschnitt lesen:
Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (Byval lpAppName As String, Byval lpReturnedString As String, Byval nSize As Long, Byval lpFileName As String) As Long
Sub Click(Source As Button)
Dim RetVal As String * 255, v As Long
v = GetPrivateProfileSection(Abschnitt, RetVal, 255, Dateiname)
wert = Left(RetVal, v - 1)
End Sub
Abschnitt, Dateiname, Eintrag und Wert muss Du natürlich noch anpassen.
Gruß
Dirk