@snpgg

Как хранить диффы изменений файлов?

Привет
есть задача
есть список путей к созданным файлам до запуска программы
надо написать метод чтения, создания и запись в такие файлы так, чтобы создание новых файлов и запись в существующие была "in memory"
т.е надо как-то хранить в памяти не полностью контент каждого файла, а изменение
В какую сторону можно посмотреть
  • Вопрос задан
  • 140 просмотров
Пригласить эксперта
Ответы на вопрос 1
grantur5707
@grantur5707
Full Stack Web Developer
Вы можете хранить изменения файлов как набор патчей где каждое изменение записывается в виде разницы между состояниями файла. При чтении файла можно применить все патчи к базовому состоянию файла, чтобы получить актуальный контент.

Пример кода для создания базового патча:
struct FilePatch {
    int lineNumber;
    char* oldLine;
    char* newLine;
};

struct FileDiff {
    FilePatch* patches;
    int patchCount;
};

void applyDiff(char** fileContent, FileDiff* diff) {
    for (int i = 0; i < diff->patchCount; ++i) {
        int lineNumber = diff->patches[i].lineNumber;
        fileContent[lineNumber] = diff->patches[i].newLine;
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы