vorhandene Test.Ini mit Textzeilen erweitern

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

DITA
***
Beiträge: 70
Registriert: Fr, 16.11.2012 16:23

vorhandene Test.Ini mit Textzeilen erweitern

Beitrag von DITA » Mo, 22.05.2017 13:45

Hallo,

benötige nochmals eure Hilfe, da ich die Tools (write/read.ini) von der Dannenhoefer Seite leider nicht zum laufen kriege, hab ich mit Hilfe des www's "selber" was zusammen gebastelt, was schon in etwa so funktioniert wie es soll, aber dabei hat sich dann die folgende Frage aufgetan.

Also Eine Test.ini mit Einträgen mit einem bestimmten Pfad kann ich per makro erstellen, mit einem anderen makro kann ich die Einträge auch
überschreiben anstatt wie gewollt dazu zu schreiben, aber wie schaffe ich es, die vorhandene Ini mit Text(zeilen) zu erweitern????
Sinnvoll wäre wahrscheinlich mit einzelnen Bereichen zu arbeiten, meine das, was oft in eckigen Klammern ist, sowie mit Parameter
(Name des Eintrags und dem =) und dem eigentlichen Wert, um halt auch an "richtiger Stelle" was eintragen bzw. später auch auslesen und löschen zu können.
Nur, wie realisiere ich das in meinem Code???
Für den hilfreichen Schubs wäre ich echt dankbar

Gruß Dirk
Dateianhänge
INet IniDatei.ods
(11.21 KiB) 87-mal heruntergeladen

mikeleb
******
Beiträge: 731
Registriert: Fr, 09.12.2011 16:50

Re: vorhandene Test.Ini mit Textzeilen erweitern

Beitrag von mikeleb » Mo, 22.05.2017 17:55

Hallo,
meine Idee wäre, die ini-Datei zeilenweise auslesen (in ein Array), ggf. bearbeiten, erweitern und dieses Array dann in eine neue Datei schreiben (überschreiben der alten).
Gruß,
mikeleb

DITA
***
Beiträge: 70
Registriert: Fr, 16.11.2012 16:23

Re: vorhandene Test.Ini mit Textzeilen erweitern

Beitrag von DITA » Mo, 22.05.2017 19:54

Hallo mikeleb,

erstmal danke, dass Du für mein Problem eine Lösung suchst.
Ich glaube das da genau mein Problem ist, die ganze ini einlesen schaff ich ja (siehe makro in msgbox), aber dann, Array und Schleifen scheinen bei mir nicht kompatibel zu sein - mache da wahrscheinlich was falsch, denn alle Seiten die ich zu Rate gezogen habe, arbeiteten auch mit Arrays, aber da brechen meine Tests dann immer zusammen. Einzigster Unterschied war/ist, mein Pfadaufbau und Platzierung auf'er Festplatte ist anders - jedenfalls was ich erkenne.

Würde hier gern meine "Quellen" preis geben, hab aber auch bei Thema Internet nicht wirklich die Ahnung wie man das macht.

Darf ich Dich bitten, in meinem Code mir den richtigen Weg aufzuzeigen, damit ich ne Chance hab das zu kapieren - danke

Gruss Dirk

mikeleb
******
Beiträge: 731
Registriert: Fr, 09.12.2011 16:50

Re: vorhandene Test.Ini mit Textzeilen erweitern

Beitrag von mikeleb » Mo, 22.05.2017 20:18

Hallo,
am Beispiel des Auslesens:

Code: Alles auswählen

Sub Aus_Ini_lesen

Dim aFile As String
Dim sMsg as String
Dim iNumber As Integer
Dim sZeile As String
Dim k as Integer

aFile = "c:\Test\Versuch\Test.ini"
iNumber = Freefile
'Zähler für Zeilen
k=0
'Erzeuge ein leeres Array
'es ist ja noch unbekannt, wie viele Zeilen in der Datei sind
Dim aDaten()

If Fileexists(aFile)= true  then
	Open aFile For Input As iNumber
	'Durchlauf durch alle Zeilen
	While not eof(iNumber)
		Line Input #iNumber, sZeile
		'jede Zeile wird dem Array hinzugefügt indem die Größe des Arrays auf den Wert k ausgedehnt wird
		'durch die Option preserve bleiben die bisherigen Inhalte erhalten
		ReDim preserve aDaten(k)
		'Zeile in Array schreiben
		aDaten(k)=sZeile
		'Zähler erhöhen
		k=k+1
	wend
	Close #iNumber
	'Durchlauf durch das Array zur Demonstration
	sMsg=""
	for i=0 to ubound(aDaten())
		sMsg=sMsg + aDaten(i) + chr(13)
	next
	Msgbox sMsg
else
	Msgbox (" Gibt nichts zum auslesen ")
End if

End Sub
Gruß,
mikeleb

DITA
***
Beiträge: 70
Registriert: Fr, 16.11.2012 16:23

Re: vorhandene Test.Ini mit Textzeilen erweitern

Beitrag von DITA » Mo, 22.05.2017 21:28

Hallo Mike, (vermute ich mal)

wow, erst einmal danke, der erste Code der durchläuft.....,ok, seh schon den/die ersten Fehler die ich eingebaut hatte, und natürlich den Unterschied im Ergebnis. Wenn ich auch jetzt im Augenblick noch nicht sehe wie es weitergeht, muss ich jetzt erstmal damit experimentieren.
Danke für die zwischengeschriebenen Kommentare, die bringen bestimmt Licht ins dunkle

Danke

Gruss Dirk

F3K Total
********
Beiträge: 3254
Registriert: Mo, 28.02.2011 17:49

Re: vorhandene Test.Ini mit Textzeilen erweitern

Beitrag von F3K Total » Di, 23.05.2017 08:04

Moin,
man kann auch einfach etwas an eine bestehende Datei dranhängen, siehe z.B. hier

Code: Alles auswählen

Open aFile For Append As iNumber
Gruß R

DITA
***
Beiträge: 70
Registriert: Fr, 16.11.2012 16:23

Re: vorhandene Test.Ini mit Textzeilen erweitern

Beitrag von DITA » Di, 23.05.2017 19:50

Hallo R - F3K Total,

hey, genau das war es was ich suchte - ok jetzt muss ich "nur noch" an der passenden Platzierung arbeiten - danke.

Hatte schon dieses iNumber = freefile in Verdacht, dass das eventuell umgeschrieben werden müßte.

Eine Frage hätte ich aber noch, Dein Link - bist Du Dir sicher dass dieser mit meiner Problematik zutun hat???? - dann versteh ich's noch nicht

Vielen Dank aber schon mal für den Schubs in die Richtung, jetzt bin ich wieder positiverer Hoffnung.

Gruss Dirk

DITA
***
Beiträge: 70
Registriert: Fr, 16.11.2012 16:23

Re: vorhandene Test.Ini mit Textzeilen erweitern

Beitrag von DITA » Mi, 24.05.2017 02:35

Hallo

also, wenn ich das jetzt richtig verstehe

append kann nur hinten dran hängen, -ok,
aber ich kann doch eof an passender Stelle auf true setzen (sprich wenn er im richtigen Bereich mit eckigen Klammern ist), dann wird doch dort das
Ende der ini vorgetäuscht.
Nur mein Problem ist zur Zeit, wenn ich öffne zum anhängen läuft mein makro erst garnicht in die while not eof Schleife,
und öffne ich erst zum lesen, kann ich nicht umswitchen auf dranhängen weil bereits geöffnet.

oh man, hoffe ihr versteht was ich meine und könnt mir helfen - danke

Gruss Dirk

Antworten