XML Help... - Printable Version
-Shoutbox (https://shoutbox.menthix.net)
+-- Forum: MsgHelp Archive (/forumdisplay.php?fid=58)
+--- Forum: Messenger Plus! for Live Messenger (/forumdisplay.php?fid=4)
+---- Forum: Scripting (/forumdisplay.php?fid=39)
+----- Thread: XML Help... (/showthread.php?tid=91623)
XML Help... by Haydn5149 on 07-24-2009 at 04:46 AM
Im new at XML, and im wondering how i would... "load" all the lines of a specified .txt file in to an XML ListBoxControl and then "save" all the info back to the .txt file?
RE: XML Help... by ryxdp on 07-24-2009 at 06:36 AM
Take a look at the ReadLine() method, which should help you a lot (especially the while loop at the end of the first example)
As for saving it again, see the WriteLine method link in the sidebar.
RE: XML Help... by Haydn5149 on 07-24-2009 at 08:17 AM
i made this, it reads the file to the end but it returns
code: Error: 'undefined' is null or not an object (code: -2146823281)
File: XMLFile.js. Line: 24.
Error: 'undefined' is null or not an object (code: -2146823281)
File: XMLFile.js. Line: 24.
Error: 'undefined' is null or not an object (code: -2146823281)
File: XMLFile.js. Line: 24.
Heres the script
code: function loadItems(PlusWnd)
{
var filename = (MsgPlus.ScriptFilesPath + '\\processes2.txt')
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile(filename);
while (!f.AtEndOfStream)
{
var readFileLine = f.ReadLine();
var PIDv = ReadIni(ConfigFile, 'Processes', readFileLine, 0)
var MSNn = ReadIni(ConfigFile, 'Names', PIDv, 0)
PlusWnd.LstBox_AddItem('ProcessLBox', readFileLine, pitems + 1);
PlusWnd.LstBox_AddItem('FileNameLBox', PIDv, nitems + 1);
PlusWnd.LstBox_AddItem('MSNNameLBox', MSNn, mitems + 1);
}
f.Close();
}
Any ideas?
mitems nitems pitems are globals, read and write ini function exists in my script also
RE: XML Help... by matty on 07-24-2009 at 12:57 PM
You will need to post the entire XMLFile.js code. Use [code=js][/code] to wrap the code to make it easier to read. With just posting that we have no idea what line 24 is.
However I suspect it is because you are not specifying all of the parameters for OpenTextFile.
js code: function loadItems(PlusWnd) {
var filename = (MsgPlus.ScriptFilesPath + '\\processes2.txt')
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile(filename, 0x1 /* ForReading */, false /* Do not create if it doesn't exist */);
while (!f.AtEndOfStream) {
var readFileLine = f.ReadLine();
var PIDv = ReadIni(ConfigFile, 'Processes', readFileLine, 0)
var MSNn = ReadIni(ConfigFile, 'Names', PIDv, 0)
PlusWnd.LstBox_AddItem('ProcessLBox', readFileLine, pitems + 1);
PlusWnd.LstBox_AddItem('FileNameLBox', PIDv, nitems + 1);
PlusWnd.LstBox_AddItem('MSNNameLBox', MSNn, mitems + 1);
}
f.Close();
}
RE: XML Help... by Haydn5149 on 07-25-2009 at 05:39 AM
ok, Heres the full XMLFile.js
its not complete, but im just trying to get it to display the contents when loadFiles(PlusWnd) is called
js code: var pitems;
var pword;
var nitems;
var nword;
var mitems;
var mword;
function showConfig(PlusWnd)
{
WndOptions = MsgPlus.CreateWnd("dialogMain.xml", "options");
loadItems(PlusWnd);
}
function loadItems(PlusWnd)
{
var filename = (MsgPlus.ScriptFilesPath + '\\processes2.txt')
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile(filename);
while (!f.AtEndOfStream)
{
var readFileLine = f.ReadLine();
var PIDv = ReadIni(ConfigFile, 'Processes', readFileLine, 0)
var MSNn = ReadIni(ConfigFile, 'Names', PIDv, 0)
PlusWnd.LstBox_AddItem('ProcessLBox', readFileLine, pitems + 1);
PlusWnd.LstBox_AddItem('FileNameLBox', PIDv, nitems + 1);
PlusWnd.LstBox_AddItem('MSNNameLBox', MSNn, mitems + 1);
}
f.Close();
}
function newProcess(PlusWnd)
{
pitems = PlusWnd.LstBox_GetCount("ProcessLBox");
pword = PlusWnd.GetControlText('Processes');
nitems = PlusWnd.LstBox_GetCount("FileNameLBox");
nword = PlusWnd.GetControlText('FileNames');
mitems = PlusWnd.LstBox_GetCount("MSNNameLBox");
mword = PlusWnd.GetControlText('MSNDispNames');
PlusWnd.LstBox_AddItem('ProcessLBox', pword, pitems + 1);
PlusWnd.LstBox_AddItem('FileNameLBox', nword, nitems + 1);
PlusWnd.LstBox_AddItem('MSNNameLBox', mword, mitems + 1);
}
function OnoptionsEvent_CtrlClicked(PlusWnd, ControlId) {
if (ControlId == "BtnLoad") {
loadItems(PlusWnd);
}
if (ControlId == "BtnSave") {
}
if (ControlId == "BtnAdd") {
newProcess(PlusWnd);
}
if (ControlId == "BtnClose") {
PlusWnd.Close(1)
}
}
FIXED, i wasnt detecting PlusWnd.LstBox_ as it was loading at the same time as building XML, having it on individual load button works
|