vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 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 - Ein- und Umsteiger
Eingaben 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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Eingaben als TXT speichern 
Autor: p24
Datum: 19.10.16 16:43

Hab es schon, mann bin ich blond

Danke nochmals
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Eingaben als TXT speichern 
Autor: effeff
Datum: 22.11.16 16:15

Wobei hast Du da Probleme?

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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!
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