Datenbank für Bilder und Videos

  • VB.NET

Es gibt 38 Antworten in diesem Thema. Der letzte Beitrag () ist von cmediapro.

    Datenbank für Bilder und Videos

    Liebe VB-Paradisler,

    ich bin ganz neu hier im Forum und wünsche uns allen erst mal viel Freude beim Coden in der Zukunft! ;)

    Ich habe direkt zu Anfang eine Frage... und zwar geht es darum, das ich ein Programm realisieren möchte, welches mir die Möglichkeit eröffnet, Bilder und Videos in einer VB-Datenbank zu speichern und daraus auch wieder aufzurufen. Eine DB mit Bildern ist ja nicht sonderlich schwer... das hab ich schon. Jetzt verzweifele ich aber an den Videos.

    Kann mir jemand von Euch sagen, wie ich es am besten anstelle, Videos für das Programm zu speichern?

    Es geht darum, dass ich das Programm immer gerne mit mir rumtragen möchte, und an jedem Rechner, der mir zur Verfügung steht, Zugriff auf meine kleine DB mit Bildern und Videos hab, und diese bei Bedarf auf erweitern kann.

    Ich wünsche Euch allen einen guten Start in die neue Woche (und natürlich auch ins neue Jahr 2013)!

    Beste Grüße,

    Chris
    Edit by ErfinderDesRades: unnötiges Vollzitat entfernt

    Wo du recht hast... ;)

    Es sollen insgesamt vielleicht 2-3 Clips dort gespeichert werden. Jeder dieser Clip hat eine maximale Länge von 3 Minuten. Tendenz eher zu einer Minute oder sogar noch weniger. Also keine Filme, sondern nur kleine Clips.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Für 2 Clips und mw. 10 Bilder brauchst du kein Programm.
    Pack, was du haben willst in einen Ordner, und kopiers dir auf den Usb-Stick.

    Noch über hundert Item kann man bequem im Window-Explorer verwalten - muss man sich halt sinnvolle Ordner für verschiedene Kategorien ausdenken.
    Edit by ErfinderDesRades: unnötiges Vollzitat entfernt

    Auch da hast Du Recht! :)

    Aber die Inhalte sollen dann bei Bedarf in einer Diashow wiedergegeben werden, nach eigens Festgelegter Reihenfolge: Bilder und Videos gemischt. Das wird durch das Programm realisiert.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Gut. Eine Art Präsentations-Composer - und ich nehme an, PowerPoint ist aus ieinem Grund ungeeignet.
    Dafür reicht DB-Programmierung ohne Datenbank voll aus, um nicht zu sagen: Das ist das Spezialgebiet davon.
    Da gibts wieder mehrere Möglichkeiten, am naheliegendsten fände ich, pro Präsentation eine Datei anzulegen - so wie Powerpoint. Allerdings wäre es bei dir besser ein Ordner, wo im abgespeicherten Dataset die Logik der Vorführung festgelegt ist, und die anneren Dateien sind die Resourcen, die zur Präsentation jeweils geladen werden.
    zuallererst musst du ein vernünftiges DAtenmodell dir ausdenken.
    Content könnten einfach die DAteinamen sein, die im Resourcen-Ordner liegen.
    Dann eine weitere Tabelle, vlt. genannt "Scene", und jeder Scene-Datensatz verweist auf einen Content, und fügt die Information hinzu, wie lange der anzuzeigen ist.

    Das ist in Rohfassung sehr einfach, aber erweiterungsfähig, wenn verschiedene Arten der Anzeige vorgesehen werden, etwa Überblendungen.

    Jdfs kannst du deine Contents mittels der Scene-Tabelle in eine Reihenfolge bringen, und derselbe Content kann sogar mehrmals vorkommen - wiedes halt brauchst.

    Dann gibts noch Start/Pause/Stop - Buttons, und dann ist zu proggen, wie die Scenes der Scene-Tabelle nacheinander präsentiert werden.
    ABer letzteres hat nixmehr mit Datenmodellierung zu tun, sondern ist ein einfacher Algorithmus, der die Scenes durchgeht, und ausführt, was da pro Scene festgelegt ist.

    Edit: es geht sogar noch einfacher: Nur eine Tabelle "Scene", und nur 2 Spalten "File" und "Duration".
    Dann hat jeder Scene-Datensatz eine Datei und eine AbspielDauer, und du kannst das laden und speichern, und "nur" für die Bearbeitung musst du dir was ausdenken.
    Keinesfalls müssen Dateinamen handschriftlich eingegeben werden, sondern wenn man auf ein File Klickst muß sich ein FileLoad-Dialog öffnen.
    Dazu die Buttons Rauf und Runter, um die Reihenfolge der Scenen verändern zu können.

    Soweit sollte der erste Arbeitsabschnitt sein - das dann abzuspulen ist dann glaub auch leicht.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Ja richtig, so in etwa habe ich mir das auch gedacht.
    Klar, der Algorithmus ist hier nicht das Thema. Genauso wenig wie der FullScreen Modus, den ich dann evt. noch haben möchte.

    Ich stehe gerade nur etwas auf dem Schlauch wenn ich mir Dein Projekt anschaue: (AddOnDB)
    So ganz bin ich noch nicht dahintergestiegen, wie der Content von der von dem DataGridView in die XML und wieder zurück beim reload() kommt.

    Verstehe ich das richtig, dass die GridView mit der XML verbunden ist? Ebenso müsste es ja mit Beispielsweise mit der RichTextBox für den Link sein?
    GridView? Da gibts ein Datagridview, kurz grid oder besser dgv.

    Es ist nicht mit der xml verbunden, sondern mit dem typisierten Dataset. Letzteres wird aus der xml-Datei befüllt, aber ich denke, das ist doch klar im Code ersichtlich, oder?

    DB-Programmierung ohne Datenbank ist sogar ein zu reichhaltiges Beispiel, vlt. guckst du besser nur den letzten Post, das letzte update - du brauchst ja nur eine Tabelle.

    Dann zeigt sich auch die Flexiblität des Ansatzes - es ist nämlich vollkommen beliebig, dass das erste Sample auch eine Richtextbox enthält, und ich wüsste nicht, wozu in deim Fall eine Richtextbox sinnvoll wäre - wüsstest du es?
    Guten Morgen,

    Stimmt, beim letzten Beispiel leuchtet mir alles ein! Danke.
    Jetzt muss ich nur sehen, wie ich die Ressourcen mit eingebunden bekomme.

    Zur RichTextBox: Nein, die brauche ich natürlich nicht. War nur ein oben genanntes Beispiel.

    cmediapro schrieb:

    Jetzt muss ich nur sehen, wie ich die Ressourcen mit eingebunden bekomme.

    wie jetzt - hast du schon ein Dataset "PresentationDts" mit einer DataTable "Scene", mit den Spalten FileName, Duration As Integer, ID (PrimaryKey)?
    Daran ein DGV gebunden, und die Load-Save-Logik aus dem Tutorial dahinter?

    kannst du bereits im DGV Datensätze laden, ändern, zufügen, löschen (Basic CRUD - Funktionalität)?

    Erst danach kommt OpenFileDialog zur Resourcen-Auswahl, und danach kommen die Buttons zum Verschieben der Scenen und zum Abfahren der Presentation.
    Im Prinzip schon.
    Ich habe ein Dataset "Presentation" mit der Tabelle "Szenen", die die spalten "ID" (I16), "File" (String) und "Duration" (I16).
    Die lasse ich dan von dem DataGridView auslesen, bzw kann diese dann auch ändern.
    Gespeichert wird über einen Speicher-Button.
    Bilder
    • 1.PNG

      32,73 kB, 415×598, 165 mal angesehen
    super! :thumbsup:

    jetzt kannst du die File-Column des DGVs durch eine ButtonColumn austauschen (SmartTag - Spalten bearbeiten)

    Anschließend das DGV_CellContentClick - Event behandeln, und dort den OpenFileDialog starten.
    Ich sage "den" OpenFileDialog, weil man den am besten einfach aufs Form zieht, sodass man ihn immer wieder verwenden kann.

    In den Tuts ist ja auch vorgeführt, wie man die angewählte typisierte DataRow aus der BindingSource holt, und dann hast du die SceneRow, bei der du dann ofg.Filename eintragen kannst.
    Also eine Funktion schreiben, die den OpenFileDialog startet und die Datei dann am besten den Ressourcen Ordner kopiert, und diese Funktion dann mit den jeweiligen Buttons aufruft, korrekt?

    Ich will gerade aber erst noch einen Button hinzufügen, der es ermöglicht, die aktive Zeile zu löschen... In Deinem Beispiel ist eine solche Funktion (soweitich sie nicht übersehen habe) nicht implementiert. Hast Du einen Tipp wie man das am elegantesten lösen kann?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „cmediapro“ ()

    Ich hatte das jetzt so gedacht, dass via des OpenFileDialoges den Pfad der zu verwendenden Datei herausfinde. Dieser Dateipfad bewirkt dann eine "umspeicherung" der Datei die ich gerade ausgewählt habe von der lokalen Festplatte auf den Stick (In den Ressourcen Ordner).
    Danach kann ich ja den Filename isolieren und als URL zum Ressourcen-Ordner nutzen.

    So gibt es mir die Möglichkeit, Daten nicht direkt auf den Stick laden zu müssen, sondern auch direkt im Programm welche auszuwählen (Von der Festplatte).
    ich würd vorschlagen: eins nach dem anneren :D

    erstmal nur den Dateinamen in die Scene-Tabelle aufnehmen.

    Wenn das mal geht, kannste immer nochn Knopf hinmachen, der eine Export-Funktion startet, die die ganzen Dateien, inklusive die Xml des Datasets selbst, in einen Ordner zusammen-kopiert, oder mw. auch gleich auf den UsbStick.