Erstes kleines Projekt (Adressbuch)



  • Also die Sources hätt ich gerne, könnte dir das dann erweitern, aber ich arbeite nicht mit MFC, sondern nur mit Borland C++ Builder 3, 5 und 6 und dann noch Dev-C++ 4.9.9.0, MFC verabscheue ich, weil's von MS kommt ^^ auch wenn ich Windows benutze, dennoch... naja, wie dem auch sei, was die DB angeht: man kann Exportfunktionen schreiben, für Outlookuser... einfach in eine CSV-Datei schreiben ^^ - darauf kann dann jede andere anwendung (theoretisch) zugreifen.



  • Mal ein herzliches Dankeschön an alle. Da so viel verschiedene Datenbanken vorgeschlagen wurden wäre es vielleicht ne idee ein Interface zu realisieren mit der man die DLL Datei austauschen könnte und somit auf verschiedene Datenbanken zugreifen könnte.



  • 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 vertauscht

    ansonsten 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 bekommen

    aber 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 vertauscht

    ansonsten 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 bekommen

    aber 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
    wurden

    Neue 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.


Anmelden zum Antworten