Naar aanleiding van een ander topic betreffende resourcefiles heb ik geprobeerd of ik om te beginnen strings naar een resource bestand kan schrijven. Ik voeg het bestand toe via mijn solution explorer in Visual Studio 2005 Ik maak daar als test gebruik van de code die ik op
http://samples.gotdotnet.com/quickstart/howto/doc/readwriteresources.aspx gevonden heb.
Ik heb de code licht aangepast. De regel:
is in mijn code:
Waarbij ik mijn via het project toegevoegde resource file benader. Aan dit bestand is niets veranderd na het toevoegen.
Gebruik ik deze code:
Dan resulteert dat in een fout in strings.resx: Invalid token 'Text' at root level of document. Ik zie in de ErrorList van Visual Studio 101 errors staan waaronder:
- ResX file Data at the root level is invalid. Line 1, position 1. cannot be parsed.
- Character ' ', hexdecimal value 0x1 is illegal in XML documents.
- Invalid token 'Text' at root level of document.
Ikzelf denk aan een verkeerd geparst character. De code view van de resource file bevat aan het begin een serie rare characters waarna de regel: System.Resources.ResourceReader, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089#System.Resources.RuntimeResourceSet komt. Na het blokje komen weer een aantal rare characters met daarna weer gedeeltes van de strings die ik via mijn code opgeef.
Standaard xml bestand (excuses voor de hoeveelheid tekst, ik weet niet wat van belang kan zijn)
Wat ik al geprobeerd heb:
- Gezocht op Got & Google, niets gevonden wat een oplossing brengt
- Meerdere malen het bestand in project toegevoegd
- Xml Version=1.0.3300.0 gebruiken ipv Version=2.0 in resource bestand
- Wat ik gehoord heb is dat het bestand in unicode opgeslagen moet zijn ipv ASCII, maar hierover kan ik in mijn bestand niets weer vinden. Ik ga ervan uit dat dit klopt.
Weet iemand wat hier aan de hand is?
http://samples.gotdotnet.com/quickstart/howto/doc/readwriteresources.aspx gevonden heb.
Ik heb de code licht aangepast. De regel:
Visual Basic .NET:
1
| Dim rw As ResourceWriter = New ResourceWriter("Greeting.resources") |
is in mijn code:
Visual Basic .NET:
1
| Dim rw As ResourceWriter = New ResourceWriter(Server.MapPath("Strings.resx")) |
Waarbij ik mijn via het project toegevoegde resource file benader. Aan dit bestand is niets veranderd na het toevoegen.
Gebruik ik deze code:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click ' Create a .resources file, specifying a new resources file Dim rw As ResourceWriter = New ResourceWriter(Server.MapPath("Strings.resx")) ' add some strings to the file rw.GetType() rw.AddResource("Greeting", "Welcome to Microsoft .Net Framework!") rw.AddResource("PasswordException", "Sorry, that is not the correct password.") rw.AddResource("Purchase", "Please select an item to purchase from the store:") rw.AddResource("Goodbye", "Thank you for visiting Microsoft .Net Framework!") ' create and write to the file rw.Generate() ' close the resourcewriter. Note that if you close without calling generate ' first, the generate method is implicitly called rw.Close() End Sub |
Dan resulteert dat in een fout in strings.resx: Invalid token 'Text' at root level of document. Ik zie in de ErrorList van Visual Studio 101 errors staan waaronder:
- ResX file Data at the root level is invalid. Line 1, position 1. cannot be parsed.
- Character ' ', hexdecimal value 0x1 is illegal in XML documents.
- Invalid token 'Text' at root level of document.
Ikzelf denk aan een verkeerd geparst character. De code view van de resource file bevat aan het begin een serie rare characters waarna de regel: System.Resources.ResourceReader, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089#System.Resources.RuntimeResourceSet komt. Na het blokje komen weer een aantal rare characters met daarna weer gedeeltes van de strings die ik via mijn code opgeef.
Standaard xml bestand (excuses voor de hoeveelheid tekst, ik weet niet wat van belang kan zijn)
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
| <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:element name="root" msdata:IsDataSet="true"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element name="metadata"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" /> <xsd:attribute name="type" type="xsd:string" /> <xsd:attribute name="mimetype" type="xsd:string" /> </xsd:complexType> </xsd:element> <xsd:element name="data"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> </xsd:complexType> </xsd:element> <xsd:element name="resheader"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required" /> </xsd:complexType> </xsd:element> </xsd:choice> </xsd:complexType> </xsd:element> </xsd:schema> <resheader name="resmimetype"> <value>text/microsoft-resx</value> </resheader> <resheader name="version"> <value>2.0</value> </resheader> <resheader name="reader"> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> </root> |
Wat ik al geprobeerd heb:
- Gezocht op Got & Google, niets gevonden wat een oplossing brengt
- Meerdere malen het bestand in project toegevoegd
- Xml Version=1.0.3300.0 gebruiken ipv Version=2.0 in resource bestand
- Wat ik gehoord heb is dat het bestand in unicode opgeslagen moet zijn ipv ASCII, maar hierover kan ik in mijn bestand niets weer vinden. Ik ga ervan uit dat dit klopt.
Weet iemand wat hier aan de hand is?
[ Voor 13% gewijzigd door Arethusa op 05-07-2006 13:32 ]
I've been mad for fucking years, absolutely years, been over the edge for yonks.
Vinyl: Discogs