Envoyé par CyberChouan
On ne peut pas réécrire partiellement dans un fichier.
Lorsqu'on ouvre un fichier en écriture, on écrase forcément son contenu. Donc si tu veux remplacer uniquement la ligne 1 , tu dois le faire... puis réécrire toutes les lignes suivantes!
Réécrire tout ton fichier à chaque exécution d'une ligne, ce n'est pas forcément optimal... alors voilà ce que je te propose:
tu ouvres un deuxième fichier en écriture: à chaque ligne exécutée, tu l'ajoutes dans ce deuxième fichier (sans oublier de faire un "flush()" pour qu'il soit réellement écrit en cas d'interruption inattendue de ton programme).
lorsque tu as une requête sql à exécuter, tu vérifies dans ce deuxième fichier si elle ne s'y trouve pas déjà.
Bien sûr, tu peux optimiser ce système en chargeant ce deuxième fichier en mémoire au démarrage de ton application si il existe. Comme ça lors de l'exécution du programme, tu n'y accèdes qu'en écriture.