Parameter aus ini Datei mit Makro auslesen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Parameter aus ini Datei mit Makro auslesen

Re: Parameter aus ini Datei mit Makro auslesen

von Heinz Bär » Fr, 04.02.2011 14:33

Hallo Matze

Beim Aufruf der Subroutine ist p_array() leer. Es werden in der Subroutine dei Werte aus der INI-Datei darin eingefüllt.

Zu beachten ist noch, dass die INI-Datei im selben Verzeichnis steht wie das OOo-Dokument mit der Makro und heisst "boot.ini".

Gruss
Heinz

Re: Parameter aus ini Datei mit Makro auslesen

von MHage » Fr, 04.02.2011 14:21

So... habe mir deinen Code mal angesehen,
komme mit dem Aufrufen aber nich ganz klar.

Wenn ich

Code: Alles auswählen

call mm_ini_lesen(p_array(),"H")

msgbox p_array(2)
verwende, müsste er mir nicht den Inhalt aus p_array(2) in die msgbox schreiben?
Die MsgBox ist leer.

Und wenn ich mal die Variable inifile per MsgBox ausgeben lasse, dann steht private:object/name.ini

Vielleicht kannst du mir nochmal helfen.

Gruß
Matze

Re: Parameter aus ini Datei mit Makro auslesen

von MHage » Fr, 04.02.2011 12:44

Wow... Danke erstmal!

Das muss ich mir jetzt erstmal in Ruhe anschauen.


Danke und Gruß
Matze

Re: Parameter aus ini Datei mit Makro auslesen

von Heinz Bär » Fr, 04.02.2011 11:12

Hallo MHage

Ich habe so eine Funktion gebraucht, weiss aber nicht mehr woher ich sie geholt habe.

Hier hast Du meine ganze Subroutine:

Code: Alles auswählen

REM  *****  BASIC  *****

Option Explicit


Sub mm_ini_lesen(p_array(), pfad)

GlobalScope.BasicLibraries.LoadLibrary("Tools")

Dim myDoc As Object
myDoc=ThisComponent	

'									INI-Datei lesen	
Dim inifile as string
Dim bereich as string
Dim param as string
Dim OS as string
Dim Schraeger as string
Dim d_Url as string
Dim d_Pfad as string
dim zw_string as string

'								  	Welches Betriebs-System wird verwendet?
OS = GetGUIType()
if OS = 1 then Schraeger = "\"			' Windows
if OS = 3 then Schraeger = "\"			' Mac
if OS = 4 then Schraeger = "/"			' Unix / Linux
		
'								 	Pfad vom Programm bestimmen	
dim dummy()
d_Url=myDoc.getUrl()
d_pfad=ConvertFromUrl(d_Url)
if pfad = "H" then						' Hauptpfad ?
	p_array(0)=DirectoryNameoutofPath(d_pfad,Schraeger) & Schraeger
	p_array(1)=ConvertToUrl(p_array(0))
else
	d_pfad=DirectoryNameoutofPath(d_pfad,Schraeger)									' Vorlagenpfad ?
	p_array(0)=DirectoryNameoutofPath(d_pfad,Schraeger) & Schraeger
	p_array(1)=ConvertToUrl(p_array(0))
end if

inifile = p_array(0) & "boot.ini"

'									Datenbank-Name holen
bereich = "MySQL"
param = "DbName"
p_array(2) = readini(inifile, bereich, param)
'									Datenbank-Host holen
bereich = "MySQL"
param = "Host"
p_array(3) = readini(inifile, bereich, param)
'									Verzeichnis-Pfade holen
bereich = "Verzeichnisse"
param = "Vorlagen"
p_array(4) = readini(inifile, bereich, param)
'									Druckausgabe-Pfade holen
bereich = "Verzeichnisse"
param = "Drucken"
zw_string = readini(inifile, bereich, param)
p_array(5) = ConvertToUrl(zw_string)

'									URL der Bilder und Skizzen holen
bereich = "Verzeichnisse"
param = "Bilder_Typ"
p_array(6) = readini(inifile, bereich, param)
p_array(7) = ConvertToUrl(p_array(6))
bereich = "Verzeichnisse"
param = "Bilder_Boot"
p_array(8) = readini(inifile, bereich, param)
p_array(9) = ConvertToUrl(p_array(8))
bereich = "Verzeichnisse"
param = "Bilder_LP"
p_array(10) = readini(inifile, bereich, param)
p_array(11) = ConvertToUrl(p_array(10))

'									URL der Serienbriefe holen
bereich = "Verzeichnisse"
param = "SB_einfach"
zw_string = readini(inifile, bereich, param)
p_array(12) = ConvertToUrl(zw_string)
bereich = "Verzeichnisse"
param = "SB_komplex"
zw_string = readini(inifile, bereich, param)
p_array(13) = ConvertToUrl(zw_string)
'									Pfad OpenOffice-Makros
bereich = "Verzeichnisse"
param = "Makro"
p_array(17) = readini(inifile, bereich, param)

'									Benutzer-Name
bereich = "Benutzer"
param = "Name"
p_array(14) = readini(inifile, bereich, param)
'									Benutzer-Passwort
bereich = "Benutzer"
param = "Passwd"
p_array(15) = readini(inifile, bereich, param)

'									Programm Run-Parameter
p_array(16) = "0"
bereich = "Programm"
param = "Run"
p_array(16) = readini(inifile, bereich, param)
if p_array(16) = "" then
	p_array(16) = "1"			' Programm ausführen
end if


End Sub
' ----------------------------------------------------------------------------------------

Function readini( inifile as string, bereich as string, param as string) as string

Dim inBereich as boolean
Dim aFile as String
Dim inumber as integer
Dim szeile as string
Dim para as String
Dim Start as String
Dim ipos as integer

inBereich=false
Bereich="["+bereich+"]"
iNumber = Freefile
aFile = inifile
on error goto ende
if FileExists(inifile) then
Open aFile For Input As iNumber
While not eof(iNumber)

Line Input #iNumber, sZeile
if szeile=Bereich then inBereich=true
   if inBereich then
      ipos=InStr(sZeile,"=")
      if ipos>0 then
       	 para=mid(szeile,1,ipos-1)
      	 if para = param then
            readini=mid(szeile,ipos+1)
            inBereich=false
         end if
      end if
   end if
if inBereich then
      start=left(sZeile,1)
    if start="[" then inbereich=false
    end if
    if szeile=bereich then inBereich=true
wend
Close #iNumber
end if
exit function
ende:
end function
Die INI-Datei sieht bei mir so aus:

Code: Alles auswählen

[MySQL]
DbName=boot_db
Host=localhost
[Verzeichnisse]
Vorlagen=/home/heinz/Projekt_Boot_V4/Vorlagen/
Drucken=/home/heinz/Projekt_Boot_V4/Druck-Ausgabe/
Bilder_Typ=/home/heinz/Projekt_Boot_V4/Bilder/Typ/
Bilder_Boot=/home/heinz/Projekt_Boot_V4/Bilder/Boot/
Bilder_LP=/home/heinz/Projekt_Boot_V4/Bilder/Leinenplan/
SB_einfach=/home/heinz/Projekt_Boot_V4/Serienbrief/Einfach/
SB_komplex=/home/heinz/Projekt_Boot_V4/Serienbrief/Komplex/
Makro=/home/heinz/Projekt_Boot_V4/Makro/Boot_Verw/
[Benutzer]
Name=uuuuuu
Passwd=xxxx
[Programm]
Run=1
Ich hoffe, dass dies Dir weiterhilft.

Gruss
Heinz

Parameter aus ini Datei mit Makro auslesen

von MHage » Fr, 04.02.2011 10:41

Hallo,

ich habe ein Makro geschieben, welches u.a. Benutzername, Passwort, Datenbank usw. verwendet.

Da diese Werte recht individuell sind, möchte ich gerne diese in eine ini Datei schreiben und mit meinem Makro verwenden.

Da ich noch nie mit ini Dateien gearbeitet habe, habe ich keine Ahnung wie man das macht.
Kann mir jemand etwas Licht ins Dunkel bringen?


Gruß
Matze

Nach oben