Webgadget mit ?????????

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Webgadget mit ?????????

Beitrag von Velindos »

Hallo Leute,
wenn ich die Page ins WebGadget lade, sehe ich unter
Quellencode das mit "????????????????" angehängt werden.

Code: Alles auswählen

; Page ins WEBGADGET
SetGadgetItemText(#WebGadget, #PB_Web_HtmlCode, PeekS(?HELP_GERMAN,-1,#PB_Unicode))
DataSection
HELP_GERMAN:
IncludeBinary "D:\[Pure@API]\[DESKTOP]\[BLACK_UP]\HELP\HELP_GERMAN.html": Data.b 0
EndDataSection
Obwohl ich im Betrachter nichts davon sehe!

Jeman einen TIP?

Gruss ... Velindos!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Webgadget mit ?????????

Beitrag von RSBasic »

Deine HTML-Datei ist wahrscheinlich im UTF-8 gespeichert. Deshalb musst du auch mit #PB_UTF8 peeken.
Mit folgender Zeile geht es:

Code: Alles auswählen

SetGadgetItemText(#WebGadget, #PB_Web_HtmlCode, PeekS(?HELP_GERMAN, -1, #PB_UTF8))
Wenn es auch nicht klappt, dann versuch es mit #PB_Ascii, je nachdem in welcher Kodierung deine HTML-Datei gespeichert wurde.
Das kannst du sowohl in Notepad als auch in einem anderen Textbearbeitungsprogramm wie Notepad++ ermitteln.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Velindos
Beiträge: 598
Registriert: 15.11.2010 10:56

Re: Webgadget mit ?????????

Beitrag von Velindos »

Hallo,
Danke für den Tip!

Hab die Sache als #PB_Unicode gespeichert! Nun geändert auf #PB_Ascii und es klappt!

Code: Alles auswählen

If CreateFile(0,HtmlExporter$)
  ; CLEAR
  HTML_Seite = ""
  ; BUSY
  ; WebGadgetBusy(#iPage_Browser)
  ; iPage
  HTML_Seite = GetGadgetItemText(#iPage_Browser, #PB_Web_HtmlCode)
  ; BLOB
  ; WriteStringFormat(0, #PB_Unicode)
  ; Geändert
  WriteStringFormat(0, #PB_Ascii)
  ; STRING
  ; WriteStringFormat(0, #PB_Unicode)
  ; Geändert
  WriteStringFormat(0, #PB_Ascii)
  ; Close
  CloseFile(0)
EndIf
Was mir nicht klar ist, warum es auf #PB_Unicode zu den "?" gekommen ist?

Gruss ... Velindos!
Windows 7/8/8.1/10 (32/64-Bit) |Ubuntu 10.4 (64-Bit) |Purebasic 5.71 LTS (32/64-Bit)
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Webgadget mit ?????????

Beitrag von RSBasic »

Du kannst die Rückgabe von PeekS() ausgeben lassen, dann siehst du die richtigen Zeichen. Es sind nicht "???", sondern andere Zeichen.
"???" wird nur im WebGadget dargestellt, weil der Internet Explorer diese Zeichen nicht darstellen kann.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
¯\_(ツ)_/¯
Beiträge: 141
Registriert: 18.08.2017 09:35

Re: Webgadget mit ?????????

Beitrag von ¯\_(ツ)_/¯ »

@rs: Wie ermittelt man den in notepad ob utf8 oder unicode oder ascii ist? In meiner Status Bar
sehe ich nur Zeile und Spalte.
Bild
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Webgadget mit ?????????

Beitrag von RSBasic »

Du kannst nach dem Öffnen der Datei auf "Speichern unter" klicken, dann siehst du unten rechts im Dialog, mit welchem Zeichensatz die Datei kodiert ist.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
freak
PureBasic Team
Beiträge: 766
Registriert: 29.08.2004 00:20
Wohnort: Stuttgart

Re: Webgadget mit ?????????

Beitrag von freak »

Velindos hat geschrieben:Was mir nicht klar ist, warum es auf #PB_Unicode zu den "?" gekommen ist?
Weil du die DataSection mit "Data.b 0" terminiert hast. Unicode Strings müssen aber mit 2 Nullbyte terminiert werden. "Data.w 0" wäre also nötig gewesen. Desshalb hat das PeekS über das Ende hinaus gelesen.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8677
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Webgadget mit ?????????

Beitrag von NicTheQuick »

[Klugscheißmodus]
Data.u 0
Denn u steht für Unicode, auch wenn Words genau so breit sind. <)
[/Klugscheißmodus]
Bild
Antworten