Zum Inhalt springen

Open Office BASIC - ini auslesen


geloescht_sinhtoren

Empfohlene Beiträge

das könnte das falsche forum sein;
Glaube ich nicht, er will das ja mit OpenOffice Basic machen, da ist er hier schon genau richtig.

Allerdings habe ich auf Anhieb nichts gefunden, womit man direkt ini-Dateien einlesen könnte. Wenn OOoBasic ein Konstrukt wie "Declare Function" aus VBA unterstützt, könnte man versuchen, GetPrivateProfileStringA aus Kernel32.dll einzubinden.

Ansonsten muss man es wohl zu Fuß machen, d.h. zeilenweise einlesen wie eine Textdatei.

Link zu diesem Kommentar
Auf anderen Seiten teilen

hab da was gefunden, vielleicht hilts dir weiter:


Sub IniLesen


' Variablendeklaration:

'-----------------------

dim WinDir as String 'Windows Systemverzeichnis

dim DateiNr as Integer 'Dateinummer für einen freien Dateikanal

dim Zeile as String 'Variable für die aktuell aus der Datei eingelesenen Zeile

dim Position as Integer 'Positionsangabe für die Suche nach Elementen zur Zeilenzerlegung

dim Werte(0,1) as String 'Array für die aus der Ini eingelesenen Werte (1. Element(0) = Name , 2. Element(1) = Wert)

dim W_Anzahl as Integer 'Zähler für die Werteanzahl, die eingelesen wurde

dim i as integer 'die berühmte Zählvariable i


'Initialiserung

'----------------------------------------

WinDir = Environ ("WinDir") 'das Eindows-Verzeichnis wird ermittelt

W_Anzahl = 0 'Die Anzahl der eingelesenen Werte ist momentan ja noch nicht groß


'Jetzt geht es los, ich versuche die Daten einzulesen und muss diese dazu erst einmal öffnen:

'--------------------------------------------------------------------------------------------

DateiNr = freefile 'freie Dateinummer ermitteln

On Error GoTo Fehler 'Fehler führen hiermit zum Abbruch (zum Debuggen auskommentieren)

Open WinDir & "\meine.ini" for input as DateiNr 'INI öffnen


'Nun muss die relevante Sektion gefunden werden:

'-----------------------------------------------

do

Line Input #DateiNr, Zeile

Position = Instr (Zeile, "[Sektionsname]")

loop until Position > 0


'Wenn ich nicht mit EOF abgeflogen bin, geht es hier weiter


'Nun werden die Werte und Wertenamen extrahiert und in das Datenarray übernommen

'-------------------------------------------------------------------------------

do 'dazu ist eine Schleife die beste Wahl der Waffen

Line Input #DateiNr, Zeile 'es wird die nächste Zeile eingelesen

Position = Instr (Zeile, "=") 'und die Position des Zeichens = ermittelt

if Position > 0 then 'dann wurde das Zeichen gefunden

Werte (W_Anzahl,0) = mid(Zeile, 1, Position - 1) 'und es kann der Parametername in das Array übernommen werden

Werte (W_Anzahl,1) = mid(Zeile, Position + 1, len(Zeile) 'dazu kommt jetzt noch der Parameterwert in´s Array

W_Anzahl = W_Anzahl + 1 'Wertezähler hoch

ReDim Preserve Werte(W_Anzahl,1) 'Array vergrößern

else 'ansonsten könnte es sein, dass eine fehlerhafte Zeile vorgekommen ist, oder die nächste sektion beginnt

Position = Instr (Zeile, "[") + Instr (Zeile, "]") 'daher prüfe ich mal, ob die beien markanten Zeichen für eine neue Sektion vorkommen

if Position > 1 then exit Do 'dann beginnt vermutlich eine neue Sektion und das Einlesen ist beendet

end if

loop until EOF(DateiNr) 'wenn keine neue Sektion kommt, dann geht es bis zum Dateiende weiter

Close #DateiNr 'die Datei brauche ich jetzt nicht mehr, ich habe alles im Array


Exit Sub 'Hier ist Ende, das Fehlerhandling braucht ja nun nicht mehr durchlaufen werden


Fehler:

On Error resume next

Close #DateiNr 'Falls der Fehler erst nach dem Öffnen aufgetreten ist

MsgBox "Es ist ein Fehler bei der Datenübernahme aufgetreten!"

End Sub

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...