Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

UTF-32 in FreeBasic geht das?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Caran



Anmeldungsdatum: 11.03.2007
Beiträge: 290
Wohnort: Lörrach

BeitragVerfasst am: 14.08.2007, 12:46    Titel: UTF-32 in FreeBasic geht das? Antworten mit Zitat

Hallo erstmal,
ich wollte einen 32-bit Wert, also einen Integer, als Zeichen in eine Datei schreiben. Nun habe ich irgendwo gelesen, dass FreeBasic nur mit ASCII Zeichen auskommt. Gibt es trotzdem eine Möglichkeit in FreeBasic mit UTF-32 Zeichen zu arbeiten oder ist das nicht Möglich?
Mfg Caran
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 14.08.2007, 19:47    Titel: Antworten mit Zitat

Hi,
gehen tut es evtl. aber wird bestimmt kompliziert.
Ein einfacher Weg ist:
Code:
Dim erg As String
Dim As Uinteger n, m
n = &H34567890
erg = MKL(n)
?erg
m = CVL(erg)
?m, Hex(m, 8)

_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 14.08.2007, 20:30    Titel: Antworten mit Zitat

Hi, es ist natuerlich moeglich auch UTF-32 in ASCII zu konvertieren, allerdings nicht ohne groesseren Aufwandt...

am besten siehst Du dir mal die "utf_conv.bi" in deinem INC verzeichniss an,
laut den Funktionen sollen unter anderem auch UTF-32 moeglich sein,
leider habe ich gerade keine Beispiele in UTF-32, da ich bisher nur mit UTF-8 gearbeitet habe, dafuer arbeiten die Funktionen schon recht gut, auch wenn ich da offensichtlich noch ein paar kleinere Fehler habe....

vielleicht helfen Dir auch diese beiden Funktionen etwas weiter...
wie gesagt, ist da noch irgendwo ein Fehler, aber mit UTF-8 funktioniert es schon recht gut...

Code:

enum myUTF_ENCOD
   myUTF_ENCOD_ASCII
   myUTF_ENCOD_UTF8
   myUTF_ENCOD_UTF16
   myUTF_ENCOD_UTF32
end enum


Declare Function myCharToUTF Cdecl Alias "fb_CharToUTF"   _
                              ( Byval encod As Integer, _
                         Byval src As Zstring Ptr, _
                         Byval chars As Integer, _
                         Byval dst As Any Ptr, _
                        Byval bytes As Integer Ptr ) As Any Ptr

Declare Function myUTFToChar Cdecl Alias "fb_UTFToChar" _
                              ( Byval encod As Integer, _
                         Byval src As Any Ptr, _
                        Byval dst As Zstring Ptr, _
                        Byval chars As Integer Ptr ) As Zstring Ptr


Declare Function myASCII2UTF  (Byval ConvertString As String) As String
Declare Function myUTF2ASCII  (Byval ConvertString As String, _
                               Byval ENCOD as Integer) As String


Function myASCII2UTF (Byval ConvertString As String) As String
   Dim As Zstring Ptr pZ
   Dim As Zstring Ptr pR
   Dim As Integer     lS
   Dim As Integer Ptr pI

   lS = Len(ConvertString)
   pI = Callocate(4)
   pR = Callocate(4 * lS)
   pZ = Strptr(ConvertString)
   
   myCharToUTF( 1, pZ, lS, pR, pI)
   
   pR = Reallocate(pR, *pI)
   Function = *pR
   
   Deallocate pI
   Deallocate pR
End Function


Function myUTF2ASCII (Byval ConvertString As String, byval ENCOD as Integer) As String
   Dim As Zstring Ptr pZ
   Dim As Zstring Ptr pR
   Dim As Integer     lS
   Dim As Integer Ptr pI

   lS = Len(ConvertString)
   pI = @lS
   pR = Callocate(lS)
   pZ = Strptr(ConvertString)
   
   myUTFToChar( ENCOD, pZ, pR, pI)
   
   pR = Reallocate(pR, *pI)
   Function = *pR
   
   Deallocate pI
   Deallocate pR
End Function


_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Caran



Anmeldungsdatum: 11.03.2007
Beiträge: 290
Wohnort: Lörrach

BeitragVerfasst am: 15.08.2007, 11:25    Titel: Antworten mit Zitat

Hey Leute,
danke für die hilfreichen Antworten.
MfG Caran
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz