|
|
well its funny.. i am not able to do it for what i think they are 3 or 4 lines of code..or even less..
i just need to find out how to create multiple entries with the same button!!!
the code is almost ready..i can write (only one entry cause when i try the second it overwrites the previous data)..i can read based in the "Date" field and i can also delete my file...
: )
modified 7-Jan-19 21:02pm.
|
|
|
|
|
If you are not using that list to hold "all" entries, then yes, you would need to find a way to see if the entry is already in the file, and if not, append it.
The approach of the list fixes both the invalid names in the XML-file as well as having to see if an entry is in the file, since it is easier to see if your entry is already in the list.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Ok yes... that´s what i need but i do not know how to code it!!!???
i want to append more entries so i can have different dates and memos and access them individually!
Yes i believe thats what i need to know : )
I manually inserted more entries and the reading seems ok..i am being able to read sorting from the "DATE" field..and it sorts all fields from that entry...so i believe the reading part is ok..the writting part it is not like we know..and i am trying to figure out how to remove my entries...i am being able to do it but it bugs a bit with the reading part cause when the file has all entries deleted the read part is returnning error because the procedure does not finds a valid table!!!
modified 7-Jan-19 21:02pm.
|
|
|
|
|
Alienoiz wrote: i am trying to figure out how to remove my entries.. You have the code to "Add" an item to a list(Of T), I'll leave it up to you to figure out how to Remove[^] an item of a List(Of T).
After modifying the list, call your Save-method so that the serializer overwrites the old file with the new contents of the list.
Alienoiz wrote: because the procedure does not finds a valid table!!! An XML file does not have the concept of a table; it's elements within elements. Show us some code
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
ok... this is what i am using to read:
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim folderPath As String = Directory.GetCurrentDirectory()
Dim filePath As String = Path.Combine(folderPath, "MEMOS\Database.xml")
If Not File.Exists(filePath) Then
MessageBox.Show("DataBase not found!")
Else
Dim sav = TextBox1.Text
Dim xmlFile As XmlReader
xmlFile = XmlReader.Create(filePath, New XmlReaderSettings())
Dim ds As New DataSet
Dim dv As DataView
ds.ReadXml(xmlFile)
dv = New DataView(ds.Tables(0))
dv.Sort = "Date"
Dim index As Integer = dv.Find(sav)
If index = -1 Then
MsgBox("Item Not Found")
Else
Label9.Text = (dv(index)("Date").ToString())
Label10.Text = (dv(index)("Hour").ToString())
Label11.Text = (dv(index)("Place").ToString())
Label12.Text = (dv(index)("Header").ToString())
TextBox4.Text = (dv(index)("MEMO").ToString())
End If
Return
End If
End Sub
it is working like a glove...it only has 1 catch..when there are no nodes in the .xml document or columns it returns:
"Cannot find table 0"
or
"Cannot find DATE column"
i am also not knowing how to close this proccess... so i can delete the file .xml..sometimes returns that the file is already in use when i try to delete it or record new data on it : (
but the rest seems ok : ) ...
modified 7-Jan-19 21:02pm.
|
|
|
|
|
Alienoiz wrote: "Cannot find table 0" If you load a dataset (a collection of tables) from XML, then these tables have to exist in the XML file.
Alienoiz wrote: i am also not knowing how to close this proccess... so i can delete the file .xml..sometimes returns that the file is already in use when i try to delete it or record new data on it : ( If you are done using the XmlReader[^], dispose it. Otherwise the reader will remain open and lock the file.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
ok.. but is there a condition that i can use so that when it finds no table it "do nothing" for eg.
and can you show me how to dispose the XMLReader considering the code i have..i am finding too many info in one page that my mind cannot proccess :s
modified 7-Jan-19 21:02pm.
|
|
|
|
|
Alienoiz wrote: ok.. but is there a condition that i can use so that when it finds no table it "do nothing" for eg. You are now using "ds.Tables(0)", without checking if there is a table at that index.
And yes, that would probably be too cryptic if you don't understand what the code is doing.
Alienoiz wrote: and can you show me how to dispose the XMLReader considering the code i have. xmlFile.Dispose()
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
ok..so how can i check if there is a table for this case?
Thanks!
modified 7-Jan-19 21:02pm.
|
|
|
|
|
I believe that my code is almost ready..i just need to fix the table thing and it seems that the xmlfile.Dispose() it is only working when the code is inside a button click instance!
I was trying to use the MonthCalendar data change so that when i select a date in it, it automatically shows the Memo for that date...it works but then it conflicts again with the saving!
modified 7-Jan-19 21:02pm.
|
|
|
|
|
Alienoiz wrote: i just need to fix the table thing You may need a bit more, but yes, you should check the length of the array before using it.
Alienoiz wrote: it seems that the xmlfile.Dispose() it is only working when the code is inside a button click instance! Only works when the variable is in scope.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
ok..can you show me the code to fix both things? or at least the table thing!!???
I am not able to fix it by myself!!!
modified 7-Jan-19 21:02pm.
|
|
|
|
|
Alienoiz wrote: ok..can you show me the code to fix both things I could, but then I'd be fixing the next issues also. I'll gladly help, but you seriously need to learn some of the basics before attempting projects.
MessageBox.Show(ds.Tables.Count)
That would show you how many tables are in the dataset. You need to do "nothing" if there are 0 tables there. So, something along the lines of "Ff (ds.Tables.Count = 0) Then"..
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
ok..i guess i solved the table problem..just do not know how to close the xmlfile.reader so it allows me to save at will!
modified 7-Jan-19 21:02pm.
|
|
|
|
|
Alienoiz wrote: just do not know how to close the xmlfile.reader so it allows me to save at will! If you create a reader (or a writer) object, then it needs to be disposed - in the same method where you are creating it.
The simpeler option is to wrap the reader in a using statement.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
yes i saw something about Using and End Using, but i do not know how to apply in my code : )
modified 7-Jan-19 21:02pm.
|
|
|
|
|
That's why we have documentation, examples and tutorials. The syntax for a using-statement is not complicated.
If you want to modify code, you'll have to learn those things
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
i usually learn better with examples..when i apply something here and there i memorize and i know how to do later for other code..i also keep some records of code to use when i need : )
Thats why i started this project by trying the .ini method...i was already familiarized with it : )
..you said for me to change into xml..i did and i already learn a lot of new code ehe
Thanks... at least my gadget is evoluting... i would like to solve the issue about the saving!
modified 7-Jan-19 21:02pm.
|
|
|
|
|
Alienoiz wrote: i usually learn better with examples. We all learn in a similar way, and yes, examples help a lot. That's why the documentation on MSDN contains an example for most classes and methods. It also contains the syntax, which explains which construction the compiler expects.
Alienoiz wrote: when i apply something here and there i memorize and i know how to do later for other code Sorry, but that's not going to work, since the thing you may remember may be required in a slightly different way, or needs to modified a tiny bit, or extended a tiny bit. Get a book, learn basics, and get in the habit of looking up every statement that you don't understand on MSDN.
Alienoiz wrote: Thats why i started this project by trying the .ini method...i was already familiarized with it : ) The problem there would be that initialization files are outdated, and they were never meant as a data-store.
Alienoiz wrote: ..you said for me to change into xml..i did and i already learn a lot of new code ehe Yup, that's true; and you seem willing enough to learn and try.
Alienoiz wrote: i would like to solve the issue about the saving! Type the word "using" as the first word on the line below in your code, and see what happens;
xmlFile = XmlReader.Create(filePath, New XmlReaderSettings()) I'll leave it up to you to figure out where to end the using
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
it is not working..i tried to "end using" before than every "end if" and it is not working in any place
modified 7-Jan-19 21:02pm.
|
|
|
|
|
The "end using" is placed usually after the last time (the last line of code) you actually need the object you're using. After the end-using the object is no longer valid. Depending on your code, that may be the last line of the method.
Alienoiz wrote: and it is not working in any place What does "not working" mean? I know you got a message from the compiler, but which one?
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
this is my code..!
Private Sub MonthCalendar1_DateChanged(sender As Object, e As DateRangeEventArgs) Handles MonthCalendar1.DateChanged
TextBox1.Text = MonthCalendar1.SelectionRange.Start.ToShortDateString()
Dim folderPath As String = Directory.GetCurrentDirectory()
Dim filePath As String = Path.Combine(folderPath, "MEMOS\Database.xml")
If Not File.Exists(filePath) Then
MessageBox.Show("DataBase not found!")
Else
Dim sav = TextBox1.Text
Dim xmlFile As XmlReader
Using xmlFile = XmlReader.Create(filePath, New XmlReaderSettings())
Dim ds As New DataSet
Dim dv As DataView
ds.ReadXml(xmlFile)
Dim dset = ds.Tables.Count
If dset = 1 Then
dv = New DataView(ds.Tables(0))
dv.Sort = "Date"
Dim index As Integer = dv.Find(sav)
If index = -1 Then
MsgBox("Nothing set for this date!")
Else
ComboBox1.Text = (dv(index)("HOUR").ToString())
ComboBox2.Text = (dv(index)("MINUTES").ToString())
ComboBox3.Text = (dv(index)("AMPM").ToString())
TextBox1.Text = (dv(index)("DATE").ToString())
TextBox2.Text = (dv(index)("PLACE").ToString())
TextBox3.Text = (dv(index)("NAME").ToString())
TextBox4.Text = (dv(index)("PHONE").ToString())
TextBox5.Text = (dv(index)("EMAIL").ToString())
TextBox6.Text = (dv(index)("HEADER").ToString())
TextBox7.Text = (dv(index)("MEMO").ToString())
End If
Return
Else
MessageBox.Show("No MEMOS in DataBase!")
End If
End Using
End If
End Sub
in the lines :
Dim xmlFile As XmlReader
and
Using xmlFile = XmlReader.Create(filePath, New XmlReaderSettings())
the word "xmlFile" is underlined in green and red
modified 7-Jan-19 21:02pm.
|
|
|
|
|
Alienoiz wrote: the word "xmlFile" is underlined in green and red Red means "error", which you already said. Hover your mouse over it, and it will display a message. Alternatively, you look in the error-window.
It may be "Type is not defined". The one on "XmlFile" would say that it hides another variable. And yes, you already declared a variable with that name. What happens if you remove the first declaration?
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
it happens that the using function works .. but still is in conflict with the saving :s
!!!
modified 7-Jan-19 21:02pm.
|
|
|
|