SaveFileDialog -----> Visual Basic Express 2005

V

velderboard

Gast
Hallo miteinander, ich wollte einen kleinen Texteditor programmieren.
Zuvor habe ich einen Webbrowser programmiert (Druckfunktion, Zurück-->Vor-->Neu laden usw.)
Nun möcht ich mit ner RichTextBox oder ner TextBox einen Texteditor programmieren.
Hab alles gemacht, menü Datei-->Speichern eingerichtet, doppelt auf speichern geklickt.
Nun muss ich ein Code zum speichern eingeben. welchen? was auch immer ich mach es geht nicht :-(
grüsse
 
Hab sowas mal in VBA gemacht. Hab den code leider nicht hier, erst heute Abend...
Vorerst könntest du dir mal das Anschauen


Klick'sen
Edit:
Klick2

Vielleicht hilft das ja schon. War übrigens 10 Sekunden google ;).

Cheers
 
Zuletzt bearbeitet:
noname17 schrieb:
Komplettzitat entfernt.

Vielen Dank, werde mir das anschauen
Im anhang mal mein Webbrowser

also der dialog kommt aber jetzt muss ich doch den Savefiledialog mit dem textfeld verbinden. wie geht das? beim webbrowser wars einfach: "WebBrowser1.Print()" fertig ....
 

Anhänge

Zuletzt bearbeitet von einem Moderator: (Beiträge zusammengeführt. Komplettzitat entfernt. Regeln beachten!)
Mit einem solchen Dialog kannst Du lediglich den Benutzer eine Datei auswählen lassen. Das Einzige was Du erhältst, ist ein String mit dem Pfad der Datei, in welcher der Benutzer seinen Text abspeichern möchte.

Du musst den Text aus der Textbox nun noch in diese Datei schreiben. Habe jetzt kein Visual Studio parat, aber es gibt solche Stream-Klassen (eventuell FileStream ???), mit denen man Dateien zum Schreiben öffnen kann. Da musst Du einfach mal in der MSDN-Doku nachschlagen. Meines Wissens gibt es auch unter "Gewusst wie" eine Anleitung: Schreiben von Textdateien.

Wenn Du einmal einen Stream für die Datei geöffnet hast, kannst Du mittels
Code:
stream.Write(textBox.Text)
den Inhalt des Textfeldes in die Datei schreiben. Vergiss nicht, den Stream danach zu entleeren (Flush) und zu schließen (Close).
 
Danke :-)
Also das schreiben in eine Datei hab ich geschafft und zwar mit folgendem Code:

SaveFileDialog1.ShowDialog()
Dim dat As New IO.FileStream(SaveFileDialog1.FileName, IO.FileMode.Create)
Dim writer As New IO.StreamWriter(dat)
writer.Write(TextBox1.Text)
writer.Close()
dat.Close()


grüsse

wenn ich dann aber im "Speichern" dialog auf abbrechen klick kratzt das proggi ab :-(

Noch offene Probleme:

Öffnen einer Datei
Das mit "Auf abbrechen klicken" ;-)

danke und grüsse
 
Zuletzt bearbeitet von einem Moderator: (Beiträge zusammengeführt. Regeln beachten!)
Du musst das Ergebnis des Datei-Dialogs natürlich abfragen:
Code:
If SaveFileDialog1.ShowDialog() = DialogResult.OK Then
  Dim dat As New IO.FileStream(SaveFileDialog1.FileName, IO.FileMode.Create)
  Dim writer As New IO.StreamWriter(dat)
  writer.Write(TextBox1.Text)
  writer.Close()
  dat.Close()
End If
Achtung! Ich kann den Code momentan nicht testen, es können also Syntaxfehler enthalten sein. Ich bin mir aber ziemlich sicher, dass die Dialog-Rückgabewerte in DialogResult stehen. :freaky:

Öffnen funktioniert analog, nur eben mit einem StreamReader.
 
danke, hat SUPER funktioniert.

nur noch das Problem wie ich ein File (TXT) einlese ;)
Vielen Dank
Patrick

Prypjat schrieb:
Komplettzitat entfernt.

------>Öffnen funktioniert analog, nur eben mit einem StreamReader
Könntest du mir vielleicht ein Code dazu geben? Danke :D:)
 
Zuletzt bearbeitet von einem Moderator: (Beiträge zusammengeführt. Komplettzitat entfernt. Regeln beachten!)
Noch was.
Code:
Dim datei As New IO.StreamWriter = IO.File.CreateText(pfad)
datei.Write(inhalt)
datei.Close()
Sollte eig. auch gehen (allerdinhs nur für reinen Text. Sonst statt CreateText einfach Create verwenden. Und unten Open statt OpenText)

Und zum lesen dann:
Code:
Dim datei As New IO.StreamReader = IO.File.OpenText(pfad)
inhalt = datei.ReadToEnd()
datei.Close

(jedenfalls in C#, aber die funtktionieren ja fast gleich)

in c#:
Code:
StreamReader sr = File.OpenText("test.txt");
string inhalt = sr.ReadToEnd();
sr.Close();

StreamWriter sw = File.CreateText("test.txt");
sw.Write(inhalt);
sw.Close();

mfg

/edit:
Zu deinem Browser:
Ansich schonmal nicht schlecht.. Aber was noch wichtig wäre, der Browser sollte beim Vergrößern des Fensters auch größer werden.
Am einfachsten geht das, mit Dock = Fill (hieß glaube ich so)
Oder aber du benutzt das Form.Resize Event und änderst Entsprechend dem Fenster die Browser Width und Height.
Die Addressleiste könnte dann genauso noch größer werden.
Außerdem geht Datei>Beenden nicht. Der "X" Knopf hat auch keine Auswirkung.
Und du könntest über da KeyPressed Event der Adressleiste noch Enter abfangen, dass man nicht immer auf Go! drücken muss.
Dann noch dafür sorgen, dass wenn man weitersurft die Adressleiste aktualisiert wird.
Außerdem Hilft es die Buttons nach ihrem Zweck zu benennen.
Also nicht Button1 Button2 etc sondern btnWeiter btnZurueck etc
 
Zuletzt bearbeitet: (browser)
Backslash schrieb:
Komplettzitat entfernt.

Hi
Danke für deine Antwort.
Beim Debugger kommt, dass "Der name datei nicht deklariert ist" :-(
Mein Code bis jetzt (Zum was öffnen)

If OpenFileDialog1.ShowDialog() = DialogResult.OK Then

End If

Grüsse

p.s: Das X beim Browser heisst STOP, das laden der site abbrechen.
Das mit dem vergrössern des Webbrowsers schau ich mir an
Kannst du mir sagen wie ich den Titel der Website in den TITEL des Programms bringe?

Danke :-)
 
Zuletzt bearbeitet von einem Moderator:
Zum Browser:
Soweit ich weiß ist Me in VB die this-Entsprechung (die Klasse in der die Methode oder befindet), also in dem Fall das Form.
Also ginge das zB so: (In den DocumentCompleted- oder DocumentTitleChanged-EventHandler packen)
Code:
Me.Text = browser.DocumentTitle & " - Browser"
=> WebBrowser.DocumentTitle ist der Seitentitel.

Zu dem "Name der Datei nicht deklariert":
Klingt danach, dass die Variable "pfad" nicht deklariert wurde.
Das Datei öffnen würde ich so machen:
Code:
' Hab mal alles kommentiert, da du auf mich keinen sehr erfahrenen Eindruck machst ;)
Private Function Oeffnen() As String
        ' Die Variablen Deklarieren
        Dim dlgOpen As New OpenFileDialog
        Dim inhalt As String

        dlgOpen.Title = "Datei öffnen" ' der Titel des Dialogs
        dlgOpen.Filter = "*.txt (Textdateien)|*.txt|*.* (Alle Dateien)|*.*" ' der Datei-Filter Sicher irgendwo im Netz nachzulesen...
        dlgOpen.ShowDialog() ' den Dialog anzeigen
        If IO.File.Exists(dlgOpen.FileName) Then
            Dim srDatei As New IO.StreamReader(dlgOpen.FileName) ' StreamReader Erstellen und Datei öffnen
            inhalt = srDatei.ReadToEnd() ' Datei in den String "inhalt" einlesen
            srDatei.Close() ' Datei schließen
            Return inhalt ' Inhalt zurückgeben
        Else
            Return "Keine Datei ausgewählt" ' ...oder eine alternative Meldung.
        End If
    End Function
edit: code korrigiert

Die Methode zeigt den Dialog an, Liest die Datei und gibt den Inhalt zurück. Du kannst dir zB Titel und Filter noch anpassen.

Hoffe es hilft.. Konnte den Code nicht testen, da ich kein VB installiert habe.

mfg
 
Zuletzt bearbeitet: (codekorrektur)
Fehler 1 "end of"-Anweisung erwartet. C:\Users\Patrick\Documents\Visual Studio 2005\Projects\VelderBoard Textedit\VelderBoard Textedit\Form1.vb 7 27 VelderBoard Textedit
Fehler 2 "Text" ist kein Member von "System.Windows.Forms.OpenFileDialog". C:\Users\Patrick\Documents\Visual Studio 2005\Projects\VelderBoard Textedit\VelderBoard Textedit\Form1.vb 11 9 VelderBoard Textedit
Fehler 3 "end of"-Anweisung erwartet. C:\Users\Patrick\Documents\Visual Studio 2005\Projects\VelderBoard Textedit\VelderBoard Textedit\Form1.vb 15 38 VelderBoard Textedit
Fehler 4 Der Name "srDatei" wurde nicht deklariert. C:\Users\Patrick\Documents\Visual Studio 2005\Projects\VelderBoard Textedit\VelderBoard Textedit\Form1.vb 16 22 VelderBoard Textedit
Fehler 5 Der Name "srDatei" wurde nicht deklariert. C:\Users\Patrick\Documents\Visual Studio 2005\Projects\VelderBoard Textedit\VelderBoard Textedit\Form1.vb 17 13 VelderBoard Textedit
Fehler 6 Eine Return-Anweisung in "Sub" oder "Set" kann keinen Wert zurückgeben. C:\Users\Patrick\Documents\Visual Studio 2005\Projects\VelderBoard Textedit\VelderBoard Textedit\Form1.vb 18 13 VelderBoard Textedit
Fehler 7 Eine Return-Anweisung in "Sub" oder "Set" kann keinen Wert zurückgeben. C:\Users\Patrick\Documents\Visual Studio 2005\Projects\VelderBoard Textedit\VelderBoard Textedit\Form1.vb 20 13 VelderBoard Textedit


Sind die Fehler :-(
 
Lol.. zu lang kein VB programmiert.. ich schaus mir nochmal an..

zu dem Dialog.Text kann ich schon sagen: heißt wohl doch Title

und heißt's evtl. Function statt Sub ?
 
Zuletzt bearbeitet:
Backslash schrieb:
Komplettzitat entfernt.

hehe :D:D:D

Hab mir erlaubt deienen Code anzupaassen :D

Code:
Me.Text = WebBrowser1.DocumentTitle & " - VelderBoard Browser"

Kommt im TITEL leider nur " - VelderBoard Browser"
 
Zuletzt bearbeitet von einem Moderator:
Jo hast recht so erfahren bin ich noch nicht ;-)

Das gibt noch fehler aus:
Code:
= IO.File.OpenText(dlgOpen.FileName) ' StreamReader Erstellen und Datei öffnen
und das:
Code:
srDatei
 
Also:
So gehts bei mir (hab schnell VB installiert):
Code:
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        Me.Text = WebBrowser1.DocumentTitle & " - Browser"
    End Sub
Code:
Private Function Oeffnen() As String
        ' Die Variablen Deklarieren
        Dim dlgOpen As New OpenFileDialog
        Dim inhalt As String

        dlgOpen.Title = "Datei öffnen" ' der Titel des Dialogs
        dlgOpen.Filter = "*.txt (Textdateien)|*.txt|*.* (Alle Dateien)|*.*" ' der Datei-Filter Sicher irgendwo im Netz nachzulesen...
        dlgOpen.ShowDialog() ' den Dialog anzeigen
        If IO.File.Exists(dlgOpen.FileName) Then
            Dim srDatei As New IO.StreamReader(dlgOpen.FileName) ' StreamReader Erstellen und Datei öffnen
            inhalt = srDatei.ReadToEnd() ' Datei in den String "inhalt" einlesen
            srDatei.Close() ' Datei schließen
            Return inhalt ' Inhalt zurückgeben
        Else
            Return "Keine Datei ausgewählt" ' ...oder eine alternative Meldung.
        End If
    End Function
 
hoho geiler Browser. Danke!!! Das einzige was ich noch vermisse ist dass die URL in der TextBox1 nicht aktualisiert wird.

Das mit dem Öffnen wird gleich probiert. Hab übrigens noch n ImageReader geschrieben :)

grüsse und natürlich Danke :)

Also beim Texteditor wenn ich auf "Öffnen" klick passiert nichts. OpenFileDialog wird glaub auch nicht aufgerufen??
 
Zuletzt bearbeitet von einem Moderator: (Beiträge zusammengeführt. Regeln beachten!)
Das geht dann mit WebBrowser.Url, also
Code:
txtURL.Text = WebBrowser.Url
(sollte es jedenfalls ;))

Hast du denn die Funktion aufgerufen oder den Text der Funktion in den Click-EventHandler des Buttons gepackt?
 
Fehler 1 Der Name "txtURL" wurde nicht deklariert. C:\Users\Patrick\Documents\Visual Studio 2005\Projects\VelderBoard Browser\VelderBoard Browser\Form1.vb 16 9 VelderBoard Browser
 
Oh hab ich übersehen

Jetzt hab ich das:
Code:
TextBox1.Text = WebBrowser1.Url
.
Das wird als Fehler markiert: "WebBrowser1.Url"

Fehler 1 Der Wert vom Typ "System.Windows.Forms.WebBrowser" kann nicht zu "String" konvertiert werden. C:\Users\Patrick\Documents\Visual Studio 2005\Projects\VelderBoard Browser\VelderBoard Browser\Form1.vb 16 25 VelderBoard Browser
 
Zuletzt bearbeitet von einem Moderator: (Beiträge zusammengeführt. Regeln beachten!)
Zurück
Oben