Zeichensatz

Alle Fragen zur Programmierung, die nicht in die speziellen Themen passen
Antworten
Melsmann
Foriker
Beiträge: 19
Registriert: Do 9. Mai 2019, 11:18
Kontaktdaten:

Zeichensatz

Beitrag von Melsmann » Mo 9. Sep 2019, 20:47

Moin mal wieder!
Ich habe ein Problem mit der Ausgabe von Umlauten in einem Textdokument:
Höchstgeschw. : 81 km / h gemessen
Datum : 16.08.19
Uhrzeit : 16.08.19
Messrichtung : kommend

Da sollte eigentlich "Höchstgeschw." stehen.

Dieser Code gibt die Textdatei aus:

Dim hDest As Stream
Dim sLine As String
hDest = Open "/home/burau/Dokumente/" & txtMessstellen_Name.text & ".txt" For Write
Print #hDest, "Auswertung für ..."
Print #hDest, "--------------------------------------------------"
Print #hDest, "Messstelle : " & txtMessstellen_Name.text
Print #hDest, "Von : " & txtMessstellen_Name.text
Print #hDest, "Bis : " & txtMessstellen_Name.text
Print #hDest, "--------------------------------------------------"
If chkBidirektional.value = 0 Then
Print #hDest, "Messrichtung : " & "kommend"
Else
Print #hDest, "Messrichtung : " & "bidirektional"
End If
If chkverdeckt.value = 0 Then
Print #hDest, "Verdeckt : " & "Nein"
Else
Print #hDest, "Verdeckt : " & "Ja"
End If
Print #hDest, "Höchstgeschw. : " & cboVmax.text
Print #hDest, "--------------------------------------------------"

Hat jemand ne Idee dazu?

Gruß Jürgen

gambasso
Foriker
Beiträge: 1047
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Zeichensatz

Beitrag von gambasso » Di 10. Sep 2019, 11:19

moin,

mit welchen Programm gibst Du den Text aus, bzw. wie wurde er erstellt? ist das 'HTML' oder so?
Gruss

Melsmann
Foriker
Beiträge: 19
Registriert: Do 9. Mai 2019, 11:18
Kontaktdaten:

Re: Zeichensatz

Beitrag von Melsmann » Di 10. Sep 2019, 17:18

Hallo Gambasso!

Der Text wird, wie man sieht, mit Gambas erstellt. Angezeigt wird er auf einer Internetseite in einem Text-Viewer. Hier zwei Beispiele:

http://www.melsdorf.de/1684.0.html?&L=uzuxzdvhbta

Das ist die durch Gambas erstellte Textdatei. Die ist ca. 900 Byte groß und das Textformat ist nicht ok.

http://www.melsdorf.de/1752.0.html?&L=uzuxzdvhbta

Diese Textdatei ist aus einem ähnlichen Programm erstellt, das ich damals noch in Visual Basic erstellt habe. Da wird augenscheinlich eine Formatierung mit gegeben, denn die Datei ist doppelt so groß.

Hier mal der Ausschnit aus dem VB-Code:

Dim sw2 As StreamWriter = New StreamWriter(path2, True, System.Text.Encoding.Unicode)
For a = 0 To lstAuswertung.Items.Count - 1
sw2.WriteLine(lstAuswertung.Items(a).ToString)
Next
sw2.Close()

Darum meine Frage, ob ich der Textdatei eine Formatierung mitgeben kann.

Gruss Jürgen

Benutzeravatar
PJBlack
Foriker
Beiträge: 29
Registriert: Sa 8. Dez 2018, 23:50
Kontaktdaten:

Re: Zeichensatz

Beitrag von PJBlack » Mi 11. Sep 2019, 04:33

Code: Alles auswählen

    Dim hDest As Stream
    Dim sLine As String

    Shell "touch ~/test.txt"
    hDest = Open "~/test.txt" For Write
    Print #hDest, "Auswertung für ..."
    Print #hDest, "--------------------------------------------------"
    Print #hDest, "Messstelle : " & "blahblubb"
    Print #hDest, "Von : " & Now()
    Print #hDest, "Bis : " & Now()
    Print #hDest, "--------------------------------------------------"
    If True Then
        Print #hDest, "Messrichtung : " & "kommend"
    Else
        Print #hDest, "Messrichtung : " & "bidirektional"
    End If
    If True Then
        Print #hDest, "Verdeckt : " & "Nein"
    Else
        Print #hDest, "Verdeckt : " & "Ja"
    End If
    Print #hDest, "Höchstgeschw. : " & "100"
    Print #hDest, "--------------------------------------------------"
    hDest.Close
ergibt bei mir:

Code: Alles auswählen

cat test.txt
Auswertung für ...
--------------------------------------------------
Messstelle : blahblubb
Von : 09/11/2019 03:28:01.326
Bis : 09/11/2019 03:28:01.326
--------------------------------------------------
Messrichtung : kommend
Verdeckt : Nein
Höchstgeschw. : 100
--------------------------------------------------
auch im browser werden bei mir die umlaute korrekt angezeigt ... liegt also wohl eher nicht an gambas

gambasso
Foriker
Beiträge: 1047
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Zeichensatz

Beitrag von gambasso » Mi 11. Sep 2019, 11:01

moin,

habe mir das mal angesehen. Die Texte mit den Umlaute holst Du von einer anderen Seite. Da wird er schon falsch dargestellt. Wende dich an den Hersteller dieser Seite.
Gruss

Melsmann
Foriker
Beiträge: 19
Registriert: Do 9. Mai 2019, 11:18
Kontaktdaten:

Re: Zeichensatz

Beitrag von Melsmann » Mi 11. Sep 2019, 12:30

Moin nochmal,

@Gambaso: Beide Dateien kommen vom selben Server, aus dem selben Verzeichnis und mit dem selben Viewer. Nur die Gambas-Datei ist falsch und die VB-Datei ist richtig. :? Das kann's also nicht sein...

Ich habe mir mein altes Programm noch einmal angesehen: Ich schreibe dort die Texte erst zur Vorschau in eine Listbox. Erst dann in ein Textfile. In Gambas schreibe ich direkt in das Textfile. Vielleicht läßt sich das Problem dadurch lösen, das ich den gleichen Weg wie unter VB gehe...

Vielen Dank erstmal...

Melsmann

gambasso
Foriker
Beiträge: 1047
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Zeichensatz

Beitrag von gambasso » Mi 11. Sep 2019, 13:45

ja, welcher Sever ist das? Wenn ich die Seite mit FF aus dem Netz lade, sind die Umlaute nicht korrekt dargestellt!
Nur die Gambas-Datei ist falsch und die VB-Datei ist richtig.
Was ist die Gambas-Datei ? Wie sieht sie aus?
Was ist bei Dir die VB-Datei ?
Gruss

Melsmann
Foriker
Beiträge: 19
Registriert: Do 9. Mai 2019, 11:18
Kontaktdaten:

Re: Zeichensatz

Beitrag von Melsmann » Mi 11. Sep 2019, 15:12

So, dann hier nochmal:
Beide Links führen zu dem selben Server, auf dem die Seiten unserer VHS liegen. Was das für einer ist, weiß ich nicht.
Der erste Link (falsche Umlaute) öffnet ein Textfile, das ich mit Gambas erstellt habe.
Der zweite Link (richtige Umlaute) öffnet ein Textfile, das ich vor einiger Zeit mit einem Programm geschrieben habe, das mit Visual Studio 2013 unter Windows (VB) programmiert war, aber beim Plattencrash kaputt gegangen ist.

Der Hauptunterschied bei der Erstellung der Textdateien ist folgender:

Im VB-Code habe ich alle Zeilen zuerst ich eine Listbox geschrieben (als Vorschau) und dann mit dem StreamWriter ins Textfile

Dim sw2 As StreamWriter = New StreamWriter(path2, True, System.Text.Encoding.Unicode)
Augenscheinlich bewirkt der Befehl ...System.Text.Encoding.Unicode... die Formatierung des Textes.

Bei Gambas schreibe ich Zeile für Zeile direkt ins Textfile.

gambasso
Foriker
Beiträge: 1047
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Zeichensatz

Beitrag von gambasso » So 15. Sep 2019, 18:04

moin,

irgendwie blicke ich da nicht durch.

Warum benutzt Du zur Erstellung der Seite nicht ein dazu gemachtes Programm? (geany, bluefish,...)
Auch unter Gambas gibt es ein 'WebView'. Dieser zeigt HTML-Files an. Habe z.B. zu meinen Gambas-Programmen Hilfeseiten in HTML (mit geany) erstellt und kann diese auch in einer 'WebView' unter Gambas sehen.

Nach solchen Vorgehen sehe ich dann auch gleich die von mir gemachten Fehler.
Gruss

Melsmann
Foriker
Beiträge: 19
Registriert: Do 9. Mai 2019, 11:18
Kontaktdaten:

Re: Zeichensatz

Beitrag von Melsmann » So 15. Sep 2019, 21:20

Sodele,

ich habe jetzt den Weg gefunden, um die Zeichen richtig darzustellen: Die Lösung ist der $Conv-Befehl.
Wenn ich die einzelnen Zeilen beim Schreiben in einen anderen Zeichensatz konvertieren, dann funktioniert es auch...

Write #hDest, Conv$(lstAuswertung[a].text, System.Charset, "ISO 8859-15") & gb.NewLine

Das ist die Lösung, die ich seit einer Woche suche...

Melsmann

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste