'Alte' Eingaben speichern

Hi,

viele Anwendungen merken sich irgendwie, welche Dateien ich das letzte Mal geöffnet hatte oder den Ordner, wo ich das letzte mal was abgespeichert habe. (also nachdem ich das Programm geschlossen und neu gestartet habe)

Welche Möglichkeiten gibt es denn, solche Informationen zu speichern?

Ini-File?
Registry?

Noch eine Idee?

(wenn jemand was für ne Java-Swing anwendung fertig zu bieten hat, ideal, aber mir reichen auch schon eher allgemeine Lösungsansätze)

Besten Dank

Winni

*der gerade eine kleine SW schreibt und liebend gerne etwas lazy User unterstützen will

Hi,

viele Anwendungen merken sich irgendwie, welche Dateien ich
das letzte Mal geöffnet hatte oder den Ordner, wo ich das
letzte mal was abgespeichert habe. (also nachdem ich das
Programm geschlossen und neu gestartet habe)

Welche Möglichkeiten gibt es denn, solche Informationen zu
speichern?

solche Dinge kann man ganz hervorragend in einer simplen Textdatei speichern, und das würde ich auch bevorzugen. Wenn Du - was sinnvoll ist - die Konfiguration ohnehin in einer Textdatei (plain oder XML) ablegst, kannst Du diese Information natürlich dort mit hineinpacken.

Gruß,

Malte

Hi!

Welche Möglichkeiten gibt es denn, solche Informationen zu
speichern?

solche Dinge kann man ganz hervorragend in einer simplen
Textdatei speichern, und das würde ich auch bevorzugen. Wenn
Du - was sinnvoll ist - die Konfiguration ohnehin in einer
Textdatei (plain oder XML) ablegst, kannst Du diese
Information natürlich dort mit hineinpacken.

Neee, wo soll die Datei den hingeschrieben werden?

Ins eigene Programmverzeichnis geht ja nicht, da man dazu in der Regel Admin-Rechte braucht und ja nun jeder weiß, niemals als Admin was am Rechner tun.

Die Registry halte ich da für die bessere Wahl.

Gruß
Stefan

Hi!

Welche Möglichkeiten gibt es denn, solche Informationen zu
speichern?

solche Dinge kann man ganz hervorragend in einer simplen
Textdatei speichern, und das würde ich auch bevorzugen. Wenn
Du - was sinnvoll ist - die Konfiguration ohnehin in einer
Textdatei (plain oder XML) ablegst, kannst Du diese
Information natürlich dort mit hineinpacken.

Neee, wo soll die Datei den hingeschrieben werden?

Äh, da wo sie hingehört? In ~/.programmname/ bspw.

Ins eigene Programmverzeichnis geht ja nicht, da man dazu in
der Regel Admin-Rechte braucht und ja nun jeder weiß, niemals
als Admin was am Rechner tun.
Die Registry halte ich da für die bessere Wahl.

Bitte was? Wir reden von Java, oder? Damit reden wir von plattformunabhängiger Programmierung. Ich hab grad nicht auf der Kette, wie das mit Java und Zugriffen aufs Filesystem ist, aber Du solltest bedenken, daß ordentliche Betriebssysteme mitunter keine Registry besitzen. Textdateien hingegen kennen sie alle. Und sie kennen auch alle anwendungsspezifische Unterverzeichnisse im Home-Dir des jeweiligen Users (bei Windows wäre das C:\Dokumente und Einstellungen/Username/Anwendungsdaten/Anwendungsname/.

Es ist Deine Sache, wie Du Deine Software entwickelst, aber ein paar Gedanken darüber sollte’s wert sein.

Gruß,

Malte

Hi!

Bitte was? Wir reden von Java, oder? Damit reden wir von
plattformunabhängiger Programmierung. Ich hab grad nicht auf
der Kette, wie das mit Java und Zugriffen aufs Filesystem ist,
aber Du solltest bedenken, daß ordentliche Betriebssysteme
mitunter keine Registry besitzen.

Der OP fragte nach ini oder Registry, was wohl darauf hindeutet das er keine „ordentlichen“ Betriebssystem unterstützen will.

Textdateien hingegen kennen
sie alle. Und sie kennen auch alle anwendungsspezifische
Unterverzeichnisse im Home-Dir des jeweiligen Users (bei
Windows wäre das C:\Dokumente und
Einstellungen/Username/Anwendungsdaten/Anwendungsname/.

OK, das wäre eine Alternative. Leider schreiben die meisten Programme halt plump in ihr Verzeichnis und schon gehts schief.

Es ist Deine Sache, wie Du Deine Software entwickelst, aber
ein paar Gedanken darüber sollte’s wert sein.

Keine Sorge, mache ich mir schon. Wenns für Windows ist halt Registry und wenns für was anderes ist ini Datei im Textformat. Das kann man sogar während der Laufzeit entscheiden.

Gruß
Stefan

Hoi,

Der OP fragte nach ini oder Registry, was wohl darauf
hindeutet das er keine „ordentlichen“ Betriebssystem
unterstützen will.

ich bin kein Coder, deshalb werde ich mich nicht mit einem ausgewachsenen Softwareentwickler anlegen, aber ich erlaube mir festzustellen, daß „ini“ auch nix anderes ist, als eine Textdatei. Ob die nun hinten .ini oder .conf oder .hurz heisst, ist ja ziemlich sekundär :smile:

Unterverzeichnisse im Home-Dir des jeweiligen Users (bei
Windows wäre das C:\Dokumente und
Einstellungen/Username/Anwendungsdaten/Anwendungsname/.

OK, das wäre eine Alternative. Leider schreiben die meisten
Programme halt plump in ihr Verzeichnis und schon gehts
schief.

Is ja richtig, aber das ist doch allein die Entscheidung des Programmierers - was andere machen, kann ihm ja egal sein.

Es ist Deine Sache, wie Du Deine Software entwickelst, aber
ein paar Gedanken darüber sollte’s wert sein.

Keine Sorge, mache ich mir schon. Wenns für Windows ist halt
Registry und wenns für was anderes ist ini Datei im
Textformat. Das kann man sogar während der Laufzeit
entscheiden.

Welchen Vorteil hat denn ein Speichern von Konfigurationsdaten in der Registry? Ernsthafte Frage! Die Vorteile von Textdateien, die ich sehe sind

  • maximale Portierbarkeit
  • „human readable“ => sowohl manuelle als auch scriptgesteuerte Änderungen sind leichter realisierbar
  • Softwareverteilung wird erheblich erleichtert
  • Backup & Restore wird erheblich erleichtert

Nachteile?

Gruß,

Malte

Hallo Ihr 2
Jetzt seid mal wieder friedlich… *gfg*

Java und registry, wie geht denn das?

Und Java 1.4 unterstützt auch keine Umgebungsvariablen… *gfg*
(habe aber mal ein Workaround gebastelt, was auch leidlich funktioniert hat)
Und welche Umgebungsvariable ist für das User-Verzeichnis zuständig?

Also dann wohl sinnvoll, neben das exe-File (launch4j machts ja möglich) einfach eine Ini-Datei zu legen, wo der Krempel drin steht, ist wohl am einfachsten, zumal es ja dafür auch Zeugs fast fertig im Netz gibt.

Betsen Dank für Euer Köpfe rauchen…

Winni

Hallo Malte!

Welchen Vorteil hat denn ein Speichern von Konfigurationsdaten
in der Registry? Ernsthafte Frage! Die Vorteile von
Textdateien, die ich sehe sind

  • maximale Portierbarkeit

Nöö, siehe unten.

  • „human readable“ => sowohl manuelle als auch

Ist ne Registry auch.

scriptgesteuerte Änderungen sind leichter realisierbar

Naja, man muß sich halt ein bischen mehr anstrengen.

  • Softwareverteilung wird erheblich erleichtert

?

  • Backup & Restore wird erheblich erleichtert

Jain, solange man nur an PCs denkt dann ja.

Nachteile?

Es läuft nicht unter Windows CE, Pocket PC 2003, Pocket PC 2005,…
Unter diesen Systemen ist in der Regel „nur“ die Registry in nicht flüchtigem Speicher. Außerdem gibt es keine vernünftige Stelle wo man die Textdatei hinschreiben könnte, so’n Magento (Pocket PC 2005) hat kein wirkliches Filesystem.

Wenn man ein „Designed for Windows“ Logo braucht (Kunde besteht drauf) dann hat man die Registry zu nutzen.

Gruß
Stefan