|
well i write:
"Hello
World"
and when i read it returns: "HelloWorld"
simple as that..i do not know what is wrong..after writting i check the .xml file and it is written:
"Hello
World"
i do not know why the text is joinning!!!
modified 7-Jan-19 21:02pm.
|
|
|
|
|
That is an observation, and might happen due to other code. Like the way it is written.
textBox1.Text = "Hello";
textBox1.Text = "World";
Means the first value will be overwritten. There is no joining there.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
ok leave it..thanks anyway
modified 7-Jan-19 21:02pm.
|
|
|
|
|
..if you look at that text, you'll see it already has three lines of values before you read it. Are you using multi-line textboxes? If not, then only the first line will be displayed.
I'll bet that you are not overwriting those values on save, but appending them. That's where they get joined.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
yes i am using mutiline textboxes..leave it..TY!
modified 7-Jan-19 21:02pm.
|
|
|
|
|
this is what i am using for writting:
Dim newPerson As String =
"<MEMOS ID=""" + TextBox1.Text + """>" & Environment.NewLine & " " &
"<DATE>" + TextBox1.Text + "</DATE>" & Environment.NewLine & " " &
"<HOUR>" + ComboBox1.Text + "</HOUR>" & Environment.NewLine & " " &
"<MINUTES>" + ComboBox2.Text + "</MINUTES>" & Environment.NewLine & " " &
"<AMPM>" + ComboBox3.Text + "</AMPM>" & Environment.NewLine & " " &
"<PLACE>" + TextBox2.Text + "</PLACE>" & Environment.NewLine & " " &
"<NAME>" + TextBox3.Text + "</NAME>" & Environment.NewLine & " " &
"<PHONE>" + TextBox4.Text + "</PHONE>" & Environment.NewLine & " " &
"<EMAIL>" + TextBox5.Text + "</EMAIL>" & Environment.NewLine & " " &
"<HEADER>" + TextBox6.Text + "</HEADER>" & Environment.NewLine & " " &
"<MEMO>" + TextBox7.Text + "</MEMO>" & Environment.NewLine & " " &
"</MEMOS>"
Dim xd As New XmlDocument()
xd.Load(filePath)
Dim docFrag As XmlDocumentFragment = xd.CreateDocumentFragment()
docFrag.InnerXml = newPerson
Dim root As XmlNode = xd.DocumentElement
root.AppendChild(docFrag)
xd.Save(filePath)
MessageBox.Show("MEMO SAVED")
End If
modified 7-Jan-19 21:02pm.
|
|
|
|
|
I don't see anything.. aw, wait, did you mean by "join" that it is removing empty space from the string?
If yes, then that is the normal behaviour. Easiest solution is to encode the data, or wrap it in a CDATA structure.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
yes..thats it removing the spaces in the string!!!
modified 7-Jan-19 21:02pm.
|
|
|
|
|
Putting the values directly in the tag has its limits; imagine you put the value "<test" in="" there.<pre="" lang="cs">
<xml>
<mysetting><test</mysetting>
</xml>
As you can see, saving that string would cause the XML to be malformed. The easy solution to both problems is to encode your values in base64 (and decode them when reading).
To convert a value to base64;
Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("Hello world"))
To convert back to your value from base64;
System.Text.Encoding.UTF8.GetString(Convert.FromBase64String("base64charshere"))
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
ok..im understanding this code....thanks : )
modified 7-Jan-19 21:02pm.
|
|
|
|
|
Good luck and enjoy your weekend
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
|
Alienoiz wrote: after the efforts i believe i got something..wanna try? Nice
So, you got code and you can explain it. How about writing an article?
Alienoiz wrote: it is simple but you need framework 4.5 and run it as admin case you run it from a private folder Smile | Without simple examples it would be very hard to learn. Also, most people will already have 4.5, so no problem there.
Alienoiz wrote: Thanks and Merry Xmas! Merry Christmas and a happy new year!
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
... My idea is to separate the .ini keyname from the data it contains and use each other to a different ending!
i hope i am being clear enough.. since i am bothering you guys so much....
Thanks,
Duarte
modified 7-Jan-19 21:02pm.
|
|
|
|
|
Like we have all been telling you: forget .INI files, they are outdated and not supported. Use something that fits with the language and framework as it is now. As Eddy has suggested XML is a much better choice and there is full support for it in the language and framework: vb.net XMLreader - Google Search[^].
|
|
|
|
|
ok i am up to it.. where can i get some snippets or tutorials to learn how to work with it?
Thank You!
modified 7-Jan-19 21:02pm.
|
|
|
|
|
Follow the links I provided in my previous message.
|
|
|
|
|
ok thanks.. i will check them out!
modified 7-Jan-19 21:02pm.
|
|
|
|
|
i am not understanding how do i create more nodes??!!
Private Sub createNode(ByVal dat As String, ByVal hor As String, ByVal plc As String, ByVal hed As String, ByVal mem As String, ByVal writer As XmlTextWriter)
Dim MEMOSAVE = TextBox5.Text
writer.WriteStartElement(MEMOSAVE)
writer.WriteStartElement("Date")
writer.WriteString(dat)
writer.WriteEndElement()
writer.WriteStartElement("Hour")
writer.WriteString(hor)
writer.WriteEndElement()
writer.WriteStartElement("Place")
writer.WriteString(plc)
writer.WriteEndElement()
writer.WriteStartElement("Header")
writer.WriteString(hed)
writer.WriteEndElement()
writer.WriteStartElement("MEMO")
writer.WriteString(mem)
writer.WriteEndElement()
writer.WriteEndElement()
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
Dim folderPath As String = Directory.GetCurrentDirectory()
Dim filePath As String = Path.Combine(folderPath, "MEMOS\Database.xml")
Dim dat = TextBox1.Text
Dim plc = TextBox2.Text
Dim hed = TextBox3.Text
Dim mem = TextBox4.Text
Dim hor = ComboBox1.Text + " : " + ComboBox2.Text + " " + ComboBox3.Text
Dim writer As New XmlTextWriter(filePath, System.Text.Encoding.UTF8)
writer.WriteStartDocument(True)
writer.Formatting = Formatting.Indented
writer.Indentation = 2
writer.WriteStartElement(TextBox5.Text)
createNode(dat, hor, plc, hed, mem, writer)
writer.WriteEndElement()
writer.WriteEndDocument()
writer.Close()
End Sub
it is writing but only writes one set of data!!!!
modified 7-Jan-19 21:02pm.
|
|
|
|
|
Alienoiz wrote: only writes one set of data What is the result in your file?
|
|
|
|
|
ok i am using this code to write and read, but i am yet trying to figure out the part of reading...
it seems it does not reads the entries started with "0" and those that have "/"...
Private Sub createNode(ByVal dat As String, ByVal hor As String, ByVal plc As String, ByVal hed As String, ByVal mem As String, ByVal writer As XmlTextWriter)
Dim MEMOSAVE = TextBox1.Text
writer.WriteStartElement(MEMOSAVE)
writer.WriteStartElement("Date")
writer.WriteString(dat)
writer.WriteEndElement()
writer.WriteStartElement("Hour")
writer.WriteString(hor)
writer.WriteEndElement()
writer.WriteStartElement("Place")
writer.WriteString(plc)
writer.WriteEndElement()
writer.WriteStartElement("Header")
writer.WriteString(hed)
writer.WriteEndElement()
writer.WriteStartElement("MEMO")
writer.WriteString(mem)
writer.WriteEndElement()
writer.WriteEndElement()
End Sub
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
Dim folderPath As String = Directory.GetCurrentDirectory()
Dim filePath As String = Path.Combine(folderPath, "MEMOS\Database.xml")
Dim dat = TextBox1.Text
Dim plc = TextBox2.Text
Dim hed = TextBox3.Text
Dim mem = TextBox4.Text
Dim hor = ComboBox1.Text + " : " + ComboBox2.Text + " " + ComboBox3.Text
Dim writer As New XmlTextWriter(filePath, System.Text.Encoding.UTF8)
writer.WriteStartDocument(True)
writer.Formatting = Formatting.Indented
writer.Indentation = 2
writer.WriteStartElement("MEMOSAVE")
createNode(dat, hor, plc, hed, mem, writer)
writer.WriteEndElement()
writer.WriteEndDocument()
writer.Close()
End Sub
Private Sub readNode(ByVal dat As String, ByVal hor As String, ByVal plc As String, ByVal hed As String, ByVal mem As String, ByVal reader As XmlTextReader)
Dim MEMOSAVE = TextBox1.Text
reader.ReadStartElement(MEMOSAVE)
reader.ReadStartElement("Date")
reader.ReadString()
reader.ReadEndElement()
reader.ReadStartElement("Hour")
reader.ReadString()
reader.ReadEndElement()
reader.ReadStartElement("Place")
reader.ReadString()
reader.ReadEndElement()
reader.ReadStartElement("Header")
reader.ReadString()
reader.ReadEndElement()
reader.ReadStartElement("MEMO")
reader.ReadString()
reader.ReadEndElement()
reader.ReadEndElement()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim folderPath As String = Directory.GetCurrentDirectory()
Dim filePath As String = Path.Combine(folderPath, "MEMOS\Database.xml")
Dim reader As New XmlTextReader(filePath)
reader.ReadStartElement("MEMOSAVE")
readNode("Date", "Hour", "Place", "Header", "MEMO", reader)
reader.ReadEndElement()
reader.Close()
End Sub
and this is my XML output when i write:
="1.0"="utf-8"="yes"
<MEMOSAVE>
<15/12/2016>
<Date>15/12/2016</Date>
<Hour>01 : 05 PM</Hour>
<Place>USA</Place>
<Header>Testing Memo</Header>
<MEMO>Memorando test text!</MEMO>
</15/12/2016>
</MEMOSAVE>
The fact is that i am not understanding how to create multiple nodes with different data!
i am trying to make a small agenda..and i would like that when i choose a date from the MonthCalendar i auto shows in a textbox the memos for that day!
Thanks
Duarte
modified 7-Jan-19 21:02pm.
|
|
|
|
|
You create node called "15/12/2016" which is most likely the problem.
You really need to stop writing random code, and spend much more time studying the protocol and classes used to manage XML. You cannot learn programming just by posting questions here.
|
|
|
|
|
Like i said..i would have to ask you a lot of things about XML ... i am not a coder... i just like to exercise my mind..so once i a while i code some gadgets..simple things...normally i spend a lot of time searching in google for pieces of code that i can use in my small projects..trying to understand them and retreive what i need..i never had coding lessons either...
my last gadget was this: gadgets[^]
It is simple but i believe it is cool... i also do visual coding of VSTi, and i am also not an audio engeneer... i try to keep my mind busy with these simple apps and audio software!
Well, i guess i have to search better if i want to do the app... i know is not hard and it probably would not be a lot of code lines.. but ok...i will try to figure it out : )
edit: i also manage beatassist.eu and i am also a Dj / Producer ; )
Thanks,
Duarte
modified 7-Jan-19 21:02pm.
|
|
|
|
|
I have a combobox that has different themes in it, and I would like to make a button and once click will save the current theme it is on.
What the combobox looks like is this:
If ComboBox1.SelectedItem = ("Dark") Then
Me.Hide()
Me.BackColor = Color.FromArgb(30, 33, 36)
Label1.ForeColor = Color.Silver
Label2.ForeColor = Color.Silver
Label3.ForeColor = Color.Silver
Label4.ForeColor = Color.Silver
Label6.ForeColor = Color.Silver
Label7.ForeColor = Color.Silver
Label8.ForeColor = Color.Silver
Label9.ForeColor = Color.Silver
Label10.ForeColor = Color.Silver
Label11.ForeColor = Color.Silver
Label12.ForeColor = Color.Silver
Label13.ForeColor = Color.Silver
Label14.ForeColor = Color.Silver
Label15.ForeColor = Color.Silver
Label16.ForeColor = Color.Silver
CheckBox1.ForeColor = Color.Silver
CheckBox2.ForeColor = Color.Silver
TabPage1.BackColor = Color.FromArgb(30, 33, 36)
TabPage2.BackColor = Color.FromArgb(30, 33, 36)
TabPage3.BackColor = Color.FromArgb(30, 33, 36)
TabPage4.BackColor = Color.FromArgb(30, 33, 36)
TabPage5.BackColor = Color.FromArgb(30, 33, 36)
TabPage6.BackColor = Color.FromArgb(30, 33, 36)
LinkLabel1.LinkColor = Color.DeepSkyBlue
System.Threading.Thread.Sleep(300)
Me.Show()
End If
If ComboBox1.SelectedItem = ("Light") Then
Me.Hide()
Me.BackColor = Color.FromArgb(160, 160, 160)
Label1.ForeColor = Color.Black
Label2.ForeColor = Color.Black
Label3.ForeColor = Color.Black
Label4.ForeColor = Color.Black
Label6.ForeColor = Color.Black
Label7.ForeColor = Color.Black
Label8.ForeColor = Color.Black
Label9.ForeColor = Color.Black
Label10.ForeColor = Color.Black
Label11.ForeColor = Color.Black
Label12.ForeColor = Color.Black
Label13.ForeColor = Color.Black
Label14.ForeColor = Color.Black
Label15.ForeColor = Color.Black
Label16.ForeColor = Color.Black
CheckBox1.ForeColor = Color.Black
CheckBox2.ForeColor = Color.Black
TabPage1.BackColor = Color.FromArgb(220, 220, 220)
TabPage2.BackColor = Color.FromArgb(220, 220, 220)
TabPage3.BackColor = Color.FromArgb(220, 220, 220)
TabPage4.BackColor = Color.FromArgb(220, 220, 220)
TabPage5.BackColor = Color.FromArgb(220, 220, 220)
TabPage6.BackColor = Color.FromArgb(220, 220, 220)
LinkLabel1.LinkColor = Color.Blue
System.Threading.Thread.Sleep(300)
Me.Show()
End If
|
|
|
|
|
Add an event handler to the button and read the values from the theme and save them somewhere. Is this supposed to be in permanent storage or just while the application is running?
|
|
|
|
|