| |
VB.NET - Ein- und UmsteigerEingaben als TXT speichern | | | Autor: p24 | Datum: 19.10.16 09:40 |
| Hallo zusammen,
ich habe mir ein kleines Tool geschrieben, damit ich nicht jeden Tag eine Email über Outlook schreiben muss.
Ich muss dazu sagen, dass ich leider nicht sehr viel Erfahrung in VB habe, es aber mutig waage, evtl. ist jemand
so nett und hilft mir, ich würde mich wirklich wirklich sehr freuen.
Es geht um Folgendes Problem:
http://panorama24.eu/programm.jpg
Ich sende jeden Tag kurz vor Feierabend eine E-Mail an den Transportdienstleister GLS mit einer Plombennummer
und der Anzahl der jeweiligen Paletten. Ich würde gerne eine Art Palettenkonto entweder als Text oder sogar
mit kleiner Gui haben. Es müssten immer wenn eine E-Mail gesendet wird die Dateien paralell als txt Datei
gespeichert (angehängt werden in neuer Zeile) mit dem dazu gehörigen Datum gespeichert werden.
Ich kriege es leider nicht so wirklich hin. Richtig gut wäre, wenn man das ganze statt mit Excel oder dem Editor
auch noch auslesen lassen könnte in dem Mini Programm.
Hier mein Quellcode:
Imports System.Net.Mail
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles senden.Click
Dim Msg As New MailMessage
Dim myCredentials As New System.Net.NetworkCredential
myCredentials.UserName = "*********"
myCredentials.Password = "*********"
Msg.IsBodyHtml = False
Dim mySmtpsvr As New SmtpClient()
mySmtpsvr.EnableSsl = True 'SSL aktivieren
mySmtpsvr.Host = "smtp.strato.de"
mySmtpsvr.Port = 587
mySmtpsvr.UseDefaultCredentials = False
mySmtpsvr.Credentials = myCredentials
Try
Msg.From = New MailAddress("*********")
ProgressBar1.Value = 10
Msg.To.Add("*********")
Msg.CC.Add(ccempfaender.Text)
ProgressBar1.Value = 20
Msg.Subject = "Plombennummer für Wechselbrücke Kundennummer: *********"
ProgressBar1.Value = 30
Msg.Body = "Hallo, wir möchten Ihnen die heutige Plombennummer mitteilen, diese" & _
"lautet: " & (Plombennummer.Text) & ". Außerdem haben wir auf der" & _
"Wechselbrücke folgende Anzahl an Paletten: " & "Europaletten: " & ( _
Euro.Text) & ", Einwegpaletten: " & (Einweg.Text) & " verladen. Über eine" & _
"schnelle Abwicklung würden wir uns sehr freuen und verbleiben mit den besten" & _
"Grüßen! Panorama24 Lagerteam. Für dringliche Fragen, stehen wir Ihnen gerne" & _
"unter folgender Rufnummer zur Verfügung: *********"
ProgressBar1.Value = 80
mySmtpsvr.Send(Msg)
ProgressBar1.Value = 100
MsgBox("Erfolgreich - schönen Feierabend", MsgBoxStyle.Information, _
Title:="Information")
Catch ex As Exception
MsgBox(Err.Number & ex.Message & ex.StackTrace.ToString) 'Falls ein Fehler
' auftritt wird eine MsgBox angezeigt
End Try
End Sub
End Class | |
Re: Eingaben als TXT speichern | | | Autor: effeff | Datum: 19.10.16 15:54 |
| Kommst Du mit dieser Lösung klar?
Imports System.Net.Mail
Public Class Form1
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) _
Handles Button1.Click
Dim Datum As String = Now
Dim strMSGFrom As String = "Irgendwas@sonstwas.de"
Dim strMSGTo As String = "Irgendwohin@Niegesehn.de"
Dim strCCEmpfaengerTo As String = "Nochwer@woanders.de"
Dim strMSGSubject As String = "Plomnbennummer für Wechselbrücke," & _
"Kundennummer: 1234567890"
Dim strMSGBody As String = "Hallo!" & vbCrLf & vbCrLf & " Wir möchten" & _
"Ihnen die heutige Plombennummer mitteilen. Diese lautet: " & _
Plombennummer.Text & vbCrLf & vbCrLf & "Außerdem haben wir auf der" & _
"Wechselbrücke folgende Anzahl an Paletten: " & vbCrLf & vbCrLf & _
"Europaletten: " & Euro.Text & vbCrLf & "Einwegpaletten: " & _
Einweg.Text & vbCrLf & vbCrLf & "verladen. Für dringende Fragen stehen" & _
"wir IHnen gerne unter folgender Telefonnummer zur Verfügung:" & _
"XXXXX/XXXXXXX. Über eine schnelle Abwicklung würden wir uns sehr" & _
"freuen und verbleiben mit den besten Grüßen" & vbCrLf & vbCrLf & "Ihr" & _
"Panorama24 Lagerteam"
Dim Gesamttext = "Mail vom " & Datum & ":" & vbCrLf & vbCrLf & _
strMSGFrom & vbCrLf & strMSGTo & vbCrLf & strCCEmpfaengerTo & vbCrLf _
& vbCrLf & strMSGSubject & vbCrLf & vbCrLf & strMSGBody
MailSchreiben(strMSGFrom, strMSGTo, strCCEmpfaengerTo, strMSGSubject, _
strMSGBody)
Dim Dateiname As String = Format(Now, "yyyyMMdd_hhmmss") & ".txt"
Dim Zielverzeichnis As String = "d:\deinSpeicherverzeichnisfuerMails\"
DateiSchreiben(Zielverzeichnis, Dateiname, Text)
End Sub
Private Sub MailSchreiben(ByVal strMSGFrom As String, ByVal strMSGTo As _
String, ByVal strCCEmpfaenger As String, ByVal strMSGSubject As String, _
ByVal strMSGBody As String)
Dim Msg As New MailMessage
Dim myCredentials As New System.Net.NetworkCredential
myCredentials.UserName = "*********"
myCredentials.Password = "*********"
Msg.IsBodyHtml = False
Dim mySmtpsvr As New SmtpClient()
mySmtpsvr.EnableSsl = True 'SSL aktivieren
mySmtpsvr.Host = "smtp.strato.de"
mySmtpsvr.Port = 587
mySmtpsvr.UseDefaultCredentials = False
mySmtpsvr.Credentials = myCredentials
Try
Msg.From = New MailAddress(strMSGFrom)
ProgressBar1.Value = 10
Msg.To.Add(strMSGTo)
Msg.CC.Add(strCCEmpfaenger)
ProgressBar1.Value = 20
Msg.Subject = strMSGSubject
ProgressBar1.Value = 30
Msg.Body = strMSGBody
ProgressBar1.Value = 80
mySmtpsvr.Send(Msg)
ProgressBar1.Value = 100
MsgBox("Erfolgreich - schönen Feierabend", MsgBoxStyle.Information, _
Title:="Information")
Catch ex As Exception
MsgBox(Err.Number & ex.Message & ex.StackTrace.ToString) 'Falls ein
' Fehler
' auftritt wird eine MsgBox angezeigt
End Try
End Sub
Private Sub DateiSchreiben(ByVal Verzeichnis As String, ByVal Dateiname As _
String, ByVal Text As String)
Dim Zieldatei As String = Verzeichnis & "\" & Dateiname
Dim sw As New System.IO.StreamWriter(Zieldatei)
sw.Write(Text)
sw.Close()
End Sub
End Class EALA FREYA FRESENA
Beitrag wurde zuletzt am 19.10.16 um 15:55:49 editiert. | |
Re: Eingaben als TXT speichern | | | Autor: p24 | Datum: 19.10.16 16:32 |
| Wow, vielen vielen vielen Dank. Ich vermute, dass hätte ich als blutiger Anfänger niemals hinbekommen.
Du hast mir wirklich viel Arbeit abgenommen und ich möchte mich vielmals bedanken.
Lediglich eine Frage stellt sich mir, in der Textdatei steht nur "Form1". Wo definiere ich die Eingaben?
Liebe Grüße | |
Re: Eingaben als TXT speichern | | | Autor: p24 | Datum: 19.10.16 16:43 |
| Hab es schon, mann bin ich blond
Danke nochmals | |
Re: Eingaben als TXT speichern | | | Autor: effeff | Datum: 20.10.16 10:22 |
| Es hätte natürlich heißen müssen: DateiSchreiben(Zielverzeichnis, Dateiname, Gesamttext) ...
EALA FREYA FRESENA | |
Re: Eingaben als TXT speichern | | | Autor: p24 | Datum: 21.10.16 12:08 |
| Halloo ich nerve nochmals. Ist es schwierig folgendes dazu zu realisieren, siehe Bild?
Als Datenbank vllt. einfach eine weitere Textdatei?
http://panorama24.eu/palettenkonto.jpg
Aktueller Code:
Imports System.Net.Mail
Public Class Form1
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) _
Handles Button1.Click
Dim Datum As String = Now
Dim strMSGFrom As String = "EMAIL VON"
Dim strMSGTo As String = (gls.Text)
Dim strCCEmpfaengerTo As String = (ccempfaender.Text)
Dim strMSGSubject As String = "Plomnbennummer für Wechselbrücke," & _
"Kundennummer: *******"
Dim strMSGBody As String = "Hallo!" & vbCrLf & vbCrLf & " Wir möchten" _
& _
"Ihnen die heutige Plombennummer mitteilen. Diese lautet: " & _
Plombennummer.Text & vbCrLf & vbCrLf & "Außerdem haben wir auf der" & _
"Wechselbrücke folgende Anzahl an Paletten: " & vbCrLf & vbCrLf & _
"Europaletten: " & Euro.Text & vbCrLf & "Einwegpaletten: " & _
Einweg.Text & vbCrLf & vbCrLf & "verladen. Für dringende Fragen stehen" _
& _
"wir Ihnen gerne unter folgender Telefonnummer zur Verfügung:" & _
"01520/*******. Über eine schnelle Abwicklung würden wir uns sehr" & _
"freuen und verbleiben mit den besten Grüßen" & vbCrLf & vbCrLf & "Ihr" _
& _
"Panorama24 Lagerteam"
Dim Gesamttext = "Mail vom " & Datum & ":" & vbCrLf & vbCrLf & _
strMSGFrom & vbCrLf & strMSGTo & vbCrLf & strCCEmpfaengerTo & vbCrLf _
& vbCrLf & strMSGSubject & vbCrLf & vbCrLf & strMSGBody
MailSchreiben(strMSGFrom, strMSGTo, strCCEmpfaengerTo, strMSGSubject, _
strMSGBody)
Dim Dateiname As String = Format(Now, "yyyyMMdd_hhmmss") & ".txt"
Dim Zielverzeichnis As String = "c:\plombentmp\"
DateiSchreiben(Zielverzeichnis, Dateiname, Text)
End Sub
Private Sub MailSchreiben(ByVal strMSGFrom As String, ByVal strMSGTo As _
String, ByVal strCCEmpfaenger As String, ByVal strMSGSubject As String, _
ByVal strMSGBody As String)
Dim Msg As New MailMessage
Dim myCredentials As New System.Net.NetworkCredential
myCredentials.UserName = "VON EMAIL"
myCredentials.Password = "PASSWORT"
Msg.IsBodyHtml = False
Dim mySmtpsvr As New SmtpClient()
mySmtpsvr.EnableSsl = True 'SSL aktivieren
mySmtpsvr.Host = "smtp.strato.de"
mySmtpsvr.Port = 587
mySmtpsvr.UseDefaultCredentials = False
mySmtpsvr.Credentials = myCredentials
Try
Msg.From = New MailAddress(strMSGFrom)
ProgressBar1.Value = 10
Msg.To.Add(strMSGTo)
Msg.CC.Add(strCCEmpfaenger)
ProgressBar1.Value = 20
Msg.Subject = strMSGSubject
ProgressBar1.Value = 30
Msg.Body = strMSGBody
ProgressBar1.Value = 80
mySmtpsvr.Send(Msg)
ProgressBar1.Value = 100
MsgBox("Erfolgreich - schönen Feierabend", MsgBoxStyle.Information, _
Title:="Information")
Catch ex As Exception
MsgBox(Err.Number & ex.Message & ex.StackTrace.ToString) 'Falls ein
' Fehler
' auftritt wird eine MsgBox angezeigt
End Try
End Sub
Private Sub DateiSchreiben(ByVal Verzeichnis As String, ByVal Dateiname As _
String, ByVal Text As String)
Dim Zieldatei As String = Verzeichnis & "\" & Dateiname
Dim sw As New System.IO.StreamWriter(Zieldatei)
sw.Write("Plombennummer ")
sw.WriteLine(Plombennummer.Text)
sw.Write("Europaletten ")
sw.WriteLine(Euro.Text)
sw.Write("Einwegpaletten ")
sw.WriteLine(Einweg.Text)
sw.Close()
End Sub
End Class | |
Re: Eingaben als TXT speichern | | | Autor: effeff | Datum: 24.10.16 15:32 |
| Schau Dir bitte das nachfolgende Beispiel an, wie man Daten mittels einer DataTable in einer XML-Datei speichert und zur Anzeige nutzt. Die benötigten Komponenten sind in der Beschreibung enthalten. Du solltest damit schaffen, Dein Programm entsprechend erweitern zu können:
'Für dieses Beispiel benötigt man eine Textbox namens "Plombennummer",
'eine Textbox namens "Euro", eine Textbox namens "Einweg", einen
'Buttons namens "Speichern" und ein DataGridView namens "dgvLog".
'Es wird eine DataTable angelegt, welche Daten anzeigt, sofern vorhanden,
'welche sich in einer XML-Datei im definierten Zielverzeichnis befindet.
'Bei jedem Speichern werden die neuen Daten den alten hinzu gefügt.
Public Class Form1
Dim dt As New DataTable
Dim Zielverzeichnis As String = "c:\plombentmp\"
Dim LogDatei As String = "c:\plombentmp\dtLog.xml"
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) _
Handles MyBase.Load
If System.IO.Directory.Exists(Zielverzeichnis) = False Then
System.IO.Directory.CreateDirectory(Zielverzeichnis)
End If
dt.Columns.Add("Plombennummer")
dt.Columns.Add("Euro")
dt.Columns.Add("Einweg")
dt.Columns.Add("Logdatei")
dt.TableName = "Plombentabelle"
With dgvLog
.DataSource = dt
.ReadOnly = True
.AllowUserToAddRows = False
.AllowUserToDeleteRows = False
.SelectionMode = DataGridViewSelectionMode.FullRowSelect
.MultiSelect = False
.RowHeadersVisible = False
.ScrollBars = ScrollBars.Both
.RowsDefaultCellStyle.BackColor = Color.White
.AlternatingRowsDefaultCellStyle.BackColor = Color.AliceBlue
.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
End With
If My.Computer.FileSystem.FileExists(LogDatei) = False Then
dt.WriteXml(Zielverzeichnis & LogDatei)
Else
dt.ReadXml(LogDatei)
End If
Application.DoEvents()
End Sub
Private Sub Speichern_Click(sender As System.Object, e As System.EventArgs) _
Handles Speichern.Click
Dim strPlombennummer As String = Plombennummer.Text
Dim strEuro As String = Euro.Text
Dim strEinweg As String = Einweg.Text
Dim Dateiname As String = Format(Now, "yyyyMMdd_hhmmss") & ".txt"
'Nach "DateiSchreiben(Zielverzeichnis, Dateiname, Text)
dt.Rows.Add(strPlombennummer, strEuro, strEinweg, Dateiname)
dt.WriteXml(LogDatei)
End Sub
End Class EALA FREYA FRESENA | |
Re: Eingaben als TXT speichern | | | Autor: p24 | Datum: 10.11.16 08:59 |
| Ich habe es versucht, leider funktioniert es bei mir nicht
könntest Du mir einmal den gesamten Quellcode zusammenfügen?
Beitrag wurde zuletzt am 10.11.16 um 09:05:45 editiert. | |
Re: Eingaben als TXT speichern | | | Autor: effeff | Datum: 22.11.16 16:15 |
| Wobei hast Du da Probleme?
EALA FREYA FRESENA | |
Re: Eingaben als TXT speichern | | | Autor: p24 | Datum: 23.11.16 11:30 |
| Der aktuelle Code sieht komplett wie folgt aus:
(Da der Code zu lang ist, habe ich ihn als txt auf folgende URL gelegt:
http://mindhackers.de/code.txt
Wenn ich dieses Debugge bekomme ich, dass das Build fehler enthält und ob ich das letzte ausführen möchte. Ferner zeigt er mir als Fehler folgendes an:
Fehler 11 "obj\x86\Debug\P24 Plomben-Reporter.exe" konnte nicht in "bin\Debug\P24 Plomben-Reporter.exe" kopiert werden. Die zulässige Anzahl von Wiederholungen von 10 wurde überschritten. Fehler. P24-GLStool
Fehler 12 Die Datei "obj\x86\Debug\P24 Plomben-Reporter.exe" kann nicht in "bin\Debug\P24 Plomben-Reporter.exe" kopiert werden. Der Prozess kann nicht auf die Datei "bin\Debug\P24 Plomben-Reporter.exe" zugreifen, da sie von einem anderen Prozess verwendet wird. P24-GLStool
Warnung 10 "obj\x86\Debug\P24 Plomben-Reporter.exe" konnte nicht in "bin\Debug\P24 Plomben-Reporter.exe" kopiert werden. Wiederholung 10 wird in 1000 ms gestartet. Der Prozess kann nicht auf die Datei "bin\Debug\P24 Plomben-Reporter.exe" zugreifen, da sie von einem anderen Prozess verwendet wird. P24-GLStool
Danke dir im Voraus | |
Re: Eingaben als TXT speichern | | | Autor: sv00010 | Datum: 23.11.16 20:18 |
| Das Projekt abspeichern und schließen. Dann in den Projekt-Ordner navigieren und den gesamten obj- und bin-Ordner löschen.
Das Projekt wieder laden und neu compilieren. | |
Re: Eingaben als TXT speichern | | | Autor: p24 | Datum: 24.11.16 08:31 |
| Hey, danke für deine Antwort, nun bekomme ich folgende Fehlermeldung:
XmlException wurde nicht behandelt. "{"Das Stammelement ist nicht vorhanden."}"
Gruß
*** EDIT
Die obige Fehlermeldung kommt lediglich, wenn ich eine leere Datei mit dem Namen dtLog.xml erstelle, ist der Zeilpfad leer und keine Datei vorhanden, bekomme ich:
dt.WriteXml(Zielverzeichnis & LogDatei) NotSupportedException wurde nicht behandelt.
Das angegebene Pfadformat wird nicht unterstützt.
Beitrag wurde zuletzt am 24.11.16 um 08:43:21 editiert. | |
Re: Eingaben als TXT speichern | | | Autor: p24 | Datum: 24.11.16 09:04 |
| Okay, ich habe es, es muss wie folgt heißen: Dim LogDatei As String = "dtLog.xml" .
Vielen Vielen Dank allen! | |
| 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! sevEingabe 3.0
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere Infos
|