Ini-System
Übersicht

![]() |
Silver_KneeBetreff: Ini-System |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein Ini-Reader, Editor und Writer.
Variablen auslesen, verändern und abspeichern: BlitzBasic: [AUSKLAPPEN] LoadIni("c:\Windows\Datei.ini","MeineINI") Code: [AUSKLAPPEN] Function LoadIni(filename$,inifile$="")
Lädt eine Ini-Datei in den Speicher. Mit inifile kann man ihr einen speziellen Namen geben, ansonsten bekommt sie den Dateinamen für die spätere Verwendung. Function GetIniValue$(inifile$,section$,variablename$) Liest aus einer bestimmten Datei, aus einer Bestimmten Section eine Variable aus. Function SetIniValue(inifile$,section$,variablename$,variablevalue$) Setzt (überschreibt ggf.) eine Variable. Function SaveIni(filename$,inifile$,add=0) Speichert eine Datei (inifile) mit einem bestimmte Dateinamen(filename) ab. Wenn add=1 ist wird an eine ggf bestehende Ini-Datei die Werte und Sektionen angehängt. Function CreateIniFile(inifile$) Erstellt eine Datei im Speicher (noch nicht auf der Festplatte) Function AddIniSection(inifile$,section$) Fügt einer Datei eine Sektion hinzu Function AddIniVariable(inifile$,section$,variablename$,variablevalue$) Fügte einer Sektion eine Variable hinzu (überschreibt bestehende Variablen NICHT -> SetIniValue) Function RemoveIniSection(inifile$,section$,movetosection$="",movetoinifile$="") Entfernt eine Sektion. Mit movetosection und movetoinifile kann man die Variablen vor dem Löschen in eine andere Sektion bzw in eine andere Sektion einer anderen Datei verschieben. Function RemoveIniVariable(inifile$,section$,variablename$) Entfernt eine Variable. Function FreeIniFile(inifile$,moveto$="") Entfernt eine Datei aus dem Speicher. Löscht weder Dateien von der Festplatte(-> [[DeleteFile]]), noch speichert es die Werte vorher ab (-> SaveIni). Mit moveto kann man eine Datei angeben, in die die Sektionen mit ihren Variablen vor dem Löschen verschoben werden. --- Debug(txt$) Mit dieser Funktion kannst du Fehlermeldungen verarbeiten. Verändere Sie um diese Meldungen anzuzeigen o.ä. AfterLast(str$,find$) Mit AfterLast(DateiName,"\") kannst du einen Dateinamen vom Pfad trennen. BlitzBasic: [AUSKLAPPEN] Function LoadINI(filename$,inifile$="") --Version 1.1 Die Ersten Posts beziehen sich auf eine ältere Version --Version 1.1fix Die Funktionen AfterLast und Debug haben gefehlt |
||
- Zuletzt bearbeitet von Silver_Knee am Sa, Dez 25, 2010 10:33, insgesamt 2-mal bearbeitet
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
warum return deine loadfunktion nicht einfach das richtige objekt, dann musst du das beim lesen und schreiben nicht suchen? | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hätt' ich auch machen können. Ich wollte aber den Anwender keine Types sehen lassen. So ist es einfaher zu bedienen. | ||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
sehr schöne Idee
Vielleicht könntest Du oben bei den Aufruf-Beispielen auch noch ein Beispiel aufführen, das zeigt, wie man einen Wert in eine INI schreibt. Außerdem würde ich die DeleteIniFile() eher RemoveIni() oder FinishIni() nennen. Sonst denkt man, da wird die INI-Datei von der Platte entfernt. Ist denn sichergestellt, dass hineingeschriebene Werte beim Beenden des Programm auch auf die Platte wandern? |
||
Well |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Silver_Knee hat Folgendes geschrieben: Hätt' ich auch machen können. Ich wollte aber den Anwender keine Types sehen lassen. So ist es einfaher zu bedienen.
Handle und Object? |
||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also DeleteIniFile löscht die Ini Datei nur aus dem Speicher.
Ein Beispiel wie man etwas auf die Platte bekommt wäre: BlitzBasic: [AUSKLAPPEN] CreateIniFile("MeineINI") das wird dann zu einer Datei: Code: [AUSKLAPPEN] [Person]
Name=Hans Ob die hingeschriebenen Werte auf die Platte wandern ist deine Entscheidung. zB könnte man Settings von einem Server laden, die die Setting der User teilweise überschreiben aber sicher nicht abgespeichert werden sollen. EDIT: Ich kenne Handle und Object. Hätt ich auch machen können... Bringe wahrscheinlich ein Kompatibles Paket dass das dann unterstützt sozusagen für fortgeschrittene, die können dann mit rückgabewerten jonglieren ohne Hardcoded Strings zu nutzen. |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du könntest die Funktion Basic-konsistent FreeIniFile nennen. ![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja, das war mir schon klar! Aber schreib's doch noch in den ersten Beitrag rein. Damit es dort jeder sofort finden kann.
Das war mein eigentliches Anliegen. Die Leute schreiben oft wahnsinnsgute Funktionen. Und die "Anleitung" dazu wird dann miniklein. Dabei ist dieser Teil genauso wichtig. Und es ist der Hauptgarant für häufiges Downloaden. Die Funktionen, die "öffentlich" sind werden genau beschrieben. Die "privaten" Funktionen mit dem kommentar "; only for internal use" kommentiert. Die Funktionsnamen müssen für Dritte eindeutig sein. Dein Name "DeleteIniFile" ist "leider eindeutig", aber macht eindeutig nicht das, was er vorgibt zu tun. Nenne die Funktion "FinishIni" oder so. |
||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok Free hört sich besser an überzeugt. Ich Editiere mal eben den oberen Post | ||
![]() |
hamZtaAdministrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Silver_Knee hat Folgendes geschrieben: Hätt' ich auch machen können. Ich wollte aber den Anwender keine Types sehen lassen. So ist es einfaher zu bedienen.
Wieso denn nicht? Types sind nunmal Bestandteil der Sprache, wieso sollte man die mit allen Mitteln verschwinden lassen wollen? Außerdem wäre es direkt mit Objekten wesentlich schneller als jedesmal wieder suchen zu müssen. Finde ich sehr hässlich so! edit: Und die Bedienung wird dadurch auch nicht einfacher oder sonstwas. Ob ich jetzt einen String oder ein Objekt übergebe verändert nichts an der Schwierigkeit. |
||
Blog. |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
So kann man halt einfach alles Hardcoded hinklatschen ohne 2 Variabeln für Datei und Section zu nutzen.
Habe jetzt den Ersten Post editiert. Neue Namen und ne beschreibung für jeden Befehl. |
||
![]() |
hamZtaAdministrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da definier ich lieber ein paar Variablen mehr und hab dadurch einen enormen Geschwindigkeitsvorteil.
Aber es ist ja dein Code ![]() |
||
Blog. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group