vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Speichern Datei in Listbox / Button / Combox 
Autor: Tweety2016
Datum: 19.09.18 13:24

Hallo zusammen,

ich habe mit vb.NET im Form programmiert, dass ich eine Datei per drag and drop auf einen Button ziehen und diese Datei mit dem Button öffnen kann.

Was ich jetzt noch brauche, wozu ich nirgends was gefudnen habe ist:

Wie speichere ich diese Datei unter diesem Button, oder es kann anstatt dem Button auch eine Listbox sein, so dass diese Datei wieder hier erscheint, wenn ich die Anwendung schließe und wieder öffne ?

Danke.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: Vaubehnet
Datum: 20.09.18 14:58

Hallo Tweety,

wenn Du ein Formular in vb.net geöffnet hast, teste doch einmal die Option Projekt - (Deine Anwendung) - Eigenschaften und gehe dann auf Einstellungen.
(Stichwort: my.settings)

Hier kannst Du Informationen für die Anwendung hinterlegen, die zur Laufzeit festgelegt und auch wieder abgerufen werden können:

Beispiel:
In den Einstellungen gibt es eine Einstellung:

DateiDatenbank, Typ String

Setzen der Information: (in einem Textfeld steht z.B. ein Pfad):
My.Settings.DateiDatenbank = Me.txtDatenbankdatei.Text
Auslesen der Information (z.B. beim Starten des Forms wird das in das Textfeld geschrieben):
Me.txtDatenbankdatei.Text = My.Settings.DateiDatenbank.ToString
Viele Grüße

V.B. Net

---
Verwendete Programmversionen:
Windows 7 64 bit sowie Windows 10 Prof.
Visual Studio 13 Professional
Microsoft Prof. 2010 (= Version 14)

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: Tweety2016
Datum: 20.09.18 17:26

Hallo Vaubehnet,

vielen Dank für deine Hilfe.
Soweit war ich eigentlich schon.
Ich habe einen Button, auf den ich über Dra & Drop eine Datei reinziehen kann.
Auf dem Button erscheint dann der gesamte Pfad der Datei, und mit einem Click kan ich sie öffnen.

Ich habe aber das Problem, dass diese Datei verschoben oder gelöscht werden könnte und somit nicht mehr zur Verfügung steht.

Deshalb wollte ich wissen, ob ich die Datei an sich irgendwie in eine Box einbetten kann, so dass sie als z.B PDF File drin bleibt und nciht als Link zu dem PDF File. Dann müsste ich sie nirgends sonst gespeichert haben; so wie ich im Access eine Anlage speichern kann.

Falls das nicht möglich ist, kann ich mit der Variante von dir wenigstens mehrere Pfade in eine TextBox reinziehen? Aktuell wird immer nur die letzte gespeichert.

Hier mein Code:

Private Sub TextBox4_DragDrop(sender As Object, e As DragEventArgs) Handles TextBox4.DragDrop

'GET SINGLE FILE PATH FROM DROPPED FILE

'Dim file As String = e.Data.GetData(DataFormats.FileDrop)

Dim file As String = e.Data.GetData(DataFormats.FileDrop)(0)

'GET PATH AND FILEINFO

myFile = New FileInfo(file)

If String.IsNullOrWhiteSpace(myFile.Extension) Then Exit Sub

ShowFileInfo()

My.Settings.DateiDatenbank = Me.TextBox4.Text
My.Settings.Save()
My.Settings.Reload()
End Sub

Private Sub ShowFileInfo()

TextBox2.Text = myFile.FullName
TextBox4.Text = myFile.FullName
lblFilename.Text = "File Name: " & myFile.Name
lblFileType.Text = "File Type: " & myFile.Extension
lblSize.Text = "File Size: " & Math.Round(myFile.Length / 1024) & " KB"
lblCreated.Text = "Created: " & myFile.CreationTime
lblModified.Text = "Modified: " & myFile.LastWriteTime

'pbIcon.Image = Icon.ExtractAssociatedIcon(myFile.FullName).ToBitmap

End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

Me.TextBox4.Text = My.Settings.DateiDatenbank.ToString

End Sub

Viele Grüße !
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: Manfred X
Datum: 20.09.18 18:37

Hallo!

Das hängt davon ab, welche Funktion Deine Datei in der
Anwendung hat.
Ist der Inhalt der Datei unveränderlich, kannst Du sie
als Ressource einbetten.
Willst Du den Dateiinhalt für die Anwendung variabel halten,
solltest Du eine Standarddatei als Sicherheitsbackup einbetten
und die Datei selbst im entsprechenden Windows-Ordner der
Applikation ablegen: z.B. Windows/Users/Username/Appdata/Roaming/Applikation
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: Tweety2016
Datum: 21.09.18 09:26

Hi,

genau das suche ich - wie bette ich die Datei als Ressourse ein ?
Der Inhalt der Datei soll unveränderlich sein.

Grüße
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: Vaubehnet
Datum: 21.09.18 09:31

Hallo Tweety,

... Ressource hinzufügen ...

das hat GPM vor ein paar Tagen auf eine meiner Fragen hin beantwortet:

https://www.vbarchiv.net/forum/id22_i101479t101478_best-practice-infofenster-mit-scrollbarem-textfeld.html

Viele Grüße

V.B. Net

---
Verwendete Programmversionen:
Windows 7 64 bit sowie Windows 10 Prof.
Visual Studio 13 Professional
Microsoft Prof. 2010 (= Version 14)

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: Tweety2016
Datum: 21.09.18 11:10

Mit dem Beispiel kann ich nur den Inhalt einer Textdatei einbetten, aber nicht die Datei selbst.
Ich möchte die Datei später in der Textbox anwählen und öffnen können.
Auch bekomme ich mit dem Beispiel ein Problem, wenn meine Datei, die ich einbetten möchte, ein Bild ist. Da kann ich keine Daten rauskopieren.

Wie bette ich eine ganze Datei ein?

Danke.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: Vaubehnet
Datum: 21.09.18 11:25

Da gehen auch andere Dateien.

Projekt - Eigenschaften - Ressourcen
Da ist oben ein Dropdown-Element "Ressource hinzufügen".
Darüber kannst Du dann alle Dateiarten einbetten, auch wenn das dann folgende Auswahlfenster zunächst nur bmp, jpeg etc. anbietet (auf *.*) umschalten.

Viele Grüße

V. B. Net

---
Verwendete Programmversionen:
Windows 7 64 bit sowie Windows 10 Prof.
Visual Studio 13 Professional
Microsoft Prof. 2010 (= Version 14)

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: Tweety2016
Datum: 21.09.18 13:59

Ich bekomme es leider nicht zusammen.
Hast du ein Bild wie das aussehen muss?
Wie sieht dann zum Schluss mein Code dazu aus?

Grüße
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: Manfred X
Datum: 21.09.18 23:53

Sei "lbo" eine Listbox und "Textfile1" der Name
einer Textfile-Ressource (Einträge durch CRLF getrennt):
lbo.DataSource = 
    New List(Of String)(My.Resources.TextFile1.Split({vbNewLine}, 
                                     StringSplitOptions.RemoveEmptyEntries))


Beitrag wurde zuletzt am 21.09.18 um 23:54:54 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: Vaubehnet
Datum: 24.09.18 11:20

Hallo Tweety,

ich glaube, hier kann man gar keine Bilder hochladen.

- Öffne Visual Studio
- Wähle das betroffene Formular aus, so dass es angezeigt wird.
- Gehe auf Menü "Projekt" - dann letzter Eintrag "(Dein Programmname)-Eigenschaften"
Dann wird ein neues Dialogfenster geöffnet.
Links sind mehrere Punkte aufgelistet, darunter "Ressourcen". Draufklicken.
- Hier wählst Du aus dem oberen Bildschirmrand "Ressource hinzufügen" - das ist ein Dropdown-Fenster, also auf das kleine, nach unten zeigende Dreieck klicken.
- Dann klappt das Fenster auf und Du kannst "Vorhandene Datei hinzufügen" auswählen.

Ab hier sollte es klar sein.

Zum Code hat Manfred bereits geschrieben.

Viele Grüße

V.B. Net

---
Verwendete Programmversionen:
Windows 7 64 bit sowie Windows 10 Prof.
Visual Studio 13 Professional
Microsoft Prof. 2010 (= Version 14)

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: Tweety2016
Datum: 24.09.18 15:32

Hallo zusammen,

erstmal besten Dank an euch alle für die sehr hilfreichen Rückmeldung.
Es hat geklappt einen Text aus einer .txt Datei in eine TextBox einzulesen, genauso wie ein Bild in eine PictureBox - über Settings und Resources.

Ich bin auch in der Lage per Drag & Drop eine Datei in eine TextBox zu ziehen. Dort wird der gesamte Pfad der Datei reingeschrieben und über einen Doppelklick kann ich die Datei öffnen; ist auch alles beim Neuladen wieder da.

Was ich aber immer noch nicht kann ( falls das überhaupt geht ):
Das Problem wegbekommen, dass all die Datei, die ich einbinden möchte, irgendwo gespeichert sein müssen.

Ist es möglich: Ich habe eine Mail und darin im Anhang eine Datei - ob .doc, .ppt oder was auch immer - kann ich diese Datei per Drag & Drop in meine TextBox ziehen und diese in meine .exe einbetten, OHNE dass sie irgendwo gespeichert sein muss und zwar so, dass sie beim Neustrart der exe wieder da ist?

Lieben Dank !
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: Kuno60
Datum: 24.09.18 18:15

Zitat:

Ist es möglich: Ich habe eine Mail und darin im Anhang eine
Datei - ob .doc, .ppt oder was auch immer - kann ich diese
Datei per Drag & Drop in meine TextBox ziehen und diese
in meine .exe einbetten, OHNE dass sie irgendwo gespeichert
sein muss und zwar so, dass sie beim Neustrart der exe wieder
da ist?

Hallo Tweety,
du kannst Dateien nur zur Entwurfszeit in die EXE einbinden.
Du kannst aber jede Datei, die du auf eine Textbox ziehst, in einen anderen Ordner kopieren oder verschieben und den Pfad dann entsprechend ändern.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: Tweety2016
Datum: 25.09.18 10:11

Hallo Kuno,

das klingt interessant.
Wie geht das die reingezogene Datei in einen anderen Ordner zu kopieren?
Ist dann die Datei nach Wiedereröffnen der Form als Datei in der TextBox zu finden?

Grüße
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: Vaubehnet
Datum: 25.09.18 13:39

Hallo Tweety,

wenn Du wie weiter oben von Dir gepostet den Pfad zur Datei kennst, hilft Dir das vermutlich weiter:

'File verschieben
My.Computer.FileSystem.MoveFile(Quelle, Ziel)
 
'File kopieren
My.Computer.FileSystem.CopyFile(Quelle, Ziel)
Mehr zum Verschieben von Dateien:
https://docs.microsoft.com/de-de/dotnet/visual-basic/developing-apps/programming/drives-directories-files/how-to-move-a-file

Gruß

V.B. Net

---
Verwendete Programmversionen:
Windows 7 64 bit sowie Windows 10 Prof.
Visual Studio 13 Professional
Microsoft Prof. 2010 (= Version 14)

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: Tweety2016
Datum: 25.09.18 17:33

Hallo zusammen,

Ziel ist einfach, nur was hat eine Datei, die ich aus einer MAil rausziehe als Quelle?
Kann ich die herauslesen ?

Grüße
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: effeff
Datum: 26.09.18 14:03

Wenn Du Outlook-Mails als MSG-Datei speichern möchtest, kannst Du ähnlich meinem Beispiel vorgehen. Dabei wird per Drag´n´Drop die Mail gespeichert. Dabei wird die Mail dann noch umbenannt, damit auch erkennbar ist, von wem sie kam. Die genannte Funktion "FileNameConvert" habe ich nicht mit aufgeführt; Diese konvertiert den Namen nur nach von mir gewünschten Kriterien, z. B. das Ersetzen von Leerzeichen durch Unterstriche. Gespeichert wird die Datei in diesem Fall im Temp-Verzeichnis. Danach wird die Dateiänderungszeit auf den Zeitstempel des Maileingangs geändert:

 Private Sub dgvFiles_DragDrop(sender As Object, e As _
   System.Windows.Forms.DragEventArgs) Handles dgvFiles.DragDrop
 
        If e.Data.GetDataPresent("FileGroupDescriptor") Then
            Dim ol As New Microsoft.Office.Interop.Outlook.Application
            Dim mi As Microsoft.Office.Interop.Outlook.MailItem
            Dim itm As Object
 
            If ol Is Nothing Then
                MessageBox.Show("Kein ol")
                Exit Sub
            Else
                For Each itm In ol.ActiveExplorer.Selection
                    Try
                        mi = itm
                        Dim SimpleFileName As String = mi.Subject & ".msg"
                        Dim SendFrom As String = mi.Sender.Name
                        Dim ReceivedTime As Date = mi.ReceivedTime
                        SimpleFileName = FileNameConvert(SendFrom) & "__" & _
                          FileNameConvert(SimpleFileName)
                        Dim strFile As String = System.IO.Path.Combine( _
                        Environment.GetEnvironmentVariable("temp"), _
                        SimpleFileName)
                        mi.SaveAs(strFile)
                        System.IO.File.SetLastWriteTime(strFile, ReceivedTime)
                    Catch ex As Exception
 
                    End Try
 
                Next
            End If
            Exit Sub
        End If
 
    End Sub

EALA FREYA FRESENA

Beitrag wurde zuletzt am 26.09.18 um 14:03:52 editiert.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: Vaubehnet
Datum: 26.09.18 19:20

Da Dein Programm vielleicht ja nicht nur aus einer Mail heraus funktionieren soll:
Wie wäre es damit:
Du ziehst Deine Dateien immer in einen feststehenden Ordner, der von Deinem Programm beim Start abgefragt wird. Jede gefundene Datei wird nach Wunsch verschoben.
So kennst Du dann auch beim Programmstart die so bereits verarbeiteten Dateien.
Das erscheint mir vor dem Hintergrund der ganzen hier formulierten Anforderungen eine mögliche Lösung zu sein.
So langsam werde ich auch neugierig...
Was genau bezweckt Deine Lösung - was ist der konkrete Anwendungsfall?

Viele Grüße

V.B. Net

---
Verwendete Programmversionen:
Windows 7 64 bit sowie Windows 10 Prof.
Visual Studio 13 Professional
Microsoft Prof. 2010 (= Version 14)

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: Tweety2016
Datum: 27.09.18 13:05

Also, was ich als Ziel habe ist mein ganzes Personal in einer EXE zu erfassen mit allen Dokumenten, die zu den jeweiligen Personalien gehören und zwar so, dass ich die eine Datei .exe jederzeit auf einen Stick packen und mitnehmen kann und überall die in in den TextBoxen gespeicherten Dokumente öffnen kann.
Wenn ich die Dokumente auf irgend einem Ordner habe und bloß verlinke, muss ich neben der exe auch immer den ganzen Ordner mitnehmen.

Die Dokumente könen eine pdf, eine ppt ein Word-Dokument, ein Bild desjenigen .... sein.

Daher möchte ich einen Weg heraussfinden, wie die Dateien egal von wo sie in die TextBox reingezogen wurden, Teil der exe werden zu lassen ohne Verbindung zur ursprünglichen Quelle.

Grüße !
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: Vaubehnet
Datum: 27.09.18 13:31

Hallo Tweety,

Tweety2016 schrieb:
Zitat:

Also, was ich als Ziel habe ist mein ganzes Personal in einer
EXE zu erfassen mit allen Dokumenten, die zu den jeweiligen
Personalien gehören und zwar so, dass ich die eine Datei .exe
jederzeit auf einen Stick packen und mitnehmen kann und
überall die in in den TextBoxen gespeicherten Dokumente
öffnen kann.
Wenn ich die Dokumente auf irgend einem Ordner habe und bloß
verlinke, muss ich neben der exe auch immer den ganzen Ordner
mitnehmen.

Die Dokumente könen eine pdf, eine ppt ein Word-Dokument, ein
Bild desjenigen .... sein.


... das könntest Du aber auch so lösen:
Hauptordner
-- Unterordner mit Deiner Exe
-- Unterordner mit Deinen Dateien

Dann brauchst Du nur den Hauptordner mitzunehmen. Da Du den Anwendungspfad Deiner Exe über VB leicht ermitteln kannst, kennst Du beim Start von einem USB-Stick auch jeweils den Pfad, wo Deine Dateien liegen.

Im Vergleich erscheint mir eine saubere Ablage von Dateien in einem File-System vorteilhafter gegenüber einer immer größer werdenden Exe mit "irgendwie" darin liegenden Dateien.
Und falls die Dateien von anderen auf dem Stick nicht einsehbar sein sollen, ist ggf. Veracrypt (Nachfolger von Truecrypt) eine Lösung.

Viele Grüße

V.B. Net

---
Verwendete Programmversionen:
Windows 7 64 bit sowie Windows 10 Prof.
Visual Studio 13 Professional
Microsoft Prof. 2010 (= Version 14)

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: Tweety2016
Datum: 27.09.18 14:02

Danke für die Rückmeldung.
Das wäre sicher ein gangbarer Weg.

Ich wüsste aber gerne wie man die Dateien einbindet.

Es ist einfach kein Beispiel zu finden im Netz; oder ich suche nicht richtig.

Viele Grüße
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Speichern Datei in Listbox / Button / Combox 
Autor: Vaubehnet
Datum: 27.09.18 15:19

Hallo Tweety,

Kuno hat ja schon geschrieben, dass Du Dateien nur zur Entwurfszeit in die exe einbinden kannst. Ich wüsste auch nicht, dass es anders ginge.

Das "Einbinden" aus einem Verzeichnis könntest Du so lösen:
(listet alle Dateien inkl. der Unterverzeichnisse auf Knopfdruck in einer Listbox)

'-----------------------------------------
'Elemente: 
'Formular "Form1"
'darauf ein Button "Button1" und
'eine Listbox "Listbox1"
'-----------------------------------------
 
 
Imports System.IO
 
Public Class Form1
 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles _
      Button1.Click
        'Liest alle Dateien aus einem Ordner aus
        'inkl. Unterverzeichnisse
        'Ausgabe in Listbox1
 
        'Ordner festlegen und Dateien in Array einlesen
        Dim strOrdner As String = "C:\TEST"
 
        'Prüfen, ob der Ordner existiert
        If Directory.Exists(strOrdner) = False Then
            MessageBox.Show("Der Ordner [" & strOrdner & "] existiert nicht.", _
              "Ordner nicht gefunden", _
                            MessageBoxButtons.OK, _
                            MessageBoxIcon.Error)
            Exit Sub
        End If
 
        'Array definieren und alle Dateien einlesen
        Dim arrSuche As String() = Directory.GetFiles(strOrdner, "*.*", _
          SearchOption.AllDirectories)
 
        'Listbox 1 zunächst leeren
        ListBox1.Items.Clear()
 
        'Listbox füllen
        For Each strDatei As String In arrSuche
            ListBox1.Items.Add(strDatei.ToString())
        Next
 
    End Sub
End Class
Gruß

V.B. Net

---
Verwendete Programmversionen:
Windows 7 64 bit sowie Windows 10 Prof.
Visual Studio 13 Professional
Microsoft Prof. 2010 (= Version 14)

Beitrag wurde zuletzt am 27.09.18 um 15:20:47 editiert.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel