C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Снова файлы...
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;

Вернуться в Вопросы программирования в C++Builder