XML-Datei in Resources per XmlReader lesen

krgewb

Top Contributor
resources.resx ist etwas C#-spezifisches. Da kann man Links auf Dateien hinterlegen. Diese Bilder sind dann in der EXE-Datei drin und müssen nicht separat geliefert werden.

Meine Bild-Datei für eine Textur heißt z.B. 001e.png
Ich kann es dann wie folgt schreiben:
Code:
Texture meineTextur = TextureLoader.FromBitmap(Resourcen._001e);
 

Flown

Administrator
Mitarbeiter
Ich weiß was resources sind. Das Konzept ist nich C# spezifisch. Meine Frage war eigentlich, wo dein Problem liegt.
 

krgewb

Top Contributor
Bisher habe ich es folgendermaßen gemacht:
Code:
XmlReader xmlReader = XmlReader.Create(@"C:\Users\Erich\Desktop\Erich_AD\CG\Examples\Test_001_Schranke\Resources\level01.xml");

Ich habe level01.xml hinzugefügt. Nun möchte ich es wie folgt machen:
XmlReader xmlReader = XmlReader.Create(Resourcen.level01);

Besagte Zeile führt jedoch zu einer Exception.

An unhandled exception of type 'System.ArgumentException' occurred in mscorlib.dll

Additional information: Illegales Zeichen im Pfad.

Code:
   bei System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   bei System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths)
   bei System.IO.Path.GetFullPathInternal(String path)
   bei System.Xml.XmlResolver.ResolveUri(Uri baseUri, String relativeUri)
   bei System.Xml.XmlUrlResolver.ResolveUri(Uri baseUri, String relativeUri)
   bei System.Xml.XmlTextReaderImpl..ctor(String uriStr, XmlReaderSettings settings, XmlParserContext context, XmlResolver uriResolver)
   bei System.Xml.XmlReaderSettings.CreateReader(String inputUri, XmlParserContext inputContext)
   bei System.Xml.XmlReader.Create(String inputUri, XmlReaderSettings settings, XmlParserContext inputContext)
   bei System.Xml.XmlReader.Create(String inputUri)
   bei Example.MyApplication.GameWindow_KeyDown(Object sender, KeyboardKeyEventArgs e) in C:\Users\Erich\Desktop\Erich_AD\CG\Examples\Test_001_Schranke\Program.cs:Zeile 677.
   bei System.EventHandler`1.Invoke(Object sender, TEventArgs e)
   bei OpenTK.NativeWindow.OnKeyDown(KeyboardKeyEventArgs e)
   bei OpenTK.NativeWindow.OnKeyDownInternal(Object sender, KeyboardKeyEventArgs e)
   bei System.EventHandler`1.Invoke(Object sender, TEventArgs e)
   bei OpenTK.Platform.NativeWindowBase.OnKeyDown(Key key, Boolean repeat)
   bei OpenTK.Platform.Windows.WinGLNative.HandleKeyboard(IntPtr handle, WindowMessage message, IntPtr wParam, IntPtr lParam)
   bei OpenTK.Platform.Windows.WinGLNative.WindowProcedure(IntPtr handle, WindowMessage message, IntPtr wParam, IntPtr lParam)
   bei OpenTK.Platform.Windows.Functions.DispatchMessage(MSG& msg)
   bei OpenTK.Platform.Windows.WinGLNative.ProcessEvents()
   bei OpenTK.NativeWindow.ProcessEvents(Boolean retainEvents)
   bei OpenTK.GameWindow.Run(Double updates_per_second, Double frames_per_second)
   bei OpenTK.GameWindow.Run()
   bei Example.MyApplication.Main() in C:\Users\Erich\Desktop\Erich_AD\CG\Examples\Test_001_Schranke\Program.cs:Zeile 77.
   bei System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
   bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   bei System.Threading.ThreadHelper.ThreadStart()
 

krgewb

Top Contributor
Wie meinst du das?

Aufgrund von "Additional information: Illegales Zeichen im Pfad."
habe ich jetzt alles umgebaut sodass die Datei dort liegt:
C:\Users\Erich\Desktop\T\CG\Examples\X\Resources\L.xml
Jetzt sind da keine Unterstriche und keine Ziffern.
Die Exception kommt aber weiterhin.
 

krgewb

Top Contributor
Das würde funktionieren:
Der XML-Text ist in der Text-Datei level01.txt
Und dann:
Code:
XmlReader xmlReader = XmlReader.Create(new StringReader(Resourcen.level01));
 

krgewb

Top Contributor
Ich mache es jetzt so wie ich es in meinem vorherigen Beitrag beschrieben habe. Syntax-Highlighting in Notepad++ funktioniert sogar.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G In PHP eingelesene XML-Datei bearbeiten und speichern mit Expat Andere Programmiersprachen 0
lolcore (c#) klasse aus externer cs-datei importieren Andere Programmiersprachen 2
D Python - Tensorflow installieren - Datei in Spyder öffnen Andere Programmiersprachen 6
Kirby.exe json.load() lädt nicht die komplette Datei Andere Programmiersprachen 1
B Python: Wie entferne ich Daten aus einer Datei und plotte sie? Andere Programmiersprachen 2
O C - Datei einlesen Inhalt in struct speichern Andere Programmiersprachen 56
L Fehlermeldung beim lesen aus einer Datei mit Python Andere Programmiersprachen 4
I Klasse aus anderer Datei einbinden Andere Programmiersprachen 1
I Headerdaten einer wav Datei auslesen Andere Programmiersprachen 2
N Mit Batch Datei neue Batch datei erstellen und ausführen Andere Programmiersprachen 3
I Ordner über batch Datei löschen? Andere Programmiersprachen 4
krgewb Computer per bat-Datei herunterfahren Andere Programmiersprachen 1
G (Python) Werte einer ausgelesenen csv Datei verwalten Andere Programmiersprachen 2
B [C] long long unsigned aus Datei lesen Andere Programmiersprachen 1
K fscanf // Zeilenweises Einlesen aus einer .txt Datei Andere Programmiersprachen 1
M Header-Datei Andere Programmiersprachen 5
H [C#] XML-Datei parsen Andere Programmiersprachen 3

Ähnliche Java Themen

Neue Themen


Oben