Seite 2 von 4
Re: Ascii bald ausgestorben?
Verfasst: 04.11.2015 14:23
von NicTheQuick
Andererseits würde es UTF8 da wohl auch nicht besser machen, da dort die Zeichen 1 bis 4 Bytes beanspruchen können. Da würde alleine der 'Len()'-Befehl länger brauchen. Und der wird ja intern bei vielen anderen String-Operationen benutzt. Ascii alleine würde nicht ausreichen, Unicode schon. Und die Interna von Purebasic werden auf jeden Fall einfacher zu handhaben, weil Fred nicht zweigleisig arbeiten muss.
Eine fünffache Geschwindigkeitseinbuße kann ich mir zwar nicht vorstellen, aber dass Unicode langsamer ist als Ascii, ist ja einleuchtend.
Re: Ascii bald ausgestorben?
Verfasst: 04.11.2015 14:37
von GronkhLP
Wie sieht es mit der Unterstützung älterer Betriebssysteme aus?

Welches Minimum OS wird nach der Unicode Umstellung sein? Ich spreche hier OS von MS.
Und noch was: Wie sieht es mit AESEncoder aus? In den zwei vorgegebenen Beispiel codes in der Help wird darauf hingeweisen,
dass die Codes im Ascii Modus kompiliert werden müssen. Wenn ich die Codes dennoch im Unicode Mode kompiliere,
bekomme ich chinesische Zeichen. Warum? Gibt es noch keine Unicode Version oder muss der Code anders lauten?
Code: Alles auswählen
; Sollte im Ascii-Modus kompiliert werden
;
String$ = "Hello this is a test for AES"
*CipheredString = AllocateMemory(Len(String$)+1) ; Platz für den null-terminierten String
*DecipheredString = AllocateMemory(Len(String$)+1) ; mit seiner abschließenden Null (ASCII-Modus)
If AESEncoder(@String$, *CipheredString, Len(String$), ?Key, 128, ?InitializationVector)
Debug "Ciphered: "+PeekS(*CipheredString)
AESDecoder(*CipheredString, *DecipheredString, Len(String$), ?Key, 128, ?InitializationVector)
Debug "Deciphered: "+PeekS(*DecipheredString)
EndIf
DataSection
Key:
Data.b $06, $a9, $21, $40, $36, $b8, $a1, $5b, $51, $2e, $03, $d5, $34, $12, $00, $06
InitializationVector:
Data.b $3d, $af, $ba, $42, $9d, $9e, $b4, $30, $b4, $22, $da, $80, $2c, $9f, $ac, $41
EndDataSection
Base64Encoder verhält sich auch anders.

Re: Ascii bald ausgestorben?
Verfasst: 04.11.2015 14:52
von edel
AESEncoder arbeitet mit einem Puffer. Wenn du nun Len im Unicodemodus benutzt bekommst du nur die Hälfte der Größe. Wenn du nun statt "len" einfach StringByteLength benutzt, sollte es funktionieren.
Re: Ascii bald ausgestorben?
Verfasst: 04.11.2015 15:08
von NeoChris
Warum wird überhaupt ASCII rausgeschmissen? Weil veraltet und kaum benutzt?
Re: Ascii bald ausgestorben?
Verfasst: 04.11.2015 15:12
von RSBasic
Fred hat geschrieben:Still supporting ASCII is a big work for us, as we need to provide duplicate fonctions when dealing with strings, which can leads to more bugs.
Re: Ascii bald ausgestorben?
Verfasst: 04.11.2015 16:05
von GPI
GronkhLP hat geschrieben:Gibt es noch keine Unicode Version oder muss der Code anders lauten?
An den Code ist sehr viel falsch. z.b. wird ein viel zu kleiner Speicherbereich genutzt. Oder das man mit peeks() den Ciphered string ausliest, das ist selbst mit ASCII unsinnig.
GronkhLP hat geschrieben:Base64Encoder verhält sich auch anders.

Eigentlich nicht. Base64Encoder arbeitet grundsätzlich nur mit Ascii (es werden nur die ersten 7 Bit genutzt + nur menschenlesbare Zeichen). Man muss ihn also mit Peeks() in Unicode umwandeln. Eine Unicode-Variante würde auch überhaupt keinen Sinn machen.
Welche Funktion soll denn gleich 5x langsamer sein?
__________________________________________________
Quote-Tags repariert
04.11.2015
RSBasic
Re: Ascii bald ausgestorben?
Verfasst: 04.11.2015 18:34
von mhs
GronkhLP hat geschrieben:Wie sieht es mit der Unterstützung älterer Betriebssysteme aus?

Welches Minimum OS wird nach der Unicode Umstellung sein? Ich spreche hier OS von MS.
Vermutlich Windows 2000, da ab dort UTF-16 intern verwendet wird.
GPI hat geschrieben:Welche Funktion soll denn gleich 5x langsamer sein?
Das würde mich auch interessieren, da Unicode nicht wirklich langsamer als ASCII ist. Erst wenn man variable Kodierungen wie UTF-8 verwendet bekommt man deutliche Geschwindigkeitsnachteile.
Allerdings sollte sich die Frage nach Performance / Speicherverbrauch gar nicht stellen, Unicode ist heutzutage der absolute Standard.
Re: Ascii bald ausgestorben?
Verfasst: 04.11.2015 18:52
von GPI
mhs hat geschrieben:GronkhLP hat geschrieben:Wie sieht es mit der Unterstützung älterer Betriebssysteme aus?

Welches Minimum OS wird nach der Unicode Umstellung sein? Ich spreche hier OS von MS.
Vermutlich Windows 2000, da ab dort UTF-16 intern verwendet wird.
Die minimum-Version dürfte eh schon höher liegen, da Win2000 kein GDI+ hat. Sowieso kann man eigentlich sagen, das man alles unter Vista aus Prinzip nicht mehr unterstützen sollte....
Re: Ascii bald ausgestorben?
Verfasst: 04.11.2015 18:54
von ts-soft
GronkhLP hat geschrieben:Wie sieht es mit der Unterstützung älterer Betriebssysteme aus?

Welches Minimum OS wird nach der Unicode Umstellung sein? Ich spreche hier OS von MS.
Es werde mindestens alle Betriebssysteme von MS unterstützt, die MS auch unterstützt, also ab Win 7?
PB unterstützt ab WinXP, also erst recht kein kein Problem

Re: Ascii bald ausgestorben?
Verfasst: 04.11.2015 20:06
von edel
ts-soft hat geschrieben:PB unterstützt ab WinXP, also erst recht kein kein Problem

Hab ich was verpasst? Wo ist denn der Windows 95 Support?