www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Dt. Schulen im Ausland: Mathe-Seiten:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Pascal" - Delphi 4 Dateiinterne Dateien?
Delphi 4 Dateiinterne Dateien? < Pascal < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Pascal"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Delphi 4 Dateiinterne Dateien?: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:31 Di 28.09.2004
Autor: Dummerchen

Ich hab ein Problem bei Delphi 4 (Delphi 3 geht auch, ist ja fast dasselbe):

In meinem Programm hab ich ein TStringGrid verwendet, in das man als
Benutzer Daten eintragen kann. Diese Daten will ich speichern und beim
nächsten mal auch wieder ins Programm laden können.
Jetzt weiß ich zwar, dass man das ganze z.B. in eine Textdatei (oder
ein anderer Dateityp) schreiben könnte, die dann eingelesen wird. Aber
mir wäre es lieber, wenn man keine zusätzliche Datei braucht, in der
die Daten stehen, denn sonst könnte man durch Veränderung dieser Datei auch den Tabelleninhalt verändern. Ich will also, dass die Daten in der Tabelle irgendwie so im Programm drin stecken, dass niemand da ran kommt (es sei denn, er benutzt das Programm).

Jetzt hat mir ein Klassenkamerad erzählt, dass es wohl möglich wäre,
Dateien in das Programm "einzuschleusen", also dass es zwar richtige
Dateien sind, diese aber nicht als extra Dateien abgelegt werden, die
man dann im Windows-Explorer sehen könnte, sondern im Programm stecken. (Wie das geht, wusste er aber nicht.)

Stimmt das? Wenn ja, wie kann ich solche Dateien erzeugen und in mein
Programm eischleusen?
Gibt es noch andere Möglichkeiten, den Tabelleninhalt ausschließlich IM Programm festzuhalten?

//Schlagt mir aber bitte nicht vor, einen eigenen Dateityp zu erstellen,
denn dann würde wieder eine Datei erzeugt werden, die man manuell
verändern kann (auch wenn sie nicht txt heißt), denn der Editor in
Windows öffnet ja auch unbekannte Dateien.

        
Bezug
Delphi 4 Dateiinterne Dateien?: Antwort
Status: (Antwort) fertig Status 
Datum: 16:20 Di 28.09.2004
Autor: Lizard

Also, ich glaube du machst dir deswegen etwas zu viel Gedanken. Nüchtern betrachtet lässt sich jede Datei auf dem Computer verändern, ob sie nun MeinProgramm.exe heißt oder DatenTabelle.txt. Wenn du also Wert darauf legst, deine Daten absolut unveränderlich zu halten, musst du sie schon in Stein meisseln (oder auf CD-ROM ausliefern oder dergleichen).
Banaler Unterschied bei den beiden obigen Dateien wäre jetzt, daß sich die eine standardmäßig selber öffnet, die andere dagegen vom Windows Editor. Wenn du das verhindern willst, reicht es, den Dateitypen zu ändern, meinetwegen auf DatenTabelle.dll oder dergleichen. Ist zwar nicht dafür gedacht, sollte aber keinen größeren Schaden verursachen.
Hübscher ist natürlich eine andere Lösung: Was du eigentlich anstrebst, scheint mir eher eine Konsistenz der Daten zu sein, also daß das Programm auf "magische" Art und Weise merkt, wenn sich die Daten von einer Sitzung zur nächsten verändert haben. Das dürfte wohl auch eher die starke Integration sein, nach der du da fragst, und die es meines Wissens nach in dieser Form überhaupt nicht gibt: eine normale .exe Datei wird während der Ausführung niemals verändert, und ist dafür auch gar nicht vorgesehen (irrelevante Sonderfälle mal ausgenommen).
Eine solche Konsistenz erreicht man normalerweise über Prüfsummen: Dabei wird ein Algorithmus eingesetzt, der sich bestimmte Eigenschaften deiner Daten anschaut und daraus eine kurze Zeichenkette berechnet, die du ebenfalls irgendwo speichern solltest (z.B. in der Registry, da ist sie erstmal überhaupt nicht offensichtlich). Beim nächsten Programmstart liest du dann die Tabelle wieder ein und berechnest erneut die Prüfsumme, worauf du diese mit der gespeicherten vergleichst. Wenn sie nicht übereinstimmen, weißt du schon einmal, daß deine Daten verändert wurden, und kannst entsprechend darauf reagieren. 100% Sicherheit bietet auch das nicht, aber die Chance, daß irgendeine Person 'zufällig' den Prüfsummenalgorithmus errät und sich die Mühe macht, Änderungen der Datei in der Registrierung mitzuprotokollieren, ist glücklicherweise recht gering (und wie gesagt, 100% erreicht man sowieso nie).
Hoffe, der Ansatz hilft zunächst mal weiter... ansonsten schreib ruhig mal, was du eigentlich erreichen möchtest (d.h. was dein Programm tut und warum es so wichtig ist, daß die Daten sich nicht ändern), vielleicht existiert ja noch eine andere Lösung für das Problem.

Bezug
        
Bezug
Delphi 4 Dateiinterne Dateien?: Antwort
Status: (Antwort) fertig Status 
Datum: 23:33 Di 28.09.2004
Autor: error

hi,
ich würde einfach die daten, die eingegeben wurden, vor dem speichern in eine datei, "verschlüsseln". muss ja kein doller kryptographisch anspruchsvoller algorithmus sein, sondern du kannst einfach jedes "a" durch ein "c", jedes "b" durch ein "p", usw. ersetzen. und in deiner programm.exe steht dann die entsprechende aufschlüsselungstabelle um die daten im programm anzeigen zu können.
dann kann ein möglicher datei-leser/-veränderer nämlich nix mehr mit der datei anfangen (außer sie zu zu zerstören). zusätzlich kannst du ja das mit der checksumme von meinem vorredner machen, damit du weisst ob die datei verändert wurde.

natürlich könnte auch ein besonders hartnäckiger spion so einen code knacken, aber 100%ige sicherheit gibt es ja nie.

bis dann, error

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Pascal"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.vorhilfe.de