Laden...

Ohne dass der Benutzer/das GUI was davon merkt, Informationen in einer Datei speichern

Erstellt von khobi vor 15 Jahren Letzter Beitrag vor 15 Jahren 982 Views
K
khobi Themenstarter:in
14 Beiträge seit 2009
vor 15 Jahren
Ohne dass der Benutzer/das GUI was davon merkt, Informationen in einer Datei speichern

Moin,

wie der Titel schon aussagt, möchte ich gerne Informationen in einer Datei speichen. Dieses soll unsichtbar passieren, sodass das der User der davor sitzt es nicht sieht.

Über welche Methode kann ich das realisieren?

MfG
khobi

239 Beiträge seit 2008
vor 15 Jahren

Hallo khobi,

was soll unsichtbar passieren? Das Abspeichern der Datei? Die Datei selbst soll unsichtbar sein (in diesem Falle müsstest du beim Speichern halt FileAttributes.Hidden setzen)?

Gruß Michbeck1983

Neulich im Computerkurs:
Mein Computer kennt Else nicht! 😁


[URL]XING-Profil[/URL]

T
708 Beiträge seit 2008
vor 15 Jahren

Guten Tag,

also ich würde das so verstehen, das du die Informationen speichern möchtest ohne das der User davon etwas mitbekommt. Unabhängig der Sichtbarkeit der Datei.

Dazu müsste man wissen was für Informationen du speichern möchtest.
Sind das z.B. 2 Pfade könnte man das einfach in den Settings der Datei ablegen.
Sind es X Pfade könnte man eine einfache Text Datei nehmen.
Sollte es sich aber um mehrere Pfade zu mehreren Dateien handeln, empfiehlt sich XML.

Speichern würde ich das in dem Ordner "Anwendungsdaten" des jeweiligen Benutzers.
Stichwort: SpecialDirectorys.

Gruß,
TriB

239 Beiträge seit 2008
vor 15 Jahren

Hallo,

naja aber bei Windows ploppt ja auch kein Dialog auf "Dieses Programm speichert gerade die Datei xyz.txt" oder? 😁 Insofern ist das Abspeichern von Daten selbst erstmal nichts, was der Benutzer mitkriegt.

Es sei denn, die abzuspeichernden Daten sind so groß, dass es spürbare Verzögerungen gibt. Dann muss man halt die Speichern-Methode in einen extra Thread auslagern.

Ansonsten hat trib schon sehr gute Empfehlungen gegeben.

Gruß Michbeck1983

Neulich im Computerkurs:
Mein Computer kennt Else nicht! 😁


[URL]XING-Profil[/URL]

K
khobi Themenstarter:in
14 Beiträge seit 2009
vor 15 Jahren

So schnell soviel Antworten, das Klasse!!!

Also ich möchte, Eingaben aus Eingabefeldern abspeichern können, wenn es geht in eine Datei. Diese Interaktion wird von dem User ausgeführt. Heißt er klickt auf einen Button und speichert es dann in einer Datei. Doch soll dabei kein Dialogfenster oder etwas dergleichen auftauchen. Höchstens nen Label das es geklappt hat.

Speichern möchte ich die Datei dann da, wo auch das Programm liegt. Den Pfad wo das Modul gerade ausgeführt wird, habe ich bereits.

Es geht hier jetzt nicht um die Sichtbarkeit der Datei oder darum das man sie öffnen kann mit einem anderen Programm. Lediglich um die Eingaben speichern zu können.

Hoffe es ist so aufsclhussreicher, was ich mir vorstelle.

239 Beiträge seit 2008
vor 15 Jahren

Hallo khobi,

es gibt ja keine .Net-Funktion, die automatisch Dateien speichert und dabei Dialogfenster aufruft.

Heißt: du rufst in deinem Button eine Funktion auf, die das Speichern der Datei übernimmt. Das war's im Wesentlichen schon, Dialogfelder müsstest du ja selbst anzeigen lassen.

Gruß Michbeck1983

Neulich im Computerkurs:
Mein Computer kennt Else nicht! 😁


[URL]XING-Profil[/URL]

K
khobi Themenstarter:in
14 Beiträge seit 2009
vor 15 Jahren

Das mit dem Fenster ist dann optional. Hast du einen Anhaltspunkt für das Speichern?

T
708 Beiträge seit 2008
vor 15 Jahren

Das klingt ja recht simpel.

Da du die Eingaben speichern (und wahrscheinlich nach einem Neustart auch wieder einlesen) möchtest, empfehle ich XML. Dazu gibt es hier im Forum viele Anleitungen.

So kannst du z.B. den Namen des Controls und den Wert sichern.
<Control="Textbox1" value="Das ist mein Text">

Damit kannst du garantieren, das die Werte auch wieder ihre Felder finden. Abgesehen davon hast du keine Probleme, wenn man ein neues Feld hinzu kommt.

Die weitere Funktionalität, wie du sie beschreibst gehört aber imho zu den Grundlagen.
Trotzdem habe ich dir mal ein ganz kurzes Snippet zum Verständnis gebastelt, weil ich das eh gerade in der Hand hatte.

using System.IO;
using System.Xml;

if (File.Exists(path)
 XmlTextReader reader = new XmlTextReader(path);
            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                    case XmlNodeType.Element:
                        if (reader.AttributeCount >= 1)
                        {
                            if (reader.GetAttribute(0) == "Textbox1")
                                Textbox1.Text = reader.GetAttribute(1);
                            if (reader.GetAttribute(0) == "Textbox2")
                                Textbox2.Text = reader.GetAttribute(1);
                            if (reader.GetAttribute(0) == "CheckBox1")
                                CheckBox1 = reader.GetAttribute(1).Contains("True") ? true : false;
                        }                        
                        break;
                    default:
                        break;
                }
            }
            reader.Close();      

Gruß,
TriB

K
khobi Themenstarter:in
14 Beiträge seit 2009
vor 15 Jahren

Vielen Dank, werd mich mal dran setzen!

691 Beiträge seit 2007
vor 15 Jahren

Hi,
ich denke für dich ist [Tutorial] Alles über Dateien 2.2 auch hilfreich

mit freundlichen Grüßen,
Tomot

Projekte: www.gesellschaftsspieler-gesucht.de

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo khobi,

damit der User nichts davon merkt, musst du [FAQ] Warum blockiert mein GUI? beachten.

herbivore