Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Open Office BASIC - ini auslesen

Empfohlene Antworten

Veröffentlicht

Hi!

Hat jemand ne Ahnung wie ich INI-Dateien in Open-Office auslesen kann?

hi

das könnte das falsche forum sein;

versuchs lieber mal hier:

>>klick<<

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.

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

Danke :)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.