@A250-Fan
Falls du es deiner KI nicht beibringen kannst , hier die Version mit den Headerzeilen. Kannst dann einstellen wieviel Zeilen immer stehen bleiben sollen:
const fs = require('fs');
switch (mode) {
case 'r':
return fs.readFileSync(Dateiname, 'utf8');
case 'w':
return fs.writeFileSync(Dateiname, Daten);
case 'a':
return fs.appendFileSync(Dateiname, Daten);
case 'aL':
let maxLines = 100; // Anzahl Datenzeilen (ohne Header)
let headerLines = 2; // Anzahl geschützter Zeilen oben
let content = '';
if (fs.existsSync(Dateiname)) {
content = fs.readFileSync(Dateiname, 'utf8');
}
let lines = content === '' ? [] : content.split(/\r?\n/);
// technischen letzten Leer-Eintrag entfernen
if (lines.length > 0 && lines[lines.length - 1] === '') {
lines.pop();
}
// Header und Daten trennen
let header = lines.slice(0, headerLines);
let data = lines.slice(headerLines);
// führende \n aus neuen Daten entfernen
let neuerEintrag = String(Daten).replace(/^\r?\n+/, '');
// neuen Eintrag anhängen (nur Datenbereich!)
data.push(neuerEintrag);
// Datenbereich begrenzen
if (data.length > maxLines) {
data = data.slice(-maxLines);
}
// wieder zusammensetzen
let result = header.concat(data);
fs.writeFileSync(Dateiname, result.join('\n') + '\n');
return `OK (Header: ${header.length}, Daten: ${data.length}/${maxLines})`;
default:
return 'Parameter mode muss "r", "w", "a" oder "aL" sein';
}
Schöne Ostertage.
Gruß, Johannes