Etwas in der Datei schreiben (FTP)

  • VB.NET

Es gibt 43 Antworten in diesem Thema. Der letzte Beitrag () ist von Xero.

    Etwas in der Datei schreiben (FTP)

    Heyho :D

    Ich habe gemacht das wenn man auf ein Button drückt der Inhalt aus Textbox1 und Textbox2 auf mein FTP-Server hochgeladen wird.
    Aber es ist so wenn ich z.B hallo schreibe dann auf den Button drücke und danach nochmal das gleiche nur mit einen anderen Wort steht dann nur noch das letze eingegeben Wort :(
    Also ich möchte das man die Datei öffnet was reinschreibt ( nichts überschreibt) und wieder schließt.
    Hoffe ihr könnt helfen?

    Edit by der_Kurt:
    * Topic verschoben *

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „der_Kurt“ ()

    Ja ich wollte ja eig. machen das nur eine Zeile hinzugefügt wird und nicht eine neue erstellt wird und die alte überschrieben wird.
    Ich mache auch kein Chat^^

    VB.NET-Quellcode

    1. client.Credentials = New Net.NetworkCredential("name", "pw")
    2. client.UploadString("ftp", TextBox1.Text & TextBox2.Text)
    Hier ein grobes Beispiel du lädst die datei runter z.B: C:\Test\Test.txt

    dann Machst du im Button Click event:

    VB.NET-Quellcode

    1. TextBox1.Text = My.Computer.FileSystem.ReadAllText("C:\Text\Test.txt") & vbCrLf & TextBox1.Text ' Dass heißt nun der TextBox1.Text ist der Text der Text datei und Enter(vbCrLf) und der alte TextBox1 . Text....
    2. 'nun könntest du die datei mit einen steamwriter und nen openfiledialog abspeichern und dann uploaden
    3. 'aber vbcrlf kannst du natürlich weglassen s müsste auch gehn wenn du in der textbox einfach enter drückst ^^


    Beispiel fürs Uploaden:
    Über Form1 importieren:

    VB.NET-Quellcode

    1. Imports System.Net


    unter Form1.. Variablen deklaieren

    VB.NET-Quellcode

    1. Private WithEvents WebClient1 As New WebClient ' WebClient
    2. Dim dialog As New SaveFileDialog ' SaveFile Dialog
    3. Dim pfad As String 'pfad den er uploaden soll


    Dann unter den TextBox1.Text.... im Button Event

    VB.NET-Quellcode

    1. If dialog.ShowDialog = Windows.Forms.DialogResult.OK Then ' Wenn beim dialog OK gedrückt wird
    2. pfad = dialog.FileName 'dann ist in der variable pfad der pfad der ausgewählten datei
    3. 'Dann webclient1 uploaden z.B
    4. WebClient1.Credentials = New Net.NetworkCredential("Benutzername", "PW")
    5. WebClient1.UploadFile("Die addresse", pfad) ' es uploaded den pfad der im string angegeben wurde
    6. ElseIf pfad = Nothing Then 'wenn der pfad nichts ist dann
    7. 'Wass machst du wenn nicht?
    8. ElseIf Windows.Forms.DialogResult.No Then
    9. 'Und wenn No gedrückt wird machst du...
    10. End If

    Hoffe ich konnte helfen! Eventuell noch WebClient1.DownloadFileCompleted....

    Edit:// Es muss aber die datei auf ftp server löschen...

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

    Kevin162 schrieb:

    Danke gut erklärt etc. aber ich will das man den eingegeben Text bei Textbox1 auf einem FTP server hochlädt aber nicht die Datei überschreibt sondern die Zeile hinzufügt.
    Hatte vergessen dass man dazu ja überschreiben müsste mein beispiel macht dies:


    Dass Problem hierbei ist die Textdatei ist chon vorhanden!
    Die lib hier erleichtert es etwas^^ [Release] FTPLib 2.0.0.0 - Neue Version!
    Edit hier nochmal ganz wurde nicht getestet) Ich habe ihn nur gepostet, da ich denke , dass er verständlich ist!

    VB.NET-Quellcode

    1. Imports System.Net
    2. Imports FTPLib ' Du musst unter MyProject->Verweise->Hinzufügen->Dann die FTPLib auswählen dann geht der Import aber natürlich auch Im Porgramm: [Name] 'verwendet FTPLib von softwaredisings ;)
    3. Public Class Form1
    4. Private WithEvents WebClient1 As New WebClient ' WebClient
    5. Dim dialog As New SaveFileDialog ' SaveFile Dialog
    6. Dim pfad As String 'pfad den er uploaden soll
    7. Private WithEvents locFTP As FTP = Nothing
    8. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    9. TextBox2.Text = My.Computer.FileSystem.ReadAllText("C:\Text\Test.txt") & vbCrLf & TextBox1.Text ' Dass heißt nun der TextBox1.Text ist der Text der Text datei und Enter(vbCrLf) und der alte TextBox1 . Text....
    10. TextBox1.Clear()
    11. 'Jetzt speichern um es upzuloaden
    12. 'aber vbcrlf kannst du natürlich weglassen s müsste auch gehn wenn du in der textbox einfach enter drückst ^^
    13. ' Jetzt speichern wie es und laden es danach hoch
    14. If dialog.ShowDialog = Windows.Forms.DialogResult.OK Then
    15. pfad = dialog.FileName
    16. My.Computer.FileSystem.WriteAllText(pfad, TextBox1.Text, True)
    17. ' Datei löschen (auf server)
    18. If (locFTP.FileExists("Test.txt") = True) Then 'Wenn auf dem server z.b http://www.name.funpic.de/Test.txt existiert dann wirds gelöscht...
    19. Try
    20. locFTP.FileDelete("Test.txt")
    21. Catch ex As Exceptions.FTPFileNotFoundException
    22. MessageBox.Show(ex.Message)
    23. Catch ex As Exception
    24. MessageBox.Show(ex.Message)
    25. End Try
    26. End If
    27. ' Datei hochladen
    28. locFTP.Upload(pfad, "remotefile.txt")
    29. ElseIf pfad = Nothing Then 'wenn der pfad nichts ist dann
    30. 'Wass machst du wenn nicht?
    31. ElseIf Windows.Forms.DialogResult.No Then
    32. 'Und wenn No gedrückt wird machst du...
    33. End If
    34. End Sub
    35. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    36. ' Verbindung zum FTP-Server herstellen
    37. locFTP.Connect("Host=server- z.b http://www.deinname.funpic.de; Username=username;Password=password;Port=21;")
    38. 'Hier musst du als erstes verbindung herstellen...
    39. If (locFTP.IsConnected = True) Then
    40. MessageBox.Show("Verbindung wurde hergestellt")
    41. 'Wenn verbindung hergestellt dann dass oben
    42. End If
    43. End Sub
    44. End Class

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „TheMatI“ ()

    Hm mache als zweites Projekt auch ein CHat vor nur wie macht man das wenn einer i-was beim FTP uploaded die nächste Zeile benutzt wird. Also wenn ich Hallo schreibe und mein Kumpel Hallo2 sieht man im CHat nur Hallo2 weil Hallo überschrieben wird.
    Wie macht man sozusagen eine neue Zeile

    Kevin162 schrieb:

    Ja aber es wird ja ehm ja die .txt con C:/... hochgeladen ich will aber nur das der Text aus textbox1 hochgeladen wird xD
    Die Datei C:\... ist Die TextBox1.Text & VbCrLf(enter) & TextBox2.Text ?
    Also ich habe eigentlich schon genug Codes gepostet wenn du die nicht "umwandeln" kannst würde ich mal empfehlen,
    im forum zu suchen du hättest 100%!!!! was gefunden!!!!
    Also lass es lieber wenn du es nicht kannst ... ^^
    Soll keine beleidigung sein aber wenn du dir mal den Code angeschaut hättest wüsstest du wie du nur TextBox1.Text hochlädst!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „TheMatI“ ()

    Ich habe mir den COde mehrmals angeguckt :X
    Habe auch bevor ich das alles geschrieben habe im Forum gesucht aber die SuFU taugt irgendwie nichts.

    ICh habe ja beim Chat:

    Upload

    VB.NET-Quellcode

    1. client.Credentials = New Net.NetworkCredential("***", "***l")
    2. client.UploadString("****e/ChatLog.txt", vbCrLf & vbNewLine & TextBox3.Text)

    Beim Download:

    VB.NET-Quellcode

    1. TextBox1.Text = vbCrLf & vbNewLine & client.DownloadString("***/ChatLog.txt")

    Nur ich es erscheint halt immer nur die neueste und nicht z.B die vorherige^^
    Nein also bei Textbox3 steht der Inhalt den man schreibt und bei Textbox1 steht dann der Text in der Chatbox also den man nur lesen kann. Das funktioniert soweit auch nur die Zeilen werden immer setzt und man kann nur die neuste Nachricht lesen
    Also poste mal den Quellcode wo du jetzt Hilfe brauchst^^
    Also bei FTP-Chat kann sein dass gleichzeitig oder fast genau geuploaded wird des kann man schnell beheben aber Poste erstmal code UND einen Screen wie dass Programm ausschaut..

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Timer1.Enabled = True
    4. Timer1.Interval = 100
    5. Timer1.Start()
    6. End Sub
    7. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    8. Dim client As New Net.WebClient
    9. client.Credentials = New Net.NetworkCredential("chat", "123456")
    10. client.UploadString("ftp:/..../ChatLog.txt", TextBox3.Text & vbCrLf)
    11. End Sub
    12. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    13. TextBox1.Text = vbCrLf
    14. Dim client As New Net.WebClient
    15. client.Credentials = New Net.NetworkCredential("chat", "123456")
    16. TextBox1.Text = client.DownloadString("ftp:/..../ChatLog.tx/ChatLog.txt")
    17. End Sub
    18. End Class



    Oben ist Textbox3 wo man was eingibt.
    Textbox3 ist der Kasten wo der Text rauskommt.
    Aber wenn ich jetzt z.B xD eingebe dann geht das "lol" weg und da steht nur noch "xd"
    Das ist mein Problem


    PS: Textbox2 ist weg!? Ein Fall für Galileo Mystery!