AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Daten-Dateien - wo speichern?

Ein Thema von torf160 · begonnen am 14. Mär 2009 · letzter Beitrag vom 14. Mär 2009
Antwort Antwort
Seite 1 von 2  1 2      
torf160

Registriert seit: 20. Sep 2006
Ort: Bad Oldesloe
24 Beiträge
 
Delphi 3 Professional
 
#1

Daten-Dateien - wo speichern?

  Alt 14. Mär 2009, 13:06
Hallo,

ich habe ein Programm, dass sowohl globale als auch benutzerspezifische Daten lesen und speichern soll.

Wo soll ich die Dateien speichern und wie stelle ich sicher, dass auch alle Benutzer die globalen Daten lesen und schreiben können?
Ist %APPDATA% der richtige Ort für die benutzerspezifischen Daten?

Es handelt sich um eine normale Anwendung, die mit Administratorrechten installiert und dann mit "normalen" Benutzerrechten benutzt werden soll.
An den Registrierungsdateien möchte ich keine Änderungen vornehmen.

Funktionieren sollte das ganze nach Möglichkeit mit Deplphi 3 unter Windows 95 bis Vista.

Schon mal vielen Dank, für Eure Hilfe.

torf160
Thomas Hamdorf
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: Daten-Dateien - wo speichern?

  Alt 14. Mär 2009, 13:11
GLobale Daten in das Verzeichnis für alle User und die anderen Daten in das Verzeichnis des aktuellen Users. Da musst du wohl mit 2 Dateien arbeiten.
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.345 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Daten-Dateien - wo speichern?

  Alt 14. Mär 2009, 13:14
Das ist schon der richtige Ort, aber nach NT (2000 und höher) und Win9x müsstest du schon ggf. unterscheiden.
http://www.delphi-library.de/viewtopic.php?p=548600

Wenn du es richtig anstellst, dann kannst du es auch dem Benutzer überlassen, ob die Daten im eigenen Verzeichnis portabel oder den Richtlinien nach in den Anwendungsdaten gespeochert werden sollen:
http://www.delphi-library.de/viewtopic.php?p=541637
(Leider bin ich da noch nicht dazu gekommen das fertigzustellen.)

In dem zweiten Link stehen auch die einzelnen Möglichkeiten für die Daten.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Daten-Dateien - wo speichern?

  Alt 14. Mär 2009, 15:49
Das was hier gennant wird, ist ja alles soweit OK. Ich frage mich nur immer, wie machen das die Softwarehersteller. Wir z.B. nutzen eine Software, ein ganz neu entwickeltes Tool zur Steuerung von Zutrittskontrollsystemen, welche meistens ins Netzwerk integriert werden.

Die Datenbank der Software liegt allerdings Standartmäßig im Prgrammverzeichnis, was hier allerdings immer wieder als falsch und Vorallem als eventuell Fehlerhaft bewertet wird.

Die Software der Zutrittskontrolle hat folgendes Verzeichnis:

C:\Programme\Novar\IQMultiAccess\Date\IQDat.fdb

und die Software der Einbruchmeldetechnik

C:\Programme\Novar\Winfem\User.fdb

selbst Delhpi, hat in den Anwendungsdaten nicht alles gespeichert. Die gesamte LIB etc. befindet sich unter Programme.
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
torf160

Registriert seit: 20. Sep 2006
Ort: Bad Oldesloe
24 Beiträge
 
Delphi 3 Professional
 
#5

Re: Daten-Dateien - wo speichern?

  Alt 14. Mär 2009, 15:54
@Christian: mehrere Dateien will ich ja auch benutzen.

@Sebastian Jänicke:

Das mit dem GetSpecialFolder hab ich hinbekommen und ich würde die Dateien auch gerne in C:\Dokumente und Einstellungen\All Users\Anwendungsdaten schreiben.
Es sieht aber so aus, als ob ein normaler Benutzer dort auch nur Lese-Rechte hat. Es soll ja aber möglich sein, die Dateien neu zu schreiben.

Ist es denn möglich unter Delphi (Vers. 3) die Rechte zu verändern?

torf160
Thomas Hamdorf
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Daten-Dateien - wo speichern?

  Alt 14. Mär 2009, 16:06
Moin Jens,

Zitat von Jens Hartmann:
Die Datenbank der Software liegt allerdings Standartmäßig im Prgrammverzeichnis, was hier allerdings immer wieder als falsch und Vorallem als eventuell Fehlerhaft bewertet wird.
Da der normale Anwender dort keine Schreibrechte hat, gehören diese Daten, für den Fall, dass der normale Anwender sie ändern können soll, dort auch nicht hin.
Wenn die Daten dort nur gelesen werden sollen, ist es unproblematisch.

[EDIT]
Daten, die alle User betreffen gehören zwar in den "All Users"-Bereich, aber es auch nicht üblich, dass ein Anwender Daten eines Programmes global ändert. So gesehen ist das fehlende Schreibrecht dort auch kein Problem
[/EDIT]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

Re: Daten-Dateien - wo speichern?

  Alt 14. Mär 2009, 16:10
Zitat von torf160:
C:\Dokumente und Einstellungen\All Users\Anwendungsdaten
AppData ist ja nicht das Ende vom Lied. Da gibts bei mir hier unter Vista noch \roaming und \local. Ich würde sagen local gehört zum User und roaming für alle User. Bin mir aber nicht sicher. Mein Programm speichert seine Daten im Moment in \local\<ProgrammName>\settings.ini.
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.345 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Daten-Dateien - wo speichern?

  Alt 14. Mär 2009, 16:21
Zitat von Jens Hartmann:
selbst Delhpi, hat in den Anwendungsdaten nicht alles gespeichert. Die gesamte LIB etc. befindet sich unter Programme.
Diese wird aber auch nicht verändert. Die kompilierten Packages z.B. landen ab Delphi 2005 in den eigenen Dateien unter "Borland Studio Projects\Bpl" bzw. ab Delphi 2007 in den öffentlichen Dokumenten unter "Rad Studio (5)6.0\Bpl".
Deshalb braucht Delphi ab 2005 auch keine Administratorrechte.

Das alte Delphi 7 und früher hat den Fehler gemacht, dass es das aktuelle Arbeitsverzeichnis benutzt hat als Projektverzeichnis, was u.a. die Inkompatibilität mit Vista verursacht hat. Das ist jetzt aber auch schon 8 Jahre oder so alt, deshalb ist das heute ja nicht mehr so schlimm. Aber man kann das mit kleinen Tricks auch vollständig unter Vista und Windows 7 zum Laufen bekommen.
Aber wer will das schon , da fehlen ja ohnehin viele Sachen, sowohl in der IDE als auch in der Sprache. Das merke ich ja, wenn ich irgendwie zumindest den größten Teil der Funktionalität von Komponenten auch dort noch anzubieten versuche.

Zitat von torf160:
Das mit dem GetSpecialFolder hab ich hinbekommen und ich würde die Dateien auch gerne in C:\Dokumente und Einstellungen\All Users\Anwendungsdaten schreiben.
Es sieht aber so aus, als ob ein normaler Benutzer dort auch nur Lese-Rechte hat. Es soll ja aber möglich sein, die Dateien neu zu schreiben.
Die veränderbaren Daten sollten in CSIDL_APPDATA (benutzerspezifisch im ganzen Netzwerk), CSIDL_LOCAL_APPDATA (benutzerspezifisch und nur auf dem Rechner) hinein. In den Pfad für alle Benutzer darf ein Programm eines einzelnen Benutzers nicht ohne Administratorrechte schreiben.
http://msdn.microsoft.com/en-us/library/bb756940.aspx

Als Ausweg blieben (wenn die Daten wirklich für alle Benutzer gelten müssen) die öffentlichen Dokumente (CSIDL_COMMON_DOCUMENTS = $2E), in denen Schreibrechte bestehen. Das ist ja auch der Grund, weshalb Codegear diese mit dem Rad Studio nutzt.

Allerdings sind diese ggf. freigegeben, deshalb ist es eher sinnvoll, diese nur zum Datenaustausch zu verwenden, d.h. zum Beispiel dort eine Kopie abzulegen, die dann ggf. ins eigene Profil kopiert werden kann, wenn ein Benutzer das Programm startet.

Sinnvoll ist da dann auch eher ein Server, auf dem die entsprechenden Rechte für alle Benutzer gesetzt sind.

// EDIT:
Zitat von freak4fun:
Zitat von torf160:
C:\Dokumente und Einstellungen\All Users\Anwendungsdaten
AppData ist ja nicht das Ende vom Lied. Da gibts bei mir hier unter Vista noch \roaming und \local. Ich würde sagen local gehört zum User und roaming für alle User. Bin mir aber nicht sicher. Mein Programm speichert seine Daten im Moment in \local\<ProgrammName>\settings.ini.
Nicht ganz. Local ist nur für den Benutzer und nur für den Rechner, Roaming ist bei einer Netzwerkanmeldung für diesen Benutzer auf allen PCs.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Blackheart

Registriert seit: 4. Mai 2005
846 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Daten-Dateien - wo speichern?

  Alt 14. Mär 2009, 16:33
Das waren nicht Fehler früher war das halt so.
Blackheart
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.345 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Daten-Dateien - wo speichern?

  Alt 14. Mär 2009, 16:47
Zitat von Blackheart:
Das waren nicht Fehler früher war das halt so.
Naja, Windows 2000 wurde Anfang 2000 veröffentlicht... Und die Rechteproblematik gab es auch da schon.
Delphi 7 kam dann anderthalb Jahre später im August 2002 raus, da hätte das eigentlich korrigiert sein müssen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz