Seite 1 von 1

Zeichensatz

Verfasst: 14.08.2016 15:31
von samurai1967
Hallo,

habe gerade 5.50 mit einem Quellcode probiert, der unter 5.43 LTS einwandfrei läuft.

2 Probleme sind mir aufgefallen:

a.) Eine "Division durch Null" bei einer Zahl, die annährend Null ist. Bisher kein Problem.
Nun "glaubt" PB5.50 wahrscheinlich das wäre Null und bringt die Fehlermeldung.
Auch kommen diverse Messwerte aus dem Controller nun mit anderen Werten zurück.
Ev. muss ich hier ja generell nur auf einen anderen/genaueren Datentyp umsteigen, aber seltsam ist es schon.
Kann aber auch mit der Weiterverarbeitung von Auslesedaten aus Punkt b.) zusammen hängen.

b.) Eine Abfrage auf auf einem Microcontroller brachte als Ergebniss immer sauber Daten zurück:

Abfrage an den Controller:
SendNetworkString(ConnectionID, "Version \r\n")

Empfang der Daten und Weiterverarbeitung:
ReceiveNetworkData(ConnectionID, *Version, 200)
Version$=PeekS(*Version)

Unter 5.43 LTS sah das dann so aus:

Firmware:
uC: ATMega32
Ver: 1.03
NIC: ENC28J60

Einstellungen:
Board-IP: 192.168.1.90
Subnetz: 255.255.255.0
Gateway: 192.168.1.1

Unter 5.50 sieht das nun so aus:

Firmware:
䍵›呁敍慧㈳਍敖㩲ㄠ〮ള上䍉›久㉃䨸〶਍
Einstellungen:
Board-IP: 㤱⸲㘱⸸⸱〹਍Subnetz: 㔲⸵㔲⸵㔲⸵ര
Gateway: 㤱⸲㘱⸸⸱റ

Irgendwas wurde hier ja Richtung Zeichensatz ASCII, Unicode, UTF8, etc. geändert.
Ich frage mich natürlich, was da der Hintergrund für eine solche Änderung ist/war, und wie ich meinen Quellcode auf PB 5.50 wieder zum Laufen bringen kann.

Mir bleibt ja die LTS-Geschichte noch eine Weile erhalten, aber was passiert da bei 5.50 und folgende Versionen?

Ev. hat hier ja jemand eine entsprechende Antwort für mich.

Danke im Voraus.

Re: Zeichensatz

Verfasst: 14.08.2016 16:06
von ts-soft
Hier bist Du leider Total verkehrt gelandet :mrgreen:

An die Moderatoren: Bitte Thread verschieben nach "Anfänger oder Allgemein".

Ansonsten die Antwort zu Deiner Frage: Wie bereits seit langem angekündigt, wird als native Zeichencodierung
nur noch Unicode unterstützt. Das heißt, jeder String in Literalen ist jetzt Unicode. Im Speicher sind selbst-
verständlich andere Codierungen möglich. Also mit Pseudotypes, umwandeln durch Peek und Poke oder die
neuen Funktionen: UTF8("text") bzw. Ascii("text") nutzen.

Re: Zeichensatz

Verfasst: 14.08.2016 17:46
von HeX0R
Um bei Deinem Beispiel zu bleiben, es ist ganz simpel:

Code: Alles auswählen

;Abfrage an den Controller:
BytesSend = SendNetworkString(ConnectionID, "Version \r\n", #PB_Ascii)

;Empfang der Daten und Weiterverarbeitung:
BytesReceived = ReceiveNetworkData(ConnectionID, *Version, 200)
Version$ = PeekS(*Version, BytesReceived, #PB_Ascii)

Re: Zeichensatz

Verfasst: 14.08.2016 20:33
von samurai1967
Danke für die zügige Antwort und Entschuldigung dass ich das im Forum falsch platziert habe.

Re: Zeichensatz

Verfasst: 17.08.2016 08:40
von Velindos
Hallo Leute,

habe mir den neuen Release angeschaut und porbiert!

Da ich SQLite verwende, und hier das Editorgadget in Richtext abspeichere, zeigt mir nun das Ding den Richtext Code an!

NOTIZ$= GetDatabaseString(DB,2)
SetGadgetText(#EditorGadget,Notiz$)

Wie wandle ich meine Notizen wieder in eine lesbare Anzeige bzw. was passiert wenn ich die Notizen speichere, brauche ich dann eine neue Datenbank, weil die Notizen verschiedene Formate haben?

Ein weiters Problem habe ich bei meinen HTML-Lesezeichen die ich ins Webgadget lade. Hier erscheinen "?" nun in der Anzeige.

LesezeichenGerman:
IncludeBinary "Z:\Pure@Store\HTML\BROWSER\LesezeichenGerman.html": Data.b 0

Wie kann ich diese wieder Sichtbar laden. Vielleicht kann mir jemand helfen?

Zum Release selbst finde ich das er gelungen ist und die Sache schneller läuft, Danke!

Gruss ... Velindos

Tip am Rande:
Die Anzeige der Procedure im Proceduren Stamm, wenn man auf den Text der Procedure mit Strg+DPCLK drückt wäre noch ein Highlight?