Für allgemeine Fragen zur Programmierung mit PureBasic.
funkheld
Beiträge: 636 Registriert: 31.12.2009 11:58
Beitrag
von funkheld » 23.02.2018 20:38
Hallo, guten Tag.
Ich empfange von einem TCP-Server Daten die ich umwaneln muss.
WEr kann mir das unten bitte einmal in Purebasic umwandeln ?
Code: Alles auswählen
Function fnConvertFromAnsi:String(text:String)
Local str:String = ""
Local count:Int = Len(text)
For Local k:Int = 0 Until count
If(text[k] >= 192 And text[k] <= 255)
str:+Chr(text[k] - 192 + 1040)
ElseIf(text[k] = 168) 'Ё
str:+Chr(1025)
ElseIf(text[k] = 184) 'ё
str:+Chr(1105)
Else
str:+Chr(text[k])
EndIf
Next
'DebugLog "'" + str + "'"
Return str
End Function
Danke.
Gruss
mk-soft
Beiträge: 3701 Registriert: 24.11.2004 13:12
Wohnort: Germany
Beitrag
von mk-soft » 23.02.2018 21:17
Das erledigt doch Purebasic für dich
RSBasic
Admin
Beiträge: 8022 Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:
Beitrag
von RSBasic » 23.02.2018 21:18
Ich frage mich, mit welcher Programmiersprache du schreibst? Anscheinend verwendest du mal die Sprache und mal PB. Ist es nicht sinnvoller, eine Sprache für die Anwendungsentwicklung zu nehmen? Sonst musst du nicht ständig von A nach B konvertieren.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
funkheld
Beiträge: 636 Registriert: 31.12.2009 11:58
Beitrag
von funkheld » 23.02.2018 22:28
Danke für die Indfo.
Das wusste ich nicht.
Gruss
Andre
PureBasic Team
Beiträge: 1755 Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8 Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:
Beitrag
von Andre » 24.02.2018 01:56
Das hilft dir vielleicht nicht direkt, aber für das Umwandeln von Sonderzeichen in übliche deutsche Buchstaben habe ich im englischen Forum selbst einen Thread laufen und dort heute auch eine eigene Lösung zum Konvertieren gepostet:
http://www.purebasic.fr/english/viewtop ... 13&t=52782
funkheld
Beiträge: 636 Registriert: 31.12.2009 11:58
Beitrag
von funkheld » 24.02.2018 13:17
Danke.
Werden bei Ansi immer 2 Byte für einen Buchstaben genommen?
Gruss
_JON_
Beiträge: 389 Registriert: 30.03.2010 15:24
Beitrag
von _JON_ » 24.02.2018 16:08
MultiByteToWideChar_() sollte doch mit den Sonderzeichen klar kommen.
Musst nur die Codepage der Quell kennen
PureBasic 5.46 LTS (Windows x86/x64) | windows 10 x64 Oktober failure
Bisonte
Beiträge: 2430 Registriert: 01.04.2007 20:18
Beitrag
von Bisonte » 24.02.2018 16:59
_JON_ hat geschrieben: MultiByteToWideChar_() sollte doch mit den Sonderzeichen klar kommen.
Musst nur die Codepage der Quell kennen
Für Windows mag das gelten... Aber ich nehme bei Andre an, das soll auch auf Mac und Linux laufen...
P ureB asic 6.10 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom
Andre
PureBasic Team
Beiträge: 1755 Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8 Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:
Beitrag
von Andre » 25.02.2018 00:55
Bisonte hat geschrieben: _JON_ hat geschrieben: MultiByteToWideChar_() sollte doch mit den Sonderzeichen klar kommen.
Musst nur die Codepage der Quell kennen
Für Windows mag das gelten... Aber ich nehme bei Andre an, das soll auch auf Mac und Linux laufen...
So ist es - auf Windows und MacOS
(und daher nach Möglichkeit ohnehin ohne API-Befehle)