Comment inserer un caractère dans un fichier

Fermé
Reptile - 11 août 2002 à 20:41
 Reptile - 12 août 2002 à 11:07
Bonjour,

Depuis peu, je suis sur un programme que j'ai créé, qui permet, en gros, de rajouter des lignes par ordre alphabétique.
Mais voilà, il arrive un moment où la ligne à rajouter, est au milieu d'un tas d'autre ligne, et donc je souhaitais inserrer ma ligne sans effacer la ligne qui précède, et celle qui suit.
EXemple:

ABC
BGHF
CDFGHY

ACC -> voici la ligne que je veux rajouter.
Il faudrai que cette ligne soit entre ABC & BGHF
Comme ces données sont dans un fichier, je ne peux pas utiliser la fonction STRCAT.
Alors j'ai créé une fonction qui permet de rajouter cette ligne entre les 2, mais le blème, c'est que ma fonction utilise un tableau limité en octet.
BREF, vu que ça marche pas, je me suis dit, demande à ce Forum.

Alors, y-aurait-il une fonction, qui permettrai d'INSERER (et non de rajouter) une ligne(donc un caractère) dans UN FICHIER comme indiqué précédement?

J'espère que c'est clair,

Merci d'avance!!
A voir également:

2 réponses

blux Messages postés 26023 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 6 mai 2024 3 289
11 août 2002 à 21:42
Salut,

en BASIC, C, C++, COBOL, LISP, B, ALGOL (à 90), ASM, PHP, GMAP, FORTRAN ? :-)

Sinon, en algorithmique pure, ce que tu évoques me fait tout de suite penser à une gestion de chaines.

Il suffit que tu traites toutes tes données en leur ajoutant un numéro d'ordre (1,2,3...N) et un pointeur vers la ligne précédente et suivante, et en écrivant ça dans un fichier.

Genre :

Numéro d'ordre-Donnée-Suivant-Précédent

1-ABC-2-0
2-DEF-3-1
3-GHI-4-2
4-IJK-0-3

Quand tu as fini de lire toutes tes lignes tu relis tes données et tu les réécrit dans un autre fichier selon l'ordre de la chaine.

Quand tu veux insérer une ligne il suffit de modifier les pointeurs des lignes précédentes et suivantes pour garder la cohérence que tu souhaites. Bien sûr, les données que tu écrit et que tu modifies sont dans un fichier à accès direct.

Pour insérer AZZ, tu écris 5-AZZ-2-1 et tu modifies ABC en 1-ABC-5-0 et DEF en 2-DEF-3-5...

Est-ce que ça t'inspire ?

A+ Blux            "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
En fait c'est du c++, avec Vc++6.

Ben ouais, c'est une solution. Mais ça m'arrangerais si il y avait une fonction pour insérer une autre ligne. Sinon je vais réessayer d'arranger ma fonction.
Si tu pense connaître une fonction d'insertion déjà existente dans VC, fait moi signe.

Merci de ta réponse!
0