[C]Allgm. Problem- Programmspeicherung/Nutzung

Bexx

Verrückte Erfinderin bei Daniel Düsentrieb
Hallo wieder mal,

ich habe mein C Buch jetzt fast fertiggelsen und stehe, wie so oft, voll auf dem Schlauch:rolleyes:

Dateien öffnen/schließen- alles klar, das hab ich schon verstanden.
Aber : nachdem ich mich jetzt schon fast drei Monate intensiv mit C beschäftige und 163(Phantasiezahl) kleine bis mittlere Programme geschrieben habe, kommt natürlich auch irgendwie die brennende Frage :

Unter welchem Begriff muss ich suchen, damit ich endlich herausfinde, wie ich erreiche, dass mein Programm beim nächsten Aufruf die Werte der Variablen noch gespeichert hat?

Tut mir leid für die leicht blöde Frage, aber ich möchte endlich wissen wo ich suchen muss um das zu lernen , weil ich mich sonst auf nix mehr konzentrieren kann.

Schöne Grüße von der Saar....

Edit:

Brauche nur den Überbegriff zu wissen...
 
Zuletzt bearbeitet:
Moin,

mal dumm gefragt:
was meinst Du denn mit "nächsten Aufruf" und "noch gespeichert" ? ? ? :confused:

Wenn Du Dein Programm beendest, dann ist logischerweise alles im Speicher hinfällig und Du kannst nach dem nächsten Programmstart NICHT darauf zugreifen ! ! !
Du musst dann Deine Variablen erneut aus Deiner Datenquelle füllen! lediglich definierte Konstanten werden dann an der entsprechenden Stelle in Deinem Programm so belegt wie Du es programmiert hast!

Gruß
Klaus
 
Moin,
Du kannst nach dem nächsten Programmstart NICHT darauf zugreifen ! ! !
Du musst dann Deine Variablen erneut aus Deiner Datenquelle füllen!

Ok, das heisst also, ich muss jedes Mal die ganzen Daten in eine Datei speichern und von dort wieder einlesen wenn ich die im letzten Programmstart gespeicherten Daten wieder benutzen möchte ?

Wenn ja, wie kriege ich die Werte genau wieder in die selben Variablen rein, in denen sie vorher waren
 
Ok, das heisst also, ich muss jedes Mal die ganzen Daten in eine Datei speichern und von dort wieder einlesen wenn ich die im letzten Programmstart gespeicherten Daten wieder benutzen möchte ?

Wenn ja, wie kriege ich die Werte genau wieder in die selben Variablen rein, in denen sie vorher waren

Hallo,

ja, eine Datei würde gehen, ist aber eher ungewöhnlich ;-]

Normalerweise nutzt man zur Datenhaltung eine ... Datenbank !!
Und dort musst Du (genauso wie in einer (Text-)Datei) Deine Daten entsprechend einem Datenmodell strukturieren, damit Du sie aus dieser Quelle wieder auslesen und Deinen Variablen zuordnen kannst!

Wie das genau auszusehen hat, hängt halt von Deinen Daten ab. Zu beachten sind dabei ggf. Datentypen usw.
In eine Textdatei kannst Du natürlich alles als Zeichenkette ablegen, musst dann aber u. U. wieder zu Integer oder was auch immer konvertieren (auch VOR dem Speichern natürlich) !

Zu den Themen "Datenhaltung" und "Datenbank" findest Du reichlich bei :google:

Denk' immer dran, dass Dein Hauptspeicher flüchtig ist, d. h. nach dem Programmende ist die Zuordnung zu den Speicherstellen weg! Das ist bei alles Programmen und Programmiersprachen so!

Gruß
Klaus
 
Perfekt! Danke für die Lösung, das war genau wonach ich gesucht habe....
Mache mich direkt dran.


Vielen Dank an dich!

(PS: Hab eine Bewertung abgegeben :))
 
ja, eine Datei würde gehen, ist aber eher ungewöhnlich ;-]
Unter Linux finde ich die alles andere ungewöhnlich.
Und auch unter Windows komme ich vermehrt von der Registry ab und arbeite wieder mit lokalen (aber dafür eben portablen!) Konfigurationsdateien.

Als Suchbegriffe hätte ich noch anzubieten:
Konfigurationsdateien
Ini-Dateien
Registry

Evtl. Wird da noch eine Alternative zur Konfigurationsspeicherung in einer Datenbank gefunden. ;)

Normalerweise nutzt man zur Datenhaltung eine ... Datenbank !!
Zur Datenhaltung schon, bei Konfigurationen kommt es wohl eher auf den Einzelfall drauf an, oftmals genügt eine Dateilösung und ist weitaus weniger aufwändig zu implementieren als eine Datenbanklösung.

(Ich würde beispielsweise einem kleinen Desktopkalender ganz schön was husten, wenn der für seine Konfigurationsdaten erst noch eine dicke Datenbank installieren wollte...)
 
Moin CSANecromancer,

ok, wenn Du CONFIGs oder INIs meinst, hast Du sicher Recht - daran hatte ich jetzt gar nicht gedacht, aber diese Info fehlte halt!

Es klang für mich mehr nach Nutztier ... ääh ... Nutzdatenhaltung ;-]

Gruß
Klaus
 
ja, so in etwa war das auch gemeint, ich habe ein riesigen Code für ein Programm angelegt, der sehr viel Daten aufnehmen kann und soll und das ganze natürlich auch in entsprechend vielen Sätzen....

Jetzt hab ich einen Monat daran rumgebastelt, alle Bugs rausgeholt und das Programm ist jetzt stabil...

Wunderbar, dachte ich, aber das ganze ist relativ nutzlos, wenn die eingegeben Daten den nächsten Programmstart nicht mehr erleben....

Irgendeinen speziellen Rat für diese Problematik
 
Naja, ich habe halt gleich an Configs gedacht, weil die Beschreibung "wie kann ich mein Programm wieder dazu bringen beim Neustart die gleichen Werte zu haben" für mich entweder
a) nach Konfiguration
oder
b) nach Spielstand laden
klang. :)

@Bexx:
Ok, in diesem Falle trifft genau das von vfl_freak Genannte zu: Datenbank.

Ich würde an deiner Stelle nach Datenbank, SQL und Tutorial bzw. Einführung suchen.
An Datenbanksystemen bin ich bisher sehr zufrieden mit Oracle XE.
Wenn es auch etwas kleiner sein darf und sich der Umfang deiner Daten noch in einem überschaubaren Rahmen hält ("sehr viel" ist halt ein etwas ungenauer Begriff), könnten u.U. auch XML-Dateien ein für dich praktikabler Weg sein. (Suchbegriff natürlich: XML).

Und in Punkto Datenbank kann ich dir noch ein paar Suchbegriffe für Datenbanksysteme nennen:
Oracle (XE)
Microsoft Access (lizenzpflichtig, hat aber eine sehr gute graphische Oberfläche)
MySQL (für den privaten Gebrauch lizenzfrei und mit phpMyAdmin auch eine sehr gute webbasierte Oberfläche)
evtl. PostgreSQL

Aber gleich vorweg: Datenbankprogrammierung (also ordentliche) ist weitaus mehr als nur Daten in eine Datenbank schreiben und wieder daraus rauslesen. Mach dich darauf gefasst, daß du da noch sehr viel lernen und basteln musst. ;)
 
Zuletzt bearbeitet:
Zurück