Serjoga |
Отправлено: 02.12.2006, 21:09 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 9
|
Извините за назойливость, но снова проблема с файлами...
Нужно сделать что-то типа топ10. Если набрано очков больше чем в списке то заменить данные на новые.
Вот как я пытаюсь это сделать, но в файл ничего не заносится и ошибок не выдаёт:
tsl->LoadFromFile("HighScore.txt");
h=FileOpen("HighScore.txt",0);
for (int i=0; i < 10; i++) {
if (score>StrToInt(tsl->Strings[i])) {
b=score;
FileSeek(h,i,0);
FileWrite(h,&b,0);
break;
}
}
Подскажите пожалуйста в чём тут ошибка?
Отредактировано Serjoga — 03.12.2006, 15:28 |
|
AVC |
Отправлено: 04.12.2006, 10:51 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE |
TStringList *lst = new TStringList();
//lst->LoadFromFile("HighScore.txt");
for (int i(11); i < 20; i++) lst->Add(i); // существующий список
lst->Add(2); // новое знвчение
for (int i(0); i < lst->Count; i++) // выровнять для сортировки
lst->Strings[i] = AnsiString().sprintf("%010.10d", lst->Strings[i].ToIntDef(0));
lst->Sort();
for (int i(lst->Count-1); i>= 0; i--) // оставить первые
{ if (i>= 10) lst->Delete(i);
else lst->Strings[i] = lst->Strings[i].ToIntDef(0);
}
Memo1->Lines->AddStrings(lst); // посмотреть результат
//lst->SaveToFile("HighScore.txt");
delete lst;
| |
|
|