Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi SPeichern/Laden von txt's (https://www.delphipraxis.net/110085-speichern-laden-von-txts.html)

adrinator 12. Mär 2008 18:24


SPeichern/Laden von txt's
 
Hallo!

Wie kann ich mit Delphi2005 txt Dateien speichern und wieder laden? Das Programm soll einfach ein Label in eine txt datei kopieren und dann später wieder laden. Am besten wäre es, wenn man SPeicherstände auswählen kann (3 würden recihen). Wie geht sowas ;)

mfg
adrian

Der.Kaktus 12. Mär 2008 18:28

Re: SPeichern/Laden von txt's
 
hallo,
warum in eine Textdatei?..so wenig Werte kannst Du in eine INI bzw. in die Registry schreiben..(TIniFile..etc.)

s-off 12. Mär 2008 18:28

Re: SPeichern/Laden von txt's
 
Hallo,

bemühe doch einfach mal die Suche. I/O ist ein grundlegendes Thema - daher wirst Du dazu sicherlich eine Menge guter Tipps finden - wenn Du danach suchst.

RSF 14. Mär 2008 19:12

Re: SPeichern/Laden von txt's
 
Hallo
Ich benutze zum speichern von Variablenwerten Filestreams. Ist zwar gewöhnungsbedürftig
aber sehr flexibel. Dadurch bin ich nicht von "Ini" und "Registry" abhängig.

s-off 14. Mär 2008 19:25

Re: SPeichern/Laden von txt's
 
Zitat:

Zitat von RSF
Hallo
Ich benutze zum speichern von Variablenwerten Filestreams. Ist zwar gewöhnungsbedürftig
aber sehr flexibel. Dadurch bin ich nicht von "Ini" und "Registry" abhängig.

Was ist das für eine Aussage?
Dafür bist Du dann von 'normalen' Textdateien 'abhängig' - ist das besser als bspw. Ini-Dateien? *hust*

RSF 14. Mär 2008 19:54

Re: SPeichern/Laden von txt's
 
Der Vorteil liegt darin das die Anwendung unabhängig von einer Installation ist.
Ich kann die Anwendung an einem beliegen verschieben (z.B. USB-Stick)und auf einem
anderen PC laufen lassen.Gut geht auch mit INI. FileStreams sind keine einfachen txt-Dateien wie INI-Dateien.
Eine Änderung bzw. Einsicht ist dadurch nicht so einfach durch jedem möglich. Was manchmal auch von Vorteil ist.
Es kommt immer auf den Zweck an.

olee 14. Mär 2008 19:57

Re: SPeichern/Laden von txt's
 
Ähmm ...

Wie wärs mit TStringList ?

s-off 14. Mär 2008 20:05

Re: SPeichern/Laden von txt's
 
Zitat:

Zitat von RSF
Der Vorteil liegt darin das die Anwendung unabhängig von einer Installation ist.
Ich kann die Anwendung an einem beliegen verschieben (z.B. USB-Stick)und auf einem
anderen PC laufen lassen.Gut geht auch mit INI.

Das ist kein Vorteil, da - wie Du selber bemerkt hast - das genauso mit Ini-Dateien funktioniert.
Ini-Dateien sind, da sie für genau diesen Zweck geschaffen worden sind, sogar noch sehr viel komfortabler.

Zitat:

Zitat von RSF
FileStreams sind keine einfachen txt-Dateien wie INI-Dateien.

Nö, stimmt - FileStreams sind gar keine Dateien. Und jetzt erzähl mir nicht, dass Du FileStreams als solche auf der Festplatte ablegst.

Zitat:

Zitat von olee
Wie wärs mit TStringList ?

Und dann? Dann hast Du in etwa das Gleiche Ergebnis wie RSF....
Oder legst Du auch Stringlisten 'raw' auf der Festplatte ab? :mrgreen:

Alles, was ihr beschreibt, sind keine Dateitypen, sondern Mittel und Wege, Daten irgendwo abzulegen, bspw. auf der Festplatte.

RSF 14. Mär 2008 20:17

Re: SPeichern/Laden von txt's
 
INI-Datein sind doch eigentlich veraltet. Ein guter Programmiere
meidet Ini-Dateien! Wenn dann nur noch Registry Einträge.
FileStreams lassen sich sehr gut in Dateien speichern!

Fussball-Robby 14. Mär 2008 20:21

Re: SPeichern/Laden von txt's
 
Zitat:

Zitat von RSF
INI-Datein sind doch eigentlich veraltet. Ein guter Programmiere
meidet Ini-Dateien! Wenn dann nur noch Registry Einträge.
FileStreams lassen sich sehr gut in Dateien speichern!

Also ich finde Inis ganz praktisch. Und wenn du mal mehrere achen speichern willst, dann müllst du dem Benutzer nur die ganze Registry voll, vor allem wenn es kein Deinstallationsprogramm gibt.

Mfg

s-off 14. Mär 2008 20:30

Re: SPeichern/Laden von txt's
 
Zitat:

Zitat von RSF
Ein guter Programmiere meidet Ini-Dateien! Wenn dann nur noch Registry Einträge.

Damit hast Du Dich gerade als ''nicht guter' Programmierer' geoutet.

Edit: RechtSchreibFehler behoben :mrgreen:

3_of_8 14. Mär 2008 20:32

Re: SPeichern/Laden von txt's
 
Zitat:

Zitat von RSF
Der Vorteil liegt darin das die Anwendung unabhängig von einer Installation ist.
Ich kann die Anwendung an einem beliegen verschieben (z.B. USB-Stick)und auf einem
anderen PC laufen lassen.Gut geht auch mit INI.

Genau das sollte man aber _nicht_ machen, weil es durchaus üblich ist, dass ein Programm keine Schreibrechte auf sein eigenes Verzeichnis hat.

cruiser 14. Mär 2008 20:35

Re: SPeichern/Laden von txt's
 
Zitat:

Zitat von RSF
INI-Datein sind doch eigentlich veraltet. Ein guter Programmiere
meidet Ini-Dateien! Wenn dann nur noch Registry Einträge.
FileStreams lassen sich sehr gut in Dateien speichern!

INI Dateien mögen alt sein, aber veraltet? Nein. Die Frage ist nur wohin man sie speichert. Ideal ist es, den Benutzer das bestimmen zu lassen und es von Gund her in den Benutzerdaten abzulegen.

Und sobald es strukturiert wird hilft dir auch die Registry nicht weiter. Aber die Diskussion führt zu nichts.

RSF 14. Mär 2008 20:54

Re: SPeichern/Laden von txt's
 
@ 3_of_8
Seit wann hat ein Programm keine Schreibrechte auf sein eigenes Verzeichnis?

@ Fussball-Robby
Richtig die Registry kann durch unüberlegten Code als Datenbank missbraucht werden.
Währe sehr schlecht.
Deshalb z.B. Variablenwerte in FileStreams abspeichern. Oder bei vielen Variablen gleich eine Datenbank-Tabelle anlegen.

DeddyH 14. Mär 2008 20:58

Re: SPeichern/Laden von txt's
 
Zitat:

Zitat von RSF
Seit wann hat ein Programm keine Schreibrechte auf sein eigenes Verzeichnis?

Schon mal was von Vista und eingeschränkten Benutzern gehört?

3_of_8 14. Mär 2008 20:59

Re: SPeichern/Laden von txt's
 
Das ist nicht unbedingt der Fall, aber auch nicht gerade unüblich. Unter Linux zum Beispiel ist das bei vielen Programmen, die für alle Benutzer installiert sind, so (solange sie nicht gerade root gehören und das SUID-Bit gesetzt haben). Aber auch unter Windows ist es ähnlich: Kein Programm in C:\Programme kann in sein eigenes Verzeichnis schreiben, wenn es nicht als Administrator ausgeführt wird. (Was man ja eigentlich nicht tun sollte)

s-off 14. Mär 2008 21:01

Re: SPeichern/Laden von txt's
 
Zitat:

Zitat von RSF
Oder bei vielen Variablen gleich eine Datenbank-Tabelle anlegen.

Genau, ich baue mir nächste Woche auch ein Parkhaus für meine vier Autos und zwei Fahrräder :gruebel:

Edit: nun zeig uns doch endlich, wie Deine FileStreams aussehen :mrgreen:

3_of_8 14. Mär 2008 21:02

Re: SPeichern/Laden von txt's
 
Er hat ja gesagt: Bei _vielen_ Variablen.

s-off 14. Mär 2008 21:04

Re: SPeichern/Laden von txt's
 
Ich verstehe immer nur Variablen...

Er soll mal konkret werden.
Wenn ich Programmeinstellungen speichere, und seien es noch so viele, dann benutze ich dafür sicherlich keine Datenbank.
Und in 'FileStreams' speichere ich schonmal gar nichts ab.

Sind wir hier auf dem Sprachschrottplatz? Wenn das jemand liest, der weder weiß, was eine Variable ist, noch was Streams sind, der kommt ja total ins rotieren.

Zitat:

Zitat von 3_of_8
Er hat ja gesagt: Bei _vielen_ Variablen.

'Viel' ist sowas von relativ ;)
Für einen Studenten sind vier (angemeldete) Autos auch viel - für einen Autoliebhaber und Millionär ggf. nicht.

RSF 14. Mär 2008 21:07

Re: SPeichern/Laden von txt's
 
@ DeddyH
Habe Ich! Programmeigenschaft --> Kompatibilität --> als Administrator ausführen

s-off 14. Mär 2008 21:10

Re: SPeichern/Laden von txt's
 
Zitat:

Zitat von RSF
@ DeddyH
Habe Ich! Programmeigenschaft --> Kompatibilität --> als Administrator ausführen

Wenn Deine Programme ausschliesslich Du alleine benutzt, dann ist das ja auch in Ordnung.

Ein Entwickler, der hauptberuflich Software entwickelt und vertreibt wird so allerdings nicht weit kommen.
Du kannst den Endusern kaum vorschreiben, dass sie Dein Programm als Admins ausführen müssen, damit es läuft!

3_of_8 14. Mär 2008 21:11

Re: SPeichern/Laden von txt's
 
@RSF:
Wie sinnvoll.... :roll:

Das führt das komplette Sicherheitskonzept eines modernen Betriebssystems ad absurdum, wenn man die Programme dann grundlos (oder besser, aufgrund schlampigereigenwilliger Programmierung) doch wieder als Administrator ausführen muss.

@s-off:
Was spricht gegen relative Angaben? Du wirst nie sagen können "Ab 42 Variablen soll man das und das nehmen.", weil das eben immer davon abhängt, was man gerade braucht. Und ich halte es für durchaus angebracht, auf die Möglichkeit einer Datenbank hinzuweisen.

s-off 14. Mär 2008 21:15

Re: SPeichern/Laden von txt's
 
Natürlich ist es sinnvoll, auf eine Datenbank als Datenspeicher hinzuweisen - darüber brauchen wir nicht zu diskutieren.

Aber nicht im Rahmen dieses Threads, in dem es laut Ausgangsbeitrag darum geht, die Caption eines Labels in einer Textdatei zu hinterlegen. ;)

3_of_8 14. Mär 2008 21:19

Re: SPeichern/Laden von txt's
 
Natürlich, wenn es sich nur um ein einziges Label handelt, ist eine Textdatei dafür prädestiniert, wobei ein TFileStream sich wohl am besten eignet. Und im Zuge der Portabilität und der Lauffähigkeit bei eingeschränkten Rechten sollte diese Textdatei brav im Homedir abgelegt werden. ;)

RSF 14. Mär 2008 21:39

Re: SPeichern/Laden von txt's
 
Zur Klarstellung
Ich habe nicht behauptet dass generell Programme als Admin ausgeführt werden müssen. Ich habe nur einen Weg dargelegt der es ermöglicht Schreibrechte im eigenen Verzeichnis zu besitzen (geht nicht gibt es nicht).
Aber das eigentliche Thema ist das speichern von Einstellungen (Variablen)!!
Dazu habe ich meine Stellung dargelegt.
Init ist veraltet.

Fussball-Robby 14. Mär 2008 21:41

Re: SPeichern/Laden von txt's
 
Nenne mir mal einen Grund, warum man Inis nicht benutzen sollte..

3_of_8 14. Mär 2008 21:51

Re: SPeichern/Laden von txt's
 
Es gibt keinen. In dem Fall sind sie unnötig, aber allgemein spricht nichts dagegen. Ab einem gewissen Umfang würde ich zu XML raten, aber INIs als veraltet zu bezeichnen, ist meiner Meinung nach einfach falsch.

xZise 14. Mär 2008 22:23

Re: SPeichern/Laden von txt's
 
Zitat:

Zitat von RSF
Zur Klarstellung
Ich habe nicht behauptet dass generell Programme als Admin ausgeführt werden müssen. Ich habe nur einen Weg dargelegt der es ermöglicht Schreibrechte im eigenen Verzeichnis zu besitzen (geht nicht gibt es nicht).[...]

Naja. Also muss ich niemand Gedanken machen wo er hinspeichert. Der Benutzer könnte es ja einfach als Admin ausführen.
Und schon müssten generell alle Programme als Admin ausgeührt werden.
Abgesehen davon, dass es nicht garantiert ist das man Adminrechte hat.

MfG
xZise


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz