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:

Schachturnierorganistionsprogramm (STOP)
Gehe zu Seite Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1037
Wohnort: Niederbayern

BeitragVerfasst am: 14.06.2017, 14:39    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4594
Wohnort: ~/

BeitragVerfasst am: 14.06.2017, 17:26    Titel: Antworten mit Zitat

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 happy ). 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
Benutzer-Profile anzeigen Private Nachricht senden
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1037
Wohnort: Niederbayern

BeitragVerfasst am: 25.06.2017, 23:12    Titel: Antworten mit Zitat

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 happy ). 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
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1208
Wohnort: Ruhrpott

BeitragVerfasst am: 25.06.2017, 23:57    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
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