www.matheraum.de
Das Matheforum.
Das Matheforum des MatheRaum.

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

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
Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenPascalDelphi 4 Dateiinterne Dateien?
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Geschichte • Erdkunde • Sozialwissenschaften • Politik/Wirtschaft
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.matheforum.net
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]