PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : wie etwas richtig speichern?


beta3
2004-01-14, 13:57:02
hi

ich schreib grad ein programm, wo theoretisch unendlich einstellungen machn kann (in der praxis werden es sicha nie über 50 werden)

man sollte jeweils imma 2 dinge speichern, sagen wir mal a und b
und diese so oft wie möglich (theoretisch)

ich will jetzt a in einer listbox anzeigen lassen und dann soll auf der rechten seite des forms (listbox ist links) nochmal a und darunter b zum editieren/hinzufügen sein, was man dann speichern/hinzufügen und löschen kann (eintrag in der listbox, speichern/hinzufügen und löschen sind buttons)

wie kann ich jetzt diese daten in einer datei speichern, so dass beliebig viele möglich sind, aber alles soll auch angezeigt werden(zuerst in der listbox anhand a auswählen, danach sieht man a und b rechts)

ich schreibe in c#


danke für eure hilfe

Xmas
2004-01-14, 14:06:29
Ist a jetzt eine Menge von Daten oder ein einzelnes Datum? Wenn du a in einer Listbox anzeigen willst, müssen es ja mehrere Einträge sein.

So wie ich das verstehe, willst du einem Eintrag vom Typ a beliebig viele Daten vom Typ b zuordnen. Ist das korrekt?

beta3
2004-01-14, 14:17:07
nein, der text war auch ein wenig kompliziert geschrieben


ich brauch sehr viele a und b, also a[1] und b[1], a[2] und b[2], a[3] und b[3]... (werde string[] nehmen)


alles soll man auf der rechten seite vom winform modifizieren können, also den inhalt vom string ändern
also werden rechts a und b in eigenen textboxes angezeigt (txbxA und txbxB)
alles was man da ändert soll man speichern können und auch einträge von der listbox (bin auch offen für andere arten) löschen und hinzufügen können

um das gewünschte rechts anzeigen zu können (a und b), muss man ja eines von den vielen auswählen, da es ja mehrere gibt
um zu unterscheiden will ich a in der listbox anzeigen lassen, b kann auch, muss aber nicht


ich hoffe jetzt kennst du dich aus

x-dragon
2004-01-14, 14:32:38
Kannst du das nicht evtl. etwas genauer ausführen was das für einen Sinn hat? So ist das wiklich etwas schwer verständlich.

Naja grundsätzlich gibts ja erstmal 2 Möglichkeiten, die Daten in einer "normalen" Datei speichern oder in einer DB. Wenn du grundsätzlich alle Daten beim Start laden mußt (wenn ich das jetzt richtig verstanden habe), dann würde ich der einfachheithalber eine normale Datei nehmen, also die Daten per Stream oder normal als Text speichern.

[edit]
wenn es wirklich nur max. 50 Werte sind, dürfte eine normale Datei wirklich die beste Lösung sein, sofern es kein netzwerkfähiges Programm werden soll :)

ethrandil
2004-01-14, 15:04:16
Jo, nimm doch ne normale Datei.
Das sollen ja textattribute sein, und du weißt wohl wie man das speichern könnte, nicht?
also:

a[0]\'superechozeichen'b[0]\'superechozeichen2'
a[1]\'superechozeichen'b[1]\'superechozeichen2'
a[2]\'superechozeichen'b[2]\'superechozeichen2'
a[3]\'superechozeichen'b[3]\'superechozeichen2'
...

oder wenn du zu wenig zu tun/ spass dran hast nimm xml ;)

<attribute>
<key>a[0]</key>
<value>b[0]</value>
</attribute>
<attribute>
<key>a[1]</key>
<value>b[1]</value>
</attribute>
...


Hab ich jetzt irgendwo ein Problem übersehen?

Wenn du noch viel weniger zu tun hast kannst du das xml dann auch noch zippen...

grakaman
2004-01-14, 15:23:06
Original geschrieben von beta3
nein, der text war auch ein wenig kompliziert geschrieben


ich brauch sehr viele a und b, also a[1] und b[1], a[2] und b[2], a[3] und b[3]... (werde string[] nehmen)


alles soll man auf der rechten seite vom winform modifizieren können, also den inhalt vom string ändern
also werden rechts a und b in eigenen textboxes angezeigt (txbxA und txbxB)
alles was man da ändert soll man speichern können und auch einträge von der listbox (bin auch offen für andere arten) löschen und hinzufügen können

um das gewünschte rechts anzeigen zu können (a und b), muss man ja eines von den vielen auswählen, da es ja mehrere gibt
um zu unterscheiden will ich a in der listbox anzeigen lassen, b kann auch, muss aber nicht


ich hoffe jetzt kennst du dich aus

Ich würde die Daten in einer Datenbank/XML File speichern. Da du mit .NET programmierst, würde ich dann die Daten in ein DataSet laden. Und dann kannst du ja alle Daten erst einmal im Speicher ändern und später dann zurückschreiben. Bsp.:


... // Connection aufbauen

DataSet mySet = new DataSet();
adapter.Fill(mySet); / alternativ mySet.ReadXml("Datei.xml");

DataRow row = mySet.Tables[0].Select("id = " + wert);
row["Spalte1"] = wert;

...


MfG

beta3
2004-01-17, 18:00:49
hi

hab mich jetzt für dataset entschieden, habe aber ein problem

lasse zurzeit alles in einem datagrid anzeigen

wie kann ich ein bestimmtes feld (reihe x, spalyte y) umändern, meine den text
z.b. von hallo zu hola