Bild und Text in eine einzige Datei speichern

    • VB6

    Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von bigbasti.

      Bild und Text in eine einzige Datei speichern

      Hallo zusammen !
      Hier möchte ich ein Beispiel zeigen wie man Bild und Text in eine einzige Datei speichert:

      Visual Basic-Quellcode

      1. ' Bild und Text in einer einzigen Datei speichern
      2. Option Explicit
      3. Private Binaerdatei As String
      4. Private TempDatei As String
      5. Private Sub Command1_Click()
      6. ' Speichern
      7. Dim BildGroesse As Long
      8. Dim FF As Long
      9. FF = FreeFile
      10. ' Bild speichern
      11. If Picture1.Picture <> 0 Then
      12. SavePicture Picture1.Picture, Binaerdatei
      13. Else
      14. MsgBox "Kein Bild geladen, Datei wird nicht gespeichert"
      15. Exit Sub
      16. End If
      17. ' Datei erneut öffnen
      18. Open Binaerdatei For Binary As #FF
      19. ' Grösse auslesen und Text anhängen
      20. BildGroesse = LOF(FF)
      21. Seek #FF, BildGroesse + 1 'Zeiger setzen !
      22. Put #FF, , Text1.Text ' Text anhängen
      23. ' Länge der BildDatei schreiben
      24. Seek #FF, LOF(FF)
      25. Put #FF, LOF(FF) + 1, BildGroesse
      26. Close #FF
      27. End Sub
      28. Private Sub Command2_Click()
      29. ' Löschen (Form)
      30. Set Picture1.Picture = Nothing
      31. Text1.Text = ""
      32. End Sub
      33. Private Sub Command3_Click()
      34. ' Öffnen
      35. Dim FF As Long
      36. Dim tempFF As Long
      37. Dim BildGroesse As Long
      38. Dim BildDaten() As Byte
      39. FF = FreeFile
      40. Open Binaerdatei For Binary As #FF
      41. ' Dateigrösse des Bildes auslesen
      42. Seek #FF, LOF(FF) - 3
      43. Get #FF, , BildGroesse
      44. ' Array reservieren
      45. ReDim BildDaten(0 To BildGroesse - 1) As Byte
      46. ' Bilddaten binär einlesen
      47. Seek #FF, 1
      48. Get #FF, , BildDaten()
      49. ' Bilddaten temporär speichern
      50. tempFF = FreeFile
      51. Open TempDatei For Binary As #tempFF
      52. Put #tempFF, , BildDaten()
      53. Close #tempFF
      54. ' Position von Text
      55. Seek #FF, BildGroesse + 1
      56. Text1.Text = Input(LOF(FF) - BildGroesse - 4, FF)
      57. Close #FF
      58. ' Bild laden und temporäre Datei löschen
      59. Picture1 = LoadPicture(TempDatei)
      60. Kill TempDatei
      61. End Sub
      62. Private Sub Command4_Click()
      63. ' Bild zuweisen
      64. Picture1.Picture = LoadPicture(App.Path & "\basic.bmp")
      65. End Sub
      66. Private Sub Form_Load()
      67. Binaerdatei = App.Path & "\test.dat"
      68. TempDatei = App.Path & "\temp.bmp"
      69. End Sub


      Ihr könnt auch zum Beispiel ein Verschlüsselten Password speichern, also gibs jede Menge Möglichkeiten um den Beispiel anzuwenden.

      Mfg Alex

      Edit by Lupus: Sourcecode -> verschoben
      Edit2 by Agent: Titel geändert

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Agent“ ()

      Hi,

      @Alex2000
      Es ist schön, dass Du Dich am Forum aktiv beteiligst. Sicher ist der Quellcode auch sehr nützlich.
      Du solltest jedoch die Quellen, wo Du den Quellcode her hast, mit angeben, und ihn nicht als "Deinen Code" verkaufen.


      Hier die Quelle: ST-software.at
      Download: komplettes Projekt


      bye ...

      LaMa5.
      Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
      (Autor: Earl Wilson, amerik. Schriftsteller)

      https://www.serviceteam-md.de
      Lama ich verkaufe hier keine Code, sondern ich gebe für euch frei, die suche hättest du dir eingespart.
      Wenn ich was rein schreibe, dann ist das keine Verarschung.(egal von wem die Code)
      Ich hatte angefangen so ein änliche Code zu schreiben, hab etwas vorstellungen gehabt wie das aussehen soll, da bin im Internet rein aus Zufall auf eine Beispiel Code gestosen.
      Ja ich weis es gibs jede Menge von Quells Coden, Steuerelementen zum runter laden, aber ich versuche ab und zu was selber zu schreiben. :) 8-)

      Mfg Alex ;) 8-) 8-)
      Hallo zusammen,

      also in Zeiten von Objektorientierten Sprachen, wie VB.NET es eine ist würde ich für Solche Aktionen die Serialisierung von Objekten empfehlen.
      Es ist VIEL einfacher zu implementieren, zu warten, zu erweitern und wird ebenfalls in einer Datei gesichert.

      Wie erwähnt ist der Code viel weniger und die Fehlerzahl dementsprechend geringer!

      Weiteres: Wie immer im MSDN

      MfG, Basti
      ja, aber hier geht es ja um VB 6...
      und außerdem sind einem die XML serialisierten Dateien manchmal zu groß, natürlich sind dann die durch den Binary Serializer erzeugten Dateien kleiner, doch bei der Auf und -Abwärtskompatibilität gibt es dort probleme, diese kann man über ein selbst programmiertes System sehr einfach ausmerzen(bei einem Serializer würde ich in einer Assembly Serialisieren lassen und für jede neue Datei Version eine neue Assembly mitliefern...)
      Ich wollte auch mal ne total überflüssige Signatur:
      ---Leer---