номер строки в текстовом файле Cfile C ++ - PullRequest
0 голосов
/ 18 июня 2019

Я хочу напечатать номер строки, напечатанной на C ++, используя Cfile.Я хочу написать номер строки в соответствии с датой.например в том же файле написано за два дня,

Nr   date   time     code     value
1 10/6/2019  09:10   220      55
2 10/6/2019  10:16    33       23
3 10/6/2019  10:50    55       11
1 11/6/2019  03:55    11       15
2 11/6/2019  08:22    18       20

все правильно, кроме номера строки

CString strDate, strYearShort, strTime;

strYearShort = (CString)Datum.year;
strYearShort = strYearShort.Right(2);
strDate = (CString)Datum.day + '.' + (CString)Datum.month + '.' + strYearShort;
strTime = (CString)Zeit.hour + ':' + (CString)Zeit.minute;

buf.Format(_T("%s\t%s\t%s\t%s\t%s\t%d\r\n\r\n"), strDate, strTime, (CString)number, (CString)cardnumber, value);

enter code hereif (CTime::GetCurrentTime().GetDay() != lastWriteDay) {
        for (i = 1, i < 100, i++) {
            int Nu = i,
        }
    }
    else if (CTime::GetCurrentTime().GetDay() = lastWriteDay) {
        Nu == 0;
            or (i = 1, i < 100, i++) {
            Nu = i,
        }
    }

1 Ответ

0 голосов
/ 18 июня 2019

Сохранить переменную последней даты записи:

// 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 для этого. Это необходимо для того, когда приложение по какой-то причине было закрыто и перезапущено в тот же день.

...