myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   txt datei auslesen und speichern (https://mygully.com/showthread.php?t=2076065)

moin2010 11.07.10 20:39

Hallo Leute,

ich habe zwei Fragen:

1. Wie kan ich eine Textdatei auslesen
und das der text aus der Datei dan
in einer textbox angezeigt wird?

2. Wie kan ich die einträge aus der textbox
als Textdatei speichern?

Ich benutze MS Visual Basic 2008 Express.
Ich danke schonmal für eure Antworten

MfG moin2010

sorry,
hab noch vergessen das die datei aus dem gleichen ordner geöffnet werden soll
wie das programm.

spartan-b292 11.07.10 22:03

Unten rechts gibt es einen Editieren Button für solche Fälle ;)

moin2010 11.07.10 23:01

Zitat:

Zitat von spartan-b292 (Beitrag 20976406)
Unten rechts gibt es einen Editieren Button für solche Fälle ;)

ich weiß

.ShoXx! 12.07.10 10:23

Hi,

also zu 1: Dafür gibt es verschiedene Möglichkeiten, am kürzesten finde ich allerdings die My-Namespace Methode.

Code:

TextBox1.Text = My.Computer.FileSystem.ReadAllText("Pfad zur Datei + Dateiname")
und da du ja sagtest dass die Textdatei im gleichen Ordner wie dein Programm ist musst du den Pfad nicht manuell angeben, sondern kannst einfach CurDir() benutzen, also so:

Code:

TextBox1.Text = My.Computer.FileSystem.ReadAllText(CurDir() & "\DeineDatei.txt")
zu 2: Da gibt es auch verschiedene Möglichkeiten, aber da benutze ich auch die My-Methode. Ist eigentlich fast die Umkehrung vom Einlesen des Textes.
Code:

My.Computer.FileSystem.WriteAllText("Pfad zur Datei + Dateiname das erstellt werden soll", "Der Text der geschrieben werden soll", False)
Ganz am Ende dieses Code siehst du das "False" stehen, da entscheidest du ob der Text überschrieben werden soll, oder der Text zum bereits vorhandenen Text hinzugefügt werden soll. False = Ersetzen, True = Neuen Text hinzufügen. Also so könnte dann der Code bei deinem Beispiel ausschauen:
Code:

My.Computer.FileSystem.WriteAllText(CurDir() & "\DeineDatei.txt", TextBox1.Text, False)
Hoffe das hilft dir weiter ;)

moin2010 12.07.10 12:35

ich versuche es gleich mal

Ich habe die erste antwort ausprobiert und es hat leider nicht funktioniert.
Er behauptet das die datei nicht eistiert.
Doch die datei ist in dem ordner wie das programm.

Und beim zweiten mit dem text speichern tut sich nichts.
Er sagt auch keine Fehlermeldung.
In die datei schreibt er auch nicht. Nichts :cry:

.ShoXx! 12.07.10 12:53

Hast du dein Programm in VB gestartet? Also auf Debuggen gedrückt? Weil wenn ja, und du im Code CurDir() benutzt, dann muss deine Textdatei im Projektordner\Debug liegen. Also ich glaub hier: Dokumente\Visual Studio 2008\Projects\*DeinProjekt*\bin\Debug\ da müsstest du deine Textdatei reinpacken um es in Visual Basic testen zu können..falls du mit CurDir() nicht auskommst, dann kannste den Pfad natürlich auch manuell eingeben, also z.B.: "C:\irgendwas\Desktop\DeineDatei.txt".
Und bei Nummer 2: Zeig mal deinen Code wie und wo du ihn reingeschrieben hast.

moin2010 12.07.10 12:54

Deine 1. Antwort zu frage zwei funktioniert aber er soll
ja den text aus der textbox speichern.

.ShoXx! 12.07.10 12:57

ja den Text aus einer TextBox in eine TextDatei schreiben, versuch mal das, müsste aufjedenfall klappen:

Code:

My.Computer.FileSystem.WriteAllText(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\test.txt", "blubbywerwer", False)
Es müsste dann auf deinem Desktop eine Datei namens test.txt kommen

Zeige mal deinen ganzen Code..

moin2010 12.07.10 12:59

Ist es möglich aus mehreren Textboxen die einträge zu speichern und
dass das programm sie wieder lädt beim start bzw. das man dan auf einem button
zum speichern und laden klickt?

.ShoXx! 12.07.10 13:02

Ja einfach die TextBoxen zusammenknüpfen:

Code:

My.Computer.FileSystem.WriteAllText("C:\irgendwas\Desktop", "TextBox1.Text & TextBox2.Text & TextBox3.Text & TextBox4.Text", False)
Wie meinst du speichern und laden? In eine Textdatei? Hab ich doch schon oben gezeigt, oder meinst du in deinem Programm selber?

moin2010 12.07.10 13:02

Das ist der code

Zitat:

Public Class Form1

Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStripMenuItem.Click

Close()

End Sub

Private Sub DateiToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateiToolStripMenuItem.Click

End Sub

Private Sub ÖffnenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ÖffnenToolStripMenuItem.Click



End Sub

Private Sub SpeichernToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SpeichernToolStripMenuItem.Click

My.Computer.FileSystem.WriteAllText(CurDir() & "\test.txt", TextBox1.Text, False)


End Sub

Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label3.Click

End Sub
End Class

.ShoXx! 12.07.10 13:04

OK, und wie startest du dein Programm? Klickst du auf das Dreieck (Debuggen) ?

moin2010 12.07.10 13:10

Das habe ich auch mal versucht aber dan sagt er:
Zugriff wurde verweigert.
Ich weiß auch nicht wieso.
Falls es nötig ist, ich benutze Windows 7 Ultimate

Zitat:

Zitat von .ShoXx! (Beitrag 20977881)
OK, und wie startest du dein Programm? Klickst du auf das Dreieck (Debuggen) ?

ja so starte ich das programm.

.ShoXx! 12.07.10 13:15

Ja also wenn du dein Programm so startest und diesen Code benutzt:
Code:

Private Sub SpeichernToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SpeichernToolStripMenuItem.Click

My.Computer.FileSystem.WriteAllText(CurDir() & "\test.txt", TextBox1.Text, False)


End Sub

Dann wird die Datei in deinem Projektordner erstellt..

Hast du nun schon diesen Code versucht oder nicht? Sag mir ob er bei dir eine Datei auf dem Desktop erstellt:
Code:

My.Computer.FileSystem.WriteAllText(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\TestDatei.txt", "Hier steht ein Text...", False)

moin2010 12.07.10 13:18

Die datei wurde aufm desktop erstellt

.ShoXx! 12.07.10 13:19

Ja also klappt doch alles, wo hast du denn nun ein Problem?

moin2010 12.07.10 13:23

Ok ich danke dir.

pcblizzard 12.07.10 13:31

@moin2010: Wenn du weißt das es ein "Editieren"-Button gibt, dann nutze ihn auch!

.ShoXx! 12.07.10 13:31

Ja ok, und das mit CurDir() hast du hoffentlich verstanden. Wenn du dein Programm in Visual Basic startest (also auf das Dreieck klickst) dann ist dein Programm hier:
Code:

Dokumente\Visual Studio 2008\Projects\*DeinProjekt*\bin\Debug\
Wenn du deine .exe Datei aus diesem Ordner z.B. auf dein Desktop kopierst, dann ist dieses "CurDir()" auch beim Desktop..bei dir war jetz halt das Problem dass du dein Programm in Visual Basic gestartet hast und somit die erstellte Textdatei nicht gefunden hast..

moin2010 12.07.10 16:10

Ok
Das merke ich mir fürs nächste mal.
Aber danke nochmal.

junior_no1 22.07.10 09:37

ich hab auch ne frage ..
wie ist das denn wenn man einen text datei von einem ftp anzeigen möchte zum beispiel in einer RichTextBox ??

.ShoXx! 22.07.10 12:12

Code:

Dim client As New Net.Webclient
Dim inhalt As String = client.Downloadstring("http://blabla.de/test.txt")

RichTextBox1.Text = inhalt

Habs nich probiert da ich keinen eigenen Server habe, aber müsste glaub gehn..

Kapsonfire 22.07.10 13:13

Bitte benutzt AsyncDownloadString


Ansonsten blockt ihr den ganzen Thread ab, weil der auf den Download wartet
Ausserdem mit try und catch arbeiten, sonst gibt es Exceptions die das Programm crashen lassen.

junior_no1 22.07.10 21:11

ich bedanke mich ^^

edit:

achja .ShoXx! ,
ftp-server kannste kostenlos bekommen bei anbietern wie
- [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
- [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
- [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

ich würde aber wenn kilu emfehlen
da gibt es 10 GB daten platz
unbegrenzten traffic
es ist auch nicht alles sichtbar für alle
und man kann bie 10 GB auf bis zu 100 verschiedene server teilen

.ShoXx! 25.07.10 16:14

Jop, ich weiß, brauch aber keinen:p trotzdem danke^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:57 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.