Liebe Alle,
nachdem ihr mir zuletzt wirklich toll geholfen habt (auch wenn es manchmal teilweise etwas zu hoch für mich war), komme ich nun mit einem neuen Problem, für welches ich gerne eure Hilfe in Anspruch nehmen würde. Wie immer: Bitte um Nachsicht, ich bin kein (!) Könner!
Auf einer Form habe ich zwei Richtextboxen. Die eine heisst "txtBoxLeft", die andere heisst "txtBoxMain". In beide soll jeweils eine HTML-Seite geladen werden. In "Left" die Navigations-leiste, in "Main" quasi der Haupttext. Das ist aus einem fest bestehenden System auf das ich keinen Einfluss habe.
Eigentlich funktioniert "alles". Ich kann die Seiten laden, editieren und speichern. Zum Thema, funktioniert alles.
Ist nicht umsonst in Anführungszeichen geschrieben. Es sieht nach dem Laden gut aus - editieren sieht auch aus, als würde es gehen, aber spätestens nach dem Speichern zerhagelt es mir den Code (falsche Codierung). Aber wie ich dies richtig angehe, weiß ich nicht. Ich habe hier bereits Beispiele gesehen, diese waren aber zu spezifisch und ich konnte (vielleicht war ich auch auf den falschen Seiten) den richtigen Code bzw. eine Logik, die ich auch verstehe, nicht finden.
Mein Code sieht so aus (bitte nicht auslachen). Datei laden, Left (Navigations-Bar):
Datei laden, Main (Haupttext):
Dateien speichern:
Mir fehlt offenbar einfach noch zuviel Kenntnis, welche mal vor 11 Jahren da war..:
- wie öffne und speichere ich im richtigen Format? Ich denke mal, es ist UTF-8, bin mir aber nicht ganz sicher. Und wenn ja, wie geht das? Also was muss ich ändern oder ergänzen?
- kann man "auf die Schnelle" einen Parser bauen, der ü,ä und die üblichen Sonderzeichen "live", sprich beim Editieren (oder spätestens beim Speichern) richtig umwandelt?
Ich habe im gleichen Projekt z.B. für eine Textbox sämtliche Sonderzeichen gesperrt (Button XY (..) txtHeadingNavBar.KeyPress), da funktioniert das 1A. Aber bei einer RichtextBox scheint das meine Kompetenz total zu übersteigen (außerdem geht es in dem Fall nicht ums sperren sondern umwandeln).
Ich habe mich bereits bemüht, aber diese Funktion funktioniert nicht.. Vielleicht geht es einfacher, oder ... ich weiß nicht weiter.
Ich hoffe, ich habe mich so ausgedrückt, dass es einigermaßen verständlich ist. Über Hilfestellungen würde ich mich sehr freuen!
Beste Grüße, Alex
nachdem ihr mir zuletzt wirklich toll geholfen habt (auch wenn es manchmal teilweise etwas zu hoch für mich war), komme ich nun mit einem neuen Problem, für welches ich gerne eure Hilfe in Anspruch nehmen würde. Wie immer: Bitte um Nachsicht, ich bin kein (!) Könner!
Auf einer Form habe ich zwei Richtextboxen. Die eine heisst "txtBoxLeft", die andere heisst "txtBoxMain". In beide soll jeweils eine HTML-Seite geladen werden. In "Left" die Navigations-leiste, in "Main" quasi der Haupttext. Das ist aus einem fest bestehenden System auf das ich keinen Einfluss habe.
Eigentlich funktioniert "alles". Ich kann die Seiten laden, editieren und speichern. Zum Thema, funktioniert alles.
Ist nicht umsonst in Anführungszeichen geschrieben. Es sieht nach dem Laden gut aus - editieren sieht auch aus, als würde es gehen, aber spätestens nach dem Speichern zerhagelt es mir den Code (falsche Codierung). Aber wie ich dies richtig angehe, weiß ich nicht. Ich habe hier bereits Beispiele gesehen, diese waren aber zu spezifisch und ich konnte (vielleicht war ich auch auf den falschen Seiten) den richtigen Code bzw. eine Logik, die ich auch verstehe, nicht finden.
Mein Code sieht so aus (bitte nicht auslachen). Datei laden, Left (Navigations-Bar):
VB.NET-Quellcode
- Try
- '----------------from here left / navigation frame
- OpenFileDialogLeft.Filter = "HTML-Datei (*.html|HTML)"
- OpenFileDialogLeft.FileName = "left.html"
- resultleftFrame = OpenFileDialogLeft.ShowDialog()
- pathLeftFrame = OpenFileDialogLeft.FileName 'Get the file name.
- TextLeftFrame = File.ReadAllText(pathLeftFrame) 'Read in text.
- If resultleftFrame = Windows.Forms.DialogResult.OK Then ' Test result.
- lblLoadedLeftFrame.Text = "Datei geladen: " & pathLeftFrame
- 'seems fine.
- txtBoxLeft.Text = TextLeftFrame
- End If
- Catch ex As Exception
- MessageBox.Show(ex.Message) 'Errormsg
- End Try
Datei laden, Main (Haupttext):
VB.NET-Quellcode
- Try
- '----------------from here left / navigation frame
- OpenFileDialogMain.Filter = "HTML-File (*.html)|(*.HTML)"
- OpenFileDialogMain.FileName = "main.html"
- resultMainFrame = OpenFileDialogMain.ShowDialog()
- pathMainFrame = OpenFileDialogMain.FileName 'Get the file name.
- TextMainFrame = File.ReadAllText(pathMainFrame) 'Read in text.
- If resultMainFrame = Windows.Forms.DialogResult.OK Then ' Test result.
- lblLoadedMainFrame.Text = "Datei geladen: " & pathMainFrame
- 'seems just fine.
- txtBoxMain.Text = TextMainFrame
- End If
- Catch ex As Exception
- MessageBox.Show(ex.Message) 'Errormsg
- End Try
Dateien speichern:
VB.NET-Quellcode
- Try
- Dim File1Nav As String = String.Empty
- Dim File2Main As String = String.Empty
- If txtBoxLeft.Text <> "" Then
- File1Nav = LTrim(RTrim(txtBoxLeft.Text))
- Else
- MsgBox("Error, exiting this function", vbCritical)
- Exit Sub
- End If
- If txtBoxMain.Text <> "" Then
- File2Main = LTrim(RTrim(txtBoxMain.Text))
- Else
- MsgBox("Error, exiting this function", vbCritical)
- Exit Sub
- End If
- 'MsgBox("not implemented yet")
- SaveFileDialog.Filter = "HTML-File (*.html)|(*.HTML)"
- SaveFileDialog.FileName = "left.html"
- SaveFileDialog.AddExtension = True
- File1Nav = SaveFileDialog.FileName
- If SaveFileDialog.ShowDialog = Windows.Forms.DialogResult.OK AndAlso SaveFileDialog.FileName <> "" Then
- txtBoxLeft.SaveFile(SaveFileDialog.FileName, RichTextBoxStreamType.PlainText)
- End If
- SaveFileDialog.Filter = "HTML-File (*.html)|(*.HTML)"
- SaveFileDialog.FileName = "main.html"
- SaveFileDialog.AddExtension = True
- File2Main = SaveFileDialog.FileName
- If SaveFileMain.ShowDialog = Windows.Forms.DialogResult.OK AndAlso SaveFileMain.FileName <> "" Then
- txtBoxMain.SaveFile(SaveFileMain.FileName, RichTextBoxStreamType.PlainText)
- End If
- Catch ex As Exception
- MessageBox.Show(ex.Message) 'Errormsg
- End Try
Mir fehlt offenbar einfach noch zuviel Kenntnis, welche mal vor 11 Jahren da war..:
- wie öffne und speichere ich im richtigen Format? Ich denke mal, es ist UTF-8, bin mir aber nicht ganz sicher. Und wenn ja, wie geht das? Also was muss ich ändern oder ergänzen?
- kann man "auf die Schnelle" einen Parser bauen, der ü,ä und die üblichen Sonderzeichen "live", sprich beim Editieren (oder spätestens beim Speichern) richtig umwandelt?
Ich habe im gleichen Projekt z.B. für eine Textbox sämtliche Sonderzeichen gesperrt (Button XY (..) txtHeadingNavBar.KeyPress), da funktioniert das 1A. Aber bei einer RichtextBox scheint das meine Kompetenz total zu übersteigen (außerdem geht es in dem Fall nicht ums sperren sondern umwandeln).
Ich habe mich bereits bemüht, aber diese Funktion funktioniert nicht.. Vielleicht geht es einfacher, oder ... ich weiß nicht weiter.
VB.NET-Quellcode
- Public Function Correct_HTML_Syntax(strText As String) As String
- strText = Replace(strText, "&", "&")
- strText = Replace(strText, "Ä", "Ä")
- strText = Replace(strText, "Ö", "Ö")
- strText = Replace(strText, "Ü", "Ü")
- strText = Replace(strText, "ß", "ß")
- strText = Replace(strText, "ä", "ä")
- strText = Replace(strText, "ö", "ö")
- strText = Replace(strText, "ü", "ü")
- strText = Replace(strText, "À", "À")
- strText = Replace(strText, "à", "à")
- strText = Replace(strText, "Á", "Á")
- strText = Replace(strText, "©", "©")
- strText = Replace(strText, "®", "®")
- strText = Replace(strText, "–", "–")
- strText = Replace(strText, "—", "—")
- Correct_HTML_Syntax = strText
- End Function
Ich hoffe, ich habe mich so ausgedrückt, dass es einigermaßen verständlich ist. Über Hilfestellungen würde ich mich sehr freuen!
Beste Grüße, Alex