Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
02.08.2002, 12:28
[HUI]-Tiger-



Hi Leute,

ich hab folgendes Problem:
Wenn ich aus einem .map-File ein Zeile Lese, also z.B.
Quellcode:( -642 -2790 640 ) ( -642 784 640 ) ( 1444 784 640 ) SKY [ 1 0 0 0 ] [ 0 -1 0 0 ] 0 1 1
und daraus die Textur, also hier "SKY" lesen will, muss ich dann die ganze Zeile in den Parameter schreiben, also
Quellcode:
sscanf(String, "( %d %d %d ) (%d...) %s [...", ...);

oder warum geht es nicht ?? Ich habe schon
Quellcode:
sscanf(String, ") %s [", ...);

versucht, aber das geht leider nicht...kA warum...
Danke schon im voraus

--

.-.-.-.
cya Tiger


Dieser Beitrag wurde am 02.08.2002 um 12:28 von [HUI]-Tiger- bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
02.08.2002, 12:35
Tron



scanf hat net wirklich was mit c++ zu tun... (faengt schonmal damit an, dass es nicht typensicher ist)

mach doch einfach:
Quellcode:sscanf(String, "( %*d %*d %*d ) (%*d...) %s [...", ...);

der * bewirkt, dass da zwar der jeweilige typ erwartet, aber nicht gespeichert wird.

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
002
02.08.2002, 12:39
[HUI]-Tiger-



ich muss dann also danach nur die Variable für %s, also die Textur angeben und nicht noch fuer die ganzen %d s !? Werd ich gleich mal probieren, thx auf jeden fall ! :)

--

.-.-.-.
cya Tiger

zum Seitenanfang zum Seitenende Profil || Suche
003
03.08.2002, 12:28
Prefect



In solchen Fällen wäre es wahrscheinlich ratsam, sich ne Regexp-Library im Internet zu suchen, oder einen Token-by-Token-Parser zu suchen. Ich habe dafür ne nette, einfach verwendbare Klasse in RTTS [http://www.rtts.org/] (lib_parser.cpp im Quellcode); die dürfte in der Lage sein, alle von Quake verwendeten Textdateien zu parsen. Allerdings solltest du wissen, das es sowas wie Exceptions gibt ;p

scanf() suckt einfach, das ist viel zu anfällig für Probleme, die dann wiederum die seltsamsten Folgen haben können.

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.


Dieser Beitrag wurde am 03.08.2002 um 12:31 von Prefect bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
004
04.08.2002, 12:40
[HUI]-Tiger-



ich hab jetzt ne eigene funktion dafür geschrieben ;-) war zwar recht aufwendig, aber jetzt geht es wenigstens...trotzdem thx !

--

.-.-.-.
cya Tiger

zum Seitenanfang zum Seitenende Profil || Suche