vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
XML Datei als eingebettete Ressource 
Autor: Snoopy
Datum: 05.12.07 15:16

Hallo...

ich versuche schon seit einiger Zeit eine XML Datei, die als eingebettete Ressource
im Projekt hinterlegt ist, an ein XMLDocument zu übergeben.

Ist egal, ob ich mit dem Ressourcenmanager über GetObject oder GetStream arbeite,
ich bekomme immer irgendwelche Cast-Exceptions. Mittlerweile sehe ich den Wald
vor lauter Bäumen nicht mehr, soviel habe ich rumprobiert.

Hat sowas schon mal jemand umgesetzt


Gruß

Gru?
---------------------------------------------------
Snoopy sagt - vb@rchiv find ich gut...
Schon gesehen? OSMMapViewer V2 Control

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML Datei als eingebettete Ressource 
Autor: acJohn
Datum: 05.12.07 15:37

Hallo,

so sollte es eigentlich funktionieren...
Shared Function GetXML(ByVal [Assembly] As System.Reflection.Assembly, ByVal _
  Name As String) As Xml.XmlDocument
        For Each s As String In [Assembly].GetManifestResourceNames
            If s.ToLower.EndsWith(Name.ToLower) Then
                Dim str As String = New Xml.XmlTextReader( _
                  [Assembly].GetManifestResourceStream(s)).ReadString
                Dim xmldoc As New Xml.XmlDocument
                xmldoc.LoadXml(str)
                Return xmldoc
            End If
        Next
        Return Nothing
    End Function
Musst die Assembly und den Namen der Ressource übergeben.

Gruß John
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML Datei als eingebettete Ressource 
Autor: Micke
Datum: 05.12.07 18:28

ketzerische Frage ;) - wozu ?
wenn du werte fest codieren willst kannst du sie ja gleich in die klasse stecken

Micke

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML Datei als eingebettete Ressource 
Autor: Snoopy
Datum: 05.12.07 19:02

Hallo...

@acJohn
Danke Dir, aber der Code funzt nicht so richtig. Nur hast Du mir damit meine Augen
geöffnet, denn die Lösung ist ja so einfach

xISO.LoadXml(My.Resources.ISO3166)


@Micke
Ich mache das, weil ich keinen Bock habe, ca. 230 Ländercodes in ne Klasse einzugeben,
zumal die Datei als XML vorliegt.


Gruß

Gru?
---------------------------------------------------
Snoopy sagt - vb@rchiv find ich gut...
Schon gesehen? OSMMapViewer V2 Control

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML Datei als eingebettete Ressource 
Autor: Micke
Datum: 06.12.07 10:29

würde ich trotzdem nen enum nehmen,
aber war kein vorwurf, führen ja viele wege nach rom.

Micke

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML Datei als eingebettete Ressource 
Autor: Maywood
Datum: 06.12.07 11:10

>> einzugeben / abtippen

Wieso? Das Wort "eingeben" bzw. "abtippen" ist mir als SW-Entwickler (fast) unbekannt.

Das geht doch auch anders, einfacher und schneller:
		Dim tmpDir As String = System.Environment.GetEnvironmentVariable("TEMP")
		dim sw as New IO.StreamWriter ( tmpDir + "\CountryCodes.vb", false)
		Dim wc As New Net.WebClient()
		dim url as String = "http://www.iso.org/iso/iso3166_en_code_lists.txt"
		Dim data() As Byte = wc.DownloadData ( url )
		Dim lines() As String = system.Text.Encoding.UTF8.GetString( data ).Split( _
  new String() {System.Environment.NewLine}, StringSplitOptions.None )
		Dim countryName As String = Nothing
		sw.WriteLine ("Option Explicit On")
		sw.WriteLine ("Option Strict On")
		sw.WriteLine ("Class CountryCodes")
		For Each line As String In lines
			If Not line.StartsWith ("This") AndAlso line.Length > 1 Then 
				countryName = line.Split ( New Char() {";"c}) (0)
				countryName = System.Text.RegularExpressions.Regex.Replace(countryName, _
  "[\W+\/*.,'()\\/:?*^""<>|]", "_")
				sw.WriteLine ("		Public Shared ReadOnly Property " + countryName + " AS" & _
"String" )
				sw.WriteLine ("			Get")
				sw.WriteLine ("				Return """ +  line.Split ( New Char() {";"c}) (1) + """") 
				sw.WriteLine ("			End Get")
				sw.WriteLine ("		End Property")
			end if
		Next
		sw.WriteLine ("End Class")
		sw.Close()
		System.Diagnostics.Process.Start ( "notepad.exe", tmpDir + "\CountryCodes.vb")
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML Datei als eingebettete Ressource 
Autor: Snoopy
Datum: 06.12.07 11:52

Hehe gut gemacht....

Hast Du das in der Schublade gehabt oder eben schnell gestrickt

Ich kann´s zwar so nicht gebrauchen, denn ich habe einen beliebigen Ländercode
und brauche dazu den Ländernamen. Also ne Funktion mit Ländercode rein und den
Ländernamen als Rückgabe.

Trotzdem SUPER gemacht.... Danke Dir.


Gruß

Gru?
---------------------------------------------------
Snoopy sagt - vb@rchiv find ich gut...
Schon gesehen? OSMMapViewer V2 Control

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML Datei als eingebettete Ressource 
Autor: Maywood
Datum: 06.12.07 15:03

>> Hast Du das in der Schublade gehabt oder eben schnell gestrickt

Eher das letztere, aber auch wenig aus der "Schublade". Ist ja eigentlich kein Hexenwerk wie ich finde. Solche oder ähnliche Routinen benötige ich sehr oft bei der Arbeit. Deswegen ist mir diese Möglichkeit auch gleich in den Sinn gekommen

>> Ich kann´s zwar so nicht gebrauchen, denn ich habe einen beliebigen Ländercode
>> und brauche dazu den Ländernamen. Also ne Funktion mit Ländercode rein und den
>> Ländernamen als Rückgabe.

Achso, dann erweitere doch die Klasse mit einer entsprechenden Funktion. Meine Lösung wäre folgende:
Option Explicit On
Option Strict On
 
Class CountryCodes
 
		Public Shared Function GetCountryName ( code As String )  As String
			Dim t As Type = GetType( CountryCodes )
			dim value as String = nothing 
			For Each p As Reflection.PropertyInfo In t.GetProperties()
				value = p.GetValue (nothing, new Object() {}).ToString()
				If value.ToUpper().Equals ( code.ToUpper()) Then
					return p.Name 
				End If
			Next
			return nothing
		End Function
 
		Public Shared ReadOnly Property AFGHANISTAN AS String
			Get
				Return "AF"
			End Get
		End Property
 
		Public Shared ReadOnly Property LAND_ISLANDS AS String
			Get
				Return "AX"
			End Get
		End Property
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: XML Datei als eingebettete Ressource 
Autor: Snoopy
Datum: 06.12.07 18:42

o.T.

Gru?
---------------------------------------------------
Snoopy sagt - vb@rchiv find ich gut...
Schon gesehen? OSMMapViewer V2 Control

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel