Erstes kleines Projekt (Adressbuch)
-
Wieso sollte man die Daten vorladen?
Wenn ich jetzt mal von 10000 Datensätzen ausgehe dann dauert so eine suche nicht länger als 0,X sekunden.
Sollte ich alles Daten vorladen dann dauert der Start schon X Sekunden.
Was das auch noch Speicher benötigt möchte ich jetzt nicht gesondert erwähnen.
Für sowas sind Datenbanken da.
-
@Unix-Tom
Da hast du recht. Somit lassen wir das vorladen wegfallen.
-
@Windoof
Deine Idee mit dem Modularen aufbau gefällt mir. Nur habe ich das problem das ich nicht weiss wie man sowas realisiert. Wie muss man sowas planen??? Wie kann ich eine Schnittstelle schaffen die mir komplett neue Menüeinträge erstellt??? Wie kann ich es realisieren das der User sich die Datenbank dir er nutzen will selbst aussuchen kann???
-
OK, nach einigem Testen wegen dem Modularen Aufbau hab ich mich doch vorerst anderster entschieden und lass das mit dem Modular sein.
Es wird eine SDI Anwendung die CFormViews nutzt. Die Views hab ich soweit alle fertig und man kann zwischen diesen auch hin und her switchen.
Ich hoffe das ich am Wochenende noch dazu komm die kompletten Datenbankfunktionen zu schreiben, dann dürfte dieses Kleine projekt auch schon wieder so ziemlich fertig sein.
-
guenni81 schrieb:
Ich hoffe das ich am Wochenende noch dazu komm die kompletten Datenbankfunktionen zu schreiben, dann dürfte dieses Kleine projekt auch schon wieder so ziemlich fertig sein.
Kleiner Tipp: wenn du noch ein bzw. zwei Interfaces zwischen deine Adressen und SQLite schiebst kannst du prinzipiell soviele verschiedene Im- & Exporter implementieren wie du Lust hast. Dadurch lässt sich evtl auch leichter eine Synchronisation mit anderen Adressdateien/-datenbanken realisieren.
-
Die Interfaces für die DB sind schon angedacht. Es sollen ja mehrere Datenbanken am schluss genutzt werden können...
-
Wer es sich mal anschauen will, hier gehts zum download
http://mitglied.lycos.de/guenni1981/adressbuch/
-
ich hab mir das programm mal angeschaut und hab folgenden fehler gefunden:
die spaltenbeschrifftungen "Vorname" und "Nachname" sind in der CListView-Hauptansicht vertauschtansonsten find ich noch wäre zu verbesserern
ordnen der namen
wahlweises anzeigen der anderen daten in weitern spalten
beim export läuft die fortschrittanzeige bis auf 100% aber man merkt nicht richtig, dass er schon fertig ist (vl wieder auf 0 zurücksetzten)
nach dem suchen muss man einmal nach einem lehren string suchen um wieder die vollständige liste zu bekommenaber gefällt mir eigentlich ganz gut
-
Eigentlich ganz nett, aber
- Deine Titelleiste ist kapput Minimieren & Schließen wäre nicht schlecht
- Die Fenstergröße verändern zu können wär auch ganz nett
- Kontakt hinzufügen, Export/Import und so hätte ich wohl eher als Dialog oder separates Widget realisiert
- Beim Kontakt bearbeiten fragst du noch mal nach wenn ich auf "Änderungen Speichern" klicke ob ich das wirklich will (nervig; vielleicht optional verschiedene Warning Levels), wenn ich nochmal auf den ToolButton drücke nicht (auch nervig; vielleicht mal nachfragen ob ich meine ganze Arbeit wirklich verwerfen will;))
- Die Dateitypen beim Export (Radio/SaveDialog) sollten miteinander korrespondieren
- Fehlermeldung beim Export, nur Typ angegeben: "eine unbekannte Datei enthält eine ungültige Pfadangabe."
- Dein CSV-Export ist kaputt Schau dich mal auf www.wotsit.org um, Stichwort Escaping
- Wahlweise Nicht-Excel-CSV wäre auch ganz nett
- Nur ausgewählte Einträge zu exportieren wäre schon hilfreich
- Import funktioniert gar nicht?
- Für den Import: Wahlweise laden oder hinzufügen wäre nützlich
-
tuempl schrieb:
ich hab mir das programm mal angeschaut und hab folgenden fehler gefunden:
die spaltenbeschrifftungen "Vorname" und "Nachname" sind in der CListView-Hauptansicht vertauschtansonsten find ich noch wäre zu verbesserern
ordnen der namen
wahlweises anzeigen der anderen daten in weitern spalten
beim export läuft die fortschrittanzeige bis auf 100% aber man merkt nicht richtig, dass er schon fertig ist (vl wieder auf 0 zurücksetzten)
nach dem suchen muss man einmal nach einem lehren string suchen um wieder die vollständige liste zu bekommenaber gefällt mir eigentlich ganz gut
Zu 1) Hab ich komplett übersehen und ist anscheinend auch niemandem aufgefallen, Fehler behoben
Zu 2) Die Select Klausel beinhalted ein Order by um die Namen zu sortieren. Der Fehler liegt einfach
darin, dass SQLite3 die Groß- und Kleinschreibung beachtet und deswegen nicht korrekt sortiert. Fehler wurde behoben
Zu 3) Fand ich überflüssig, da man dies unter details komplett sieht, könnte man aber nachträglich noch
einbauen
Zu 4) Es wird jetzt eine Messagebox ausgegeben die mitteilt das die Daten korrekt exportiert/importiert
wurdenNeue Versionen stehen online...
-
finix schrieb:
Eigentlich ganz nett, aber
- Deine Titelleiste ist kapput Minimieren & Schließen wäre nicht schlecht
- Die Fenstergröße verändern zu können wär auch ganz nett
- Kontakt hinzufügen, Export/Import und so hätte ich wohl eher als Dialog oder separates Widget realisiert
- Beim Kontakt bearbeiten fragst du noch mal nach wenn ich auf "Änderungen Speichern" klicke ob ich das wirklich will (nervig; vielleicht optional verschiedene Warning Levels), wenn ich nochmal auf den ToolButton drücke nicht (auch nervig; vielleicht mal nachfragen ob ich meine ganze Arbeit wirklich verwerfen will;))
- Die Dateitypen beim Export (Radio/SaveDialog) sollten miteinander korrespondieren
- Fehlermeldung beim Export, nur Typ angegeben: "eine unbekannte Datei enthält eine ungültige Pfadangabe."
- Dein CSV-Export ist kaputt Schau dich mal auf www.wotsit.org um, Stichwort Escaping
- Wahlweise Nicht-Excel-CSV wäre auch ganz nett
- Nur ausgewählte Einträge zu exportieren wäre schon hilfreich
- Import funktioniert gar nicht?
- Für den Import: Wahlweise laden oder hinzufügen wäre nützlich
Zu 1) Dies ist Absicht, dass man nicht Maximieren und Minimieren kann, den Schließen Button habe ich soeben hinzugefügt.
Zu 2) Dies ist ebenfalls Absicht, da sich ansonsten die komplette Formview verziehen würde und das nicht so schön aussieht.
Zu 3) Hätte man machen können, hab mich aber entschieden dies so zu realisieren.
Zu 4) Finde ich ok so, da dies bei anderen Programme auch so gehandhabt wird (Beispiel MSWord). Das mit den Error Levels wäre ne idee.
Zu 5) Es wird jetzt immer die passende Dateiendung angehängt
Zu 6) Es wird jetzt überprüft ob ein Dateiname angegeben wurde...
Zu 7) Hoffe das der Export nun korrekt ist.
Zu Hierzu könnte man das Programm erweitern
Zu 9) Hier könnte man ebenfalls das programm erweitern
Zu 10) Der Import funktioniert bei mir ohne Probleme.
Zu 11) Beim Import wird automatisch verglichen ob der Name schon in der DB vorhanden ist, und wenn nicht, wird dieser Datensatz hinzugefügt, ansonsten übersprungen.
-
guenni81 schrieb:
Zu 2) Dies ist ebenfalls Absicht, da sich ansonsten die komplette Formview verziehen würde und das nicht so schön aussieht.
Gibt's für die MFC keine Layoutmanager?
guenni81 schrieb:
Zu 4) Finde ich ok so, da dies bei anderen Programme auch so gehandhabt wird (Beispiel MSWord). Das mit den Error Levels wäre ne idee.
Ja, ging mir bei anderen Programmen auch auf die nerven
-- Aber man kommt immer noch zurück zur Liste ohne dass man gefragt wird ob man seine Änderungen verwerfen will falls vorhanden... ist das Absicht?
-- Wenn man bei PLZ oder ICQ gar nichts eingibt kommt nur eine Nachricht "Geben Sie bitte eine ganze Zahl ein", dann trotzdem die Nachfrage ob ich mir sicher bin und meine Änderungen sind auf jeden Fall weg.
-- PLZ & ICQ sind ints oder was? Würde ich nicht unbedingt machen. Zum einen schreibt man hin und wieder "D-12345", ans Ausland gar nicht zu denken, zum anderen ist 0 kein wirklich toller Defaultwert. Mach dir zur not ne Konstante und lass zumindest leere Felder zu.guenni81 schrieb:
Zu 6) Es wird jetzt überprüft ob ein Dateiname angegeben wurde...
... und ohne wenn und aber in diese Datei exportiert. Wie sieht's mit Sind-Sie-sich-wirklich-100%-sicher-das-Sie-diese-Datei-überschreiben-wollen aus?
guenni81 schrieb:
Zu 7) Hoffe das der Export nun korrekt ist.
Ich hab mal zwei Kontakte eingegeben.
Adressbuch CSV-export schrieb:
vorname1;nachname1;;0;;;;;;0;foo;bar
vorname2;nachname2;;0;;;;;;0;classic:\r\nhello "world"Korrektes Excel-Style CSV schrieb:
vorname1;nachname1;;0;;;;;;0;"foo;bar"
vorname2;nachname2;;0;;;;;;0;"classic:
hello \"world\""guenni81 schrieb:
Zu 10) Der Import funktioniert bei mir ohne Probleme.
Zu 11) Beim Import wird automatisch verglichen ob der Name schon in der DB vorhanden ist, und wenn nicht, wird dieser Datensatz hinzugefügt, ansonsten übersprungen.Ah, sorry, dachte Import wäre schlicht laden. (Feature-Request: (Ein-/Ausschaltbares) Nachfragen welcher Datensatz genommen werden soll.)
Das Semikolon in obigem Beispiel macht dir trotzdem Probleme.