Re: Error on ReadAllBytes
Sorry, I'm not trying to vague, I was trying not to innundate the thread with
a bunch of code. The other "stuff" is setting the parameters of a form with
the info from the config file, then opening the form, displaying information,
then closing the form. The setup of the program is a form (Form1) with a
config button and the "stuff" button. If I click the config button right
after startup, it works (reads the config file properly). When I click
"stuff", it opens the file (properly) and displays the info needed. When I
exit the form created by "stuff", it goes back to Form1. Then if I click the
config button or "stuff", the read is incorrect. It changes both integers to
0x2 consistently.
Here are my save and open routines:
static void SaveParams(String ^path, int pan, int report)
{
array<unsigned char>^ dataArray = gcnew array<unsigned
char>(MAX_FILENAME+sizeof(int) + sizeof(int));
//copy file path
if(path[path->Length-1] != '\\')
path += "\\";
//TilePath = TilePath->Replace("\\", "\\\\");
Encoding^ charBytes = Encoding::ASCII;
Buffer::BlockCopy(charBytes->GetBytes(path), 0, dataArray, 0,
path->Length);
Buffer::BlockCopy(BitConverter::GetBytes(pan), 0, dataArray,
MAX_FILENAME, sizeof(int));
Buffer::BlockCopy(BitConverter::GetBytes(report), 0, dataArray,
MAX_FILENAME + sizeof(int), sizeof(int));
try{
File::WriteAllBytes(".\\wiips.cfg", dataArray);
}
catch(Exception ^e){
e->Message;
}
}
static String^ OpenParams(int *pan, int *report)
{
String ^path;
try{
array<unsigned char>^ dataArray =
File::ReadAllBytes(".\\wiips.cfg");
Encoding^ charBytes = Encoding::ASCII;
path = charBytes->GetString(dataArray, 0, MAX_FILENAME);
//removes null values from string
int index = path->IndexOf(0);
if(index > 0)
path = path->Remove(index);
*pan = BitConverter::ToInt32(dataArray, MAX_FILENAME);
*report = BitConverter::ToInt32(dataArray, MAX_FILENAME +
sizeof(int));
}
catch(Exception ^e){
e->Message;
}
return path;
}
I've checked the code and I only call them and access the file when I intend
to. Hope this helps. Thanks for your time.