Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

24.09.2011, 10:57

Was passiert wenn....\Was macht.... /Registrierung, XML

HiHo Freunde!
Was passiert wenn ich eine Datei *.xyz in der Registrierung als Datei meines Programms registriere und ich dann so eine *.xyz Datei öffne?
Wie macht man sein Programm dafür "kompatibel", Syntax-mäßig?
Wäre ja nämlich ganz nützlich für einen Level-Editor, anstatt irgendein unbekanntes, selbst ausgedachtes Format, oder gar *.txt, zu verwenden.

Zu XML: Ich habe jetzt schon eine Programme/Spiele gesehen, die aus einer XML z.B. URL´s auslesen oder auch die Ausschnitte eines Tilesets.
Warum XML? Ist das schneller oder leichter, übersichtlicher oder was ganz anderes? Wie würde man denn dann Daten aus einer XML auslesen? Ein extrem einfaches Beispiel, auch Download, wäre ausreichend. :)

MfG
Check

idontknow

unregistriert

2

24.09.2011, 11:20

XML: ist ordentlciher und hat ne bessere struktur, tinyxml

3

24.09.2011, 13:38

Was passiert wenn ich eine Datei *.xyz in der Registrierung als Datei meines Programms registriere und ich dann so eine *.xyz Datei öffne?

Wenn alles mit rrechten dingen zugeht, dann öffnet sich die Datei mit deiner Anwendung..normalerweise machst du dafür ein setup wo diese datei - exe - verknüpfung definiert wird. das kannst du mit Visual studio tun. bei der programmatischen variante musst du halt wissen wie du auf die registrierung zugreifst und vor allem was genau du da für änderungen vornehmen musst.

4

24.09.2011, 14:01

Das weiß ich alles, es wird mit dieser Datei geöffnet etc.pp. Nur hat man ja auch Funktionen die eine Datei erst laden oder den Benutzer dazu anregen.
Sollte man damit vielleicht mit dem Präprozessor arbeiten?
Könnte mir das dabei vorstellen:
Irgendwie überprüfen ob die *.exe mit einer Datei *.xyz aufgerufen wurde, Makro setzen.
Dann via #ifdef den Benutzer auffordern eine zu laden, wenn er denn das Programm an sich ausgeführt hat.
Schließlich normal fortfahren.

Wie ist das denn? Liegt die besagte *.xyz Datei dann im Memory? Fragt man sie dann, z.B. in der SFML, mit LoadFromMemory ab? Mir fehlen dabei im Allgemeinen die Funktionsnamen und das nötige Wissen was dabei in meinem Programm passiert, also dezent wenn ich es mit einer *.xyz Datei ausführe, nicht was Windows oder ein anderes gängiges OS macht.
Sicher mein Programm läuft den Quellcode ab, aber gibt es vielleicht sogar schon ein Makro was zeichnet, dass das Programm mit einer *.xyz Datei ausgeführt wurde? Setzt man dieses vielleicht sogar direkt in der Registrierung, beim Setup?

Zu der XML: idontknow ich hatte dein "Framework" heruntergeladen, da hattest du ja das mit den XML-Dateien verwendet.
Könntest du mir ein extrem simples Beispielprojekt erstellen und hochladen? Z.B. in der XML sind nur 2 variablen und das Programm liest nacheinander oder zufällig, whatever, eine von denen aus. Nur um die Logik und die Funktionsnamen usw, dahinter zu kennen. Mit ifstream und ofstream kann ich mir das irgendwie schwer vorstellen. Dann müsste ich wissen wie du dann genau einen bestimmten Wert findest. :D

MfG
Check

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Checkmateing« (24.09.2011, 17:24) aus folgendem Grund: Versehentlich #ifndef geschrieben


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

24.09.2011, 15:58

Was zum Henker willst Du eigentlich machen? Du willst scheinbar nicht nur wissen, wie man Windows dazu bringt eine Daten mit der Endung xyz mit Deinem Programm zu öffnen, oder doch?

Denn falls doch, dann macht das hier überhaupt gar keinen Sinn:
"Irgendwie überprüfen ob die *.exe mit einer Datei *.xyz aufgerufen wurde, Makro setzen.
Dann via #ifndef den Benutzer auffordern eine zu laden, wenn er denn das Programm an sich ausgeführt hat."

Mal zur Klarstellung: Wenn Dein Programm mit einer Datei-Endung verknüpft ist, dann startet Windows beim Doppelklick auf solch eine Datei einfach nur Dein Programm und übergibt den Pfad der besagten Datei als Argument. Mehr passiert da erst mal gar nicht. Da landet nichts im Speicher, da wird nichts geladen, das musst Du alles in Dein Programm einprogrammieren.
Dafür braucht man auch weder ein Makro, noch irgendwie "#ifndef" oder eine Aufforderung an den Benutzer eine Datei zu laden.
Irgendwie geht bei Dir grad alles ganz schön drunter und drüber, kann das sein?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

6

24.09.2011, 16:48

btw: Statt TinyXml kannst du auch rapidxml nehmen, damit hab ich persönlich recht gute Erfahrungen gemacht. Beispiele gibts auf der Seite, die Integration ist so einfach wie nur möglich.

7

24.09.2011, 17:27

Ich möchte wissen wie mein Programm ungefähr aussehen muss um das halt zu unterstützen.

@ComputerAddict: Ich schaue mir die Seite mal an und streiche das XML-Gedöns aus dem Titel, wenn mir geholfen wurde. :thumbup:

MfG
Check

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

8

24.09.2011, 17:32

C-/C++-Quelltext

1
int main( int argc, char* argv[] )


in argv befindet sich der Dateiname, der zu öffnenden Datei(zusammen mit ggf. anderen Argumenten(ist ja ein Array). Einfach prüfen, ob ein Dateiname da drin steht und ggf. Datei laden, ansonsten eben den Nutzer eine Datei auswählen lassen. Die Ideen mit dem Präprozessor sind nicht sonderlich sinnvoll ;).

9

24.09.2011, 17:36

Ahh... :D
Das man da nicht drauf kommt. xD
Danke!

Wegen RapidXML: Ich finde da nicht gerade Beispiele, ebenso bei TinyXML. Gibt es Links dezent zu Beispielen? D:

MfG
Check

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

10

24.09.2011, 17:39

Statt TinyXML solltest du lieber TiCpp verwenden. Ist im Grunde dasselbe, nur dass TiCpp objektorientiert ist(und Exceptions werfen kann). Es ist also deutlich komfortabler.

Werbeanzeige