Сохраняем текущий расклад
err = FileRead(iFile, &Pos, sizeof(Pos));
if( err == -1 )
{ ShowMessage("Pos"+BAD_INPUT_STR) ;
FileClose(iFile) ;
return ;
~ } err = FileRead(iFile, &Pack, sizeof(Pack));
if( err == -1 )
{ ShowMessage("Pack"+BAD_INPUT_STR) ;
FileClose(iPile) ;
return;
} err = F,ileRead(iFile, Well,
•
sizeof(TCard)*5*5*PACK_TOTAL) ;
if( err == -1 )
{ ShowMessage("Well"+BAD_INPUT_STR) ;
FileClose(iFile) ;
return;
} FileClose(iFile) ;
ShowAll() ;
}
В конце метода вызывается метод ShowAII(), чтобы перерисовать весь расклад, что вполне естественно — ведь после считывания из файла он полностью изменился.
Обратите внимание на то, что данные из файла считываются строго в том порядке, в каком они записывались в файл. Если этот порядок будет нарушен, то в область переменных программы из файла может быть считана неверная информация.
Переменных в пасьянсе пять. В крупных проектах переменных некоторых классов могут насчитываться сотни. При этом писать для каждой из них отдельный вызов функции ввода/вывода становится очень неудобно. Да и ошибиться легко — если вдруг в классе добавится новая переменная, ее надо будет специально добавлять в методы сохранения и восстановления, а при
237