| |
VB.NET - FortgeschritteneSpeichern 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. | |
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) | |
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 ! | |
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 | |
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 | |
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) | |
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. | |
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) | |
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 | |
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. | |
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) | |
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 ! | |
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. | |
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 | |
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) | |
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 | |
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. | |
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) | |
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 ! | |
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) | |
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 | |
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. | |
| 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 |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevDTA 3.0 Pro
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere Infos
|