ScintillaGadget und Umlaute...

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Ghosty1967
Beiträge: 203
Registriert: 29.08.2005 13:56
Computerausstattung: Intel i7, 128GB Ram, Win10 Ultimate, PB6.00 Alpha 3
Wohnort: Köln

ScintillaGadget und Umlaute...

Beitrag von Ghosty1967 »

Hallo zusammen,
ich verwende in einem Programm das Scintilla Gadget. Alles funktioniert eigentlich wirklich wunderbar bis auf die
Tatsache, das sämtliche Umlaute in Texten, welche ich in das ScintillaGadget lade nicht als diese dargestellt werden. Wie
muss ich denn vorgehen, wenn ich sicherstellen möste, das die Umlaute auch dargestellt werden?

Hier ein Auszug aus dem Programmcode um eine Textdatei in das Gadget zu laden. Was mache ich denn falsch oder habe
ich vergessen?

Code: Alles auswählen

Procedure LoadEditorFile(filename.s)
  If filename = ""
    filename = OpenFileRequester("Datei öffnen", "", "Alle Dateitypen (*.*)|*.*", 0)
  else
    file.l = ReadFile(#PB_Any, filename)
    If file <> 0
      len.l = Lof(file)
      *mem = AllocateMemory(len)
      If *mem
        ReadData(file, *mem, len)
        ScintillaSendMessage(#EDT_ROWEDITOR, #SCI_SETTEXT, 0, *mem)
        FreeMemory(*mem)
      EndIf
      CloseFile(file)
    EndIf
  EndIf
EndProcedure
Andesdaf
Moderator
Beiträge: 2659
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Re: ScintillaGadget und Umlaute...

Beitrag von Andesdaf »

Probier mal, den Text UTF-8-kodiert ins ScintillaGadget zu übergeben.
Win11 x64 | PB 6.00 (x64)
Benutzeravatar
Ghosty1967
Beiträge: 203
Registriert: 29.08.2005 13:56
Computerausstattung: Intel i7, 128GB Ram, Win10 Ultimate, PB6.00 Alpha 3
Wohnort: Köln

Re: ScintillaGadget und Umlaute...

Beitrag von Ghosty1967 »

was ich schon ohne Erfolg versucht habe ist beim Initialisieren des Gadgetgets direkt UTF8-Codierung anzugeben mit

Code: Alles auswählen

  ScintillaSendMessage(#EDT_ROWEDITOR, #SCI_SETCODEPAGE, #SC_CP_UTF8)
als auch beim Einlesen der Textdatei in den Speicher das Flag #PB_UTF8 anzugeben

Code: Alles auswählen

  ReadFile(#PB_Any, filename, #PB_UTF8)
leider beides ohne Erfolg (Wobei auch die anderen Codepage-Parameter bei ReadFile hier keinen Einfluss haben)
So wird z.B das Wort "Zugungück" im ScintillaGadget als "ZugunglxFCck oder das Wort
"Mädchen" als "MxE4dchen" angezeigt...
Wie kann man hier Sicherstellen, dass der Text "richtig" dargestellt wird?
Benutzeravatar
#NULL
Beiträge: 2235
Registriert: 20.04.2006 09:50

Re: ScintillaGadget und Umlaute...

Beitrag von #NULL »

Was du bei ReadFile() angibst ist die Codierung der zu lesenden Datei. Der String den du erhältst ist immer utf-16. Darum musst du ihn mit UTF8() umwandeln (siehe Doku zu ScintillaGadget()). Du kannst die gesamte Datei übrigens auch mir ReadString(... #PB_File_IgnoreEOL) einlesen. Dann hast du utf-16 und musst mit UTF8() umwandeln. Wenn du sicher bist das die Datei schon utf-8 ist und sie direkt in einen Buffer laden willst, dann musst du denke ich trotzdem vorher das BOM von LOF() weg rechnen etc. und erst dahinter lesen.
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: ScintillaGadget und Umlaute...

Beitrag von ts-soft »

Erstmal die richtige Einstellung für die IDE

IDE : Datei : Datei-Format = Codierung: UTF-8
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kiffi
Beiträge: 10621
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: ScintillaGadget und Umlaute...

Beitrag von Kiffi »

@Ghosty1967:

Vielleicht können wir besser helfen, wenn Du uns die einzulesende Originaldatei zur Verfügung stellst (beispielsweise über Filehorst).

Grüße ... Peter
Hygge
Benutzeravatar
mk-soft
Beiträge: 3700
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: ScintillaGadget und Umlaute...

Beitrag von mk-soft »

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Ghosty1967
Beiträge: 203
Registriert: 29.08.2005 13:56
Computerausstattung: Intel i7, 128GB Ram, Win10 Ultimate, PB6.00 Alpha 3
Wohnort: Köln

Re: ScintillaGadget und Umlaute...

Beitrag von Ghosty1967 »

Erstmal Danke ich für die Tipps...
ich probiere mal ein bisschen rum und melde mich dann wieder :mrgreen:
Danke nochmal
Antworten