XML-Datei in Resources per XmlReader lesen

Diskutiere XML-Datei in Resources per XmlReader lesen im .NET Technology Bereich.
Bitte aktiviere JavaScript!
krgewb

krgewb

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

Flown

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

krgewb

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()
 
Flown

Flown

Naja vielleicht musst du auch deine Strings in deiner resource escapen?
 
krgewb

krgewb

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

krgewb

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

krgewb

Ich mache es jetzt so wie ich es in meinem vorherigen Beitrag beschrieben habe. Syntax-Highlighting in Notepad++ funktioniert sogar.
 
Thema: 

XML-Datei in Resources per XmlReader lesen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben