用streamreader类读文件行的循环?紧急求救!该怎么解决

用streamreader类读文件行的循环?紧急求救!
String^ line;

IsolatedStorageFileStream^ MyFile =gcnew IsolatedStorageFileStream("AAA.txt",FileMode::Open, FileAccess::ReadWrite, FileShare::ReadWrite );
StreamReader^ MyReader=gcnew StreamReader(MyFile);

line = MyReader->ReadLine();
char* cmdline=(char*)(void*)Marshal::StringToHGlobalAnsi(line); // 转System::string为char*

while(MyReader->Peek()>=0)
{
Interpreter(cmdline, &x, &y...........);
Draw(x, y..........);
line = MyReader->ReadLine();
  char* cmdline=(char*)(void*)Marshal::StringToHGlobalAnsi(line);
  }

private:
void Draw(x,y..........)
{
Graphics ^ g;
g=this->pictureBox1->CreateGraphics();
Pen^ MyPen = gcnew Pen(Color::Green,2.0f );
g->DrawLine(MyPen, (float) x1, (float) y1,(float) x2, (float) y2);
}

程序是为了逐行读取已存文档中的加工程序行 翻译为绘图数据 在窗体上绘图

调试时输入多行程序 只能画出第二行 第一行和二行以下均无法绘出 不知道是什么问题呢?
并且有时候会提示AAA文件正在被其他进程使用这样的信息 不知怎么解决?
谢谢谢谢!



------解决方案--------------------
你下断点看看

char* cmdline
line

每次循环都取得值了吗?
估计是你代码逻辑性的问题;

读取文件循环用 do while 好一点
line = MyReader->ReadLine(); 
后判断 line 是否是空(VC是 ptrnull )退出循环即可;
------解决方案--------------------
并且有时候会提示AAA文件正在被其他进程使用这样的信息 不知怎么解决? 

可能是读写文件的流打开后未及时关闭
------解决方案--------------------
peek 是移动一个字符,后面却读一行,会有问题

while(MyReader->Peek()>=0) 

------解决方案--------------------
String ^sFile = ""; //文件路径
StreamReader^ MyReader=gcnew StreamReader(sFile, Text::Encoding::Default); 
String ^sLine = "";
while (MyReader->EndOfStream)
{
sLine = MyReader->ReadLine();
const char* cmdline = (char*)(void*)Marshal::StringToHGlobalAnsi(sLine);
........
}