![Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht](misc/logos/logo.png) |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
ALWIM
![](images/avatars/71843795144f96ce56b576.jpg)
Anmeldungsdatum: 08.08.2006 Beiträge: 1037 Wohnort: Niederbayern
|
Verfasst am: 14.06.2017, 15:39 Titel: |
|
|
grindstone hat Folgendes geschrieben: | ALWIM hat Folgendes geschrieben: | Wenn jemand eine vernünftige Lösung kennt, bitte mitteilen! | Ist doch ganz einfach. Statt Code: | CharToOem(Wort, Wort) | sowas wie Code: | CharToOem(OriginalWort, AusgabeWort) |
Dadurch bleibt der ursprüngliche Text erhalten, und AusgabeWort wird nur zur korrekten Bildschirmausgabe verwendet.
Gruß
grindstone | Leider doch nicht ganz so einfach! Beim Abspeichern in eine Datei, speichert der mir die original Buchstaben nicht ab. Wenn ich jetzt eine Datei mit korrekten Buchstaben habe, aber in meinem Programm die nicht einlesen kann (weil ich vielleicht nicht umwandle), habe ich ein Problem. Die korrekte Ausgabe auf den Bildschirm ist nicht so das Problem. Es geht mehr ums abspeichern und einlesen!
Ich habe momentan auch noch sowas drin:
Code: | CharToOem Spieler(TAZ), Spieler(TAZ) |
Ist doch ein wenig komplizierter als gedacht? Vielleicht kennt jemand noch eine andere Lösung?
Zum Programm:
Im Moment, schreibe ich das ganze Programm komplett um, da eine bestimmte (geplante) Funktion dies erforderlich macht. Ein Teilnehmer muss auch aussetzen können! Deswegen, muss ich eine Variable mit einbauen bzw. umschreiben , die erkenntlich macht, wer nun wann eine Runde aussetzt. Des weiteren, wurde auch noch ein Fehler gefunden, der bei bestimmter Konstellation das Programm zum Absturz bringt. Bis zum 1.7.2017 werde ich es nicht schaffen, das Programm zu vollenden? Ob mein Programm noch korrekt funktioniert, kann ich nicht sagen, da es ein wenig umgeschrieben wurde!
Gruß
ALWIM _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
nemored
![](images/avatars/18585278245ddb8b9d8710.png)
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 14.06.2017, 18:26 Titel: |
|
|
So eine Funktion wie CharToOem funktioniert nur zuverlässig, wenn du genau im Auge behältst, welche Werte gerade in welcher Codierung gespeichert sind. Ggf. müsstest du sie halt beim Abspeichern wieder zurückwandeln (OemToChar). Und natürlich musst du dir sicher sein können, dass die Datei (ggf. von außerhalb) in der richtigen Codierung gespeichert ist. ANSI hat so seine Tücken.
Ideal wäre es natürlich, wenn du gleich mit einer einheitlichen Codierung arbeiten könntest (ich spreche natürlich von Unicode ). Dem Compiler liegt die Datei utf_conf.bi bei, mit der man verschiedene Umwandlungen, z. B. UTF-8 zu WSTRING und umgekehrt, vornehmen kann; allerdings muss man da sich da etwas reinarbeiten, weil die String-Übergabe an C-Bibliotheken etwas anders aufgebaut ist, als man das von FreeBASIC gewohnt ist. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
ALWIM
![](images/avatars/71843795144f96ce56b576.jpg)
Anmeldungsdatum: 08.08.2006 Beiträge: 1037 Wohnort: Niederbayern
|
Verfasst am: 26.06.2017, 00:12 Titel: |
|
|
nemored hat Folgendes geschrieben: | So eine Funktion wie CharToOem funktioniert nur zuverlässig, wenn du genau im Auge behältst, welche Werte gerade in welcher Codierung gespeichert sind. Ggf. müsstest du sie halt beim Abspeichern wieder zurückwandeln (OemToChar). Und natürlich musst du dir sicher sein können, dass die Datei (ggf. von außerhalb) in der richtigen Codierung gespeichert ist. ANSI hat so seine Tücken.
Ideal wäre es natürlich, wenn du gleich mit einer einheitlichen Codierung arbeiten könntest (ich spreche natürlich von Unicode ). Dem Compiler liegt die Datei utf_conf.bi bei, mit der man verschiedene Umwandlungen, z. B. UTF-8 zu WSTRING und umgekehrt, vornehmen kann; allerdings muss man da sich da etwas reinarbeiten, weil die String-Übergabe an C-Bibliotheken etwas anders aufgebaut ist, als man das von FreeBASIC gewohnt ist. | Habe jetzt wie folgt verfahren: Die Turnierdateien die ich im Format UTF-8 abspeichere und auch wieder lade werden nicht umgewandelt! Sollte normalerweise keine Probleme geben? Es ist so, dass ich in die Datei nicht reinschaue, da es ja nur die Turnierdatei des Programms ist! Deswegen können da ruhig, nicht lesbare Zeichen/Wörter drinstehen. Die TRF-Datei wird beim abspeichern umgewandelt. Ebenso umgewandelt, wird auch die Sprachdatei, die ich am Anfang einlese. Damit werden die richtigen Buchstaben ausgegeben! Zumindest bis jetzt...
Was die TRF-Datei betrifft: Diese kann ich erstellen bzw. abspeichern. Aber wie lese ich die nun wieder korrekt ein? Habe noch keine Idee wie ich das hinkriege? Das Problem ist ja, die unterschiedliche Anzahl von Runden und Teilnehmern! Das bereitet mir ja so sehr Kopfzerbrechen? Wie weiß ich wann Schluss ist, in einer Zeile? Das Ende der Datei kann ich ja überprüfen! Das ist nicht das Problem. Aber wie prüfe ich, ob ich das Ende einer Zeile erreicht habe???
Programm funktioniert bisher recht gut! Wird immer besser. Leider reicht es noch nicht für eine Veröffentlichung! Es fehlen noch zu viele Sachen. Leider...
Gruß
ALWIM _________________ SHELL SHUTDOWN -s -t 05 |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1211 Wohnort: Ruhrpott
|
Verfasst am: 26.06.2017, 00:57 Titel: |
|
|
Die Handhabung der utf_conv.bi - Routinen ist etwas gewöhnungsbedürftig, aber wenn man es einmal herausgefunden hat (ich habe seinerzeit 2 Tage herumprobiert), eigentlich recht simpel: Code: | #Include Once "utf_conv.bi"
Dim As String quelle, ziel
Dim As ZString Ptr zp
Dim As Integer laenge
zp = UTFToChar(UTF_ENCOD_UTF8, StrPtr(quelle), 0, @laenge)
ziel = *zp
DeAllocate zp
zp = 0
Print ziel
Sleep |
wobei quelle den UTF-8 - codierten String enthält.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
![](templates/subSilver/images/spacer.gif) |
|
|
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.
|
|