Backslash-Fehler bei LoadImagFont am Mac [Gelöst]

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Midimaster

Betreff: Backslash-Fehler bei LoadImagFont am Mac [Gelöst]

BeitragDo, Jan 28, 2010 16:29
Antworten mit Zitat
Benutzer-Profile anzeigen
ich konvertiere gerade ein B3D-Spiel in MINIB3D, um es auf dem MAC nutzen zu können.

Dabei habe ich auch Daten aus Unterverzeichnissen zu laden. Nun kommt es auf dem MAC zu einem sonderbaren Fehler. Während der (unrsprünglich aus B3D kommende) Backslash bei z.B. Image-Laden durchgeht, führt er beim Font-Laden zum Fehler:

BlitzMax: [AUSKLAPPEN]
Bild=LoadSprite("Daten\Bld.png")
Print (Bild<>Null)
Font=LoadImageFont("Daten\Arial.ttf")
Print (Font<>Null)

Der Zeichensatz wird nicht geladen

Ich ersetze den Backslash durch den normalen Slash. So geht es dann:

[EDIT: war mein Fehler, Mac mag überhaupt keine Backslash. Danke an D2006]
BlitzMax: [AUSKLAPPEN]
Bild=LoadSprite("Daten/Bld.png")
Print (Bild<>Null)
Font=LoadImageFont("Daten/Arial.ttf")
Print (Font<>Null)
  • Zuletzt bearbeitet von Midimaster am Do, Jan 28, 2010 16:38, insgesamt einmal bearbeitet

D2006

Administrator

BeitragDo, Jan 28, 2010 16:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Ist auch ziemlich logisch. Backslash wird nur unter Windows als Verzeichnis-Trenner verwendet. Unter Linux und OSX ist es der normale Slash (der wiederrum auch unter Windows geht, womit diese ohnehin zu bevorzugen ist).

EDIT: LoadSprite respektive miniB3D scheint es abzufangen. BRL nicht. Macht nix, ist sowieso falsch.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2
  • Zuletzt bearbeitet von D2006 am Do, Jan 28, 2010 16:32, insgesamt einmal bearbeitet

Mr.Hyde

Newsposter

BeitragDo, Jan 28, 2010 16:31
Antworten mit Zitat
Benutzer-Profile anzeigen
liegt eindeutig daran, dass nur Windows Backslash verwendet. Nutz unter Unix nur Slash Wink

EDIT, da schließe ich mich dem Herrn D2006 vollkommen an, der nicht nur schneller war sondern auch noch mehr Infos zu bieten hatte.
BBP News RSS | Chaos Interactive | Watanien 2 Screens, Infos und Download | Watanien 2 Worklog | PuzzleMasters
http://abgeordnetenwatch.de - http://www.regierungs-beratung.de - Der Regierung auf die Finger schauen

Midimaster

BeitragDo, Jan 28, 2010 16:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke an euch beide! Very Happy
 

Dreamora

BeitragDo, Jan 28, 2010 18:27
Antworten mit Zitat
Benutzer-Profile anzeigen
am einfachsten benutzt du \ garnirgends denn niemand braucht sie mehr
/ ist auch unter windows akzeptiert, kannst dir damit also doppel codes etc sparen, denn alle unterstützten windows versionen unterstützen auch /
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Midimaster

BeitragMi, Mai 25, 2011 9:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Nachtrag:

so einfach ist das Thema nun aber doch nicht abgehakt....

Erst jetzt nach eine Jahr beschäftigt mich dieser Ärger mal wieder:

Ich arbeite gerade unter MAXGUI und verwende das HtmlGadget zu Anzeige von Htlm-Dateien, die sich im Userverzeichnis befinden. Das Userverzeichnis finde ich mit der Funktion...
BlitzMax: [AUSKLAPPEN]
GetUserAppDir()
... aus Bruceys BaH.Volume heraus.
Und wieder macht der Backslash Ärger.

Der Ratschlag nur noch normale Slashes im eigenen Code zu verwenden...
BlitzMax: [AUSKLAPPEN]
HtmlViewGo HtmlView ,GetUserAppDir()+ "/Midimaster/Rhythmustrainer/info.html"

...führt hier zu Dateipfaden, in denen sich Slashes und Backslashes mischen:

WIN:
Zitat:
C:\Dokumente und Einstellungen\Peter\Anwendungsdaten/Midimaster/Rhythmustrainer/info.html
und das funktioniert nicht.

unter MAC wird das Ergebnis so und läuft natürlich:
Zitat:
Users/Peter/Library/Application Support/Midimaster/Rhythmustrainer/info.html


und...
BlitzMax: [AUSKLAPPEN]
HtmlViewGo HtmlView ,GetUserAppDir() + "\Midimaster\Rhythmustrainer\info.html"

läuft zwar unter Windows:
Zitat:
C:\Dokumente und Einstellungen\Peter\Anwendungsdaten\Midimaster\Rhythmustrainer\info.html


aber natürlich nicht unter MAC:
Zitat:
Users/Peter/Library/Application Support\Midimaster\Rhythmustrainer\info.html


Hier bleibt wohl nichts anderes übrig als OS-abhängig die Pfade erst einmal zu vereinheitlichen:

BlitzMax: [AUSKLAPPEN]
UserPfad=GetUserAppDir()
?Win32
UserPfad= UserPfad + "\Midimaster\Rhythmustrainer\"
?MacOs
UserPfad= UserPfad + "/Midimaster/Rhythmustrainer/"
?
HtmlViewGo HtmlView , UserPfad + "\info.html"
 

jsp

BeitragMi, Mai 25, 2011 10:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Könnte da nicht der RealPath() Befehl helfen?
HtmlViewGo HtmlView ,RealPath( GetUserAppDir()+ "/Midimaster/Rhythmustrainer/info.html" )
Logic Gui Professional a Gui Designer for MaxGui

BtbN

BeitragMi, Mai 25, 2011 12:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Pfade mit gemischten shlashes funktionieren unter Windows einwandfrei.

BladeRunner

Moderator

BeitragMi, Mai 25, 2011 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Alternative noch Userpfad = (Userpfad +"dein/Teil").replace("\\","/").
Ist Systemunabhängig.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

mpmxyz

BeitragMi, Mai 25, 2011 18:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Achtung!
BlitzMax nutzt "~" als Escape-Sequenz.
Daher muss es xyz.Replace("\","/") heißen!
mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

BladeRunner

Moderator

BeitragMi, Mai 25, 2011 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Argh, Schlamperfehler Wink
Danke für die Korrektur.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group