Сохранить переменную последней даты записи:
// Should be persistent for lifetime of app:
// eg: global, static, or class member
int lastWriteDay = 0;
При написании новой строки сравните дату последней записи с текущей датой. Если даты отличаются, сбросьте номер строки.
....
if (CTime::GetCurrentTime().GetDay() != lastWriteDay) {
number = 1;
lastWriteDay = CTime::GetCurrentTime().GetDay();
}
// Do write....
....
Затем вы можете обновить номер при создании строки:
buf.Format(_T("%s\t%s\t%d\t%d\t%s\t%d\r\n\r\n"),
strDate,
strTime,
number++, // Increment for next time
cardnumber,
value);
Также в примере в вашем вопросе недостаточно параметров. И, кажется, нет необходимости преобразовывать целые числа в CString
. Просто используйте спецификатор формата %d
.
TODO: Возможно, вы захотите добавить код, который запускается при запуске, который открывает файл, читает последнюю строку и анализирует строку, чтобы получить последний день записи. Затем инициализируйте lastWriteDay
для этого. Это необходимо для того, когда приложение по какой-то причине было закрыто и перезапущено в тот же день.