JimmyLouis
Messages postés14Date d'inscriptionjeudi 26 décembre 2002StatutMembreDernière intervention13 mai 2015
-
3 janv. 2008 à 17:23
WhiteHippo
Messages postés1154Date d'inscriptionsamedi 14 août 2004StatutMembreDernière intervention 5 avril 2012
-
3 janv. 2008 à 19:11
Bonjour et bonne année,
Pas tres calé en TMemoryStream ! (Cbuilder sinon C++) et apres une apres-midi de recherche, je rend la main.
1) Pour changer tous les caractère ";" par "," dans 1 gros fichier, je fais :
int T;
char *C;
char Ligne[545];
TMemoryStream* MS = new TMemoryStream();
MS->LoadFromFile("ESSAI.TXT");
T = MS->Size;
C = new char[T];
MS->Read(C+1,T);
for (int I=0; I<T; I++) {
if (C[I] == ' ; ' C[I] =','; // Je change les ";" par des "," dans tout le texte.
}
MS->Position = 0;
MS->Write(C,T);
MS->SaveToFile("ESSAI2.CSV");
delete MS;
delete[] C;
}
Evidemment ca fonctionne impécable !...
2) ce qui me plairait serait de pouvoir changer toutes les occurences ";;" par ",-,"
(Autrement dit tout les endroits ou il y a un doublepoint-virguleinsérerun signe moins)
Quelqu'un aurait-il la connaissance pour me mettre sur le "droit" chemin ?
Merci par avance.
WhiteHippo
Messages postés1154Date d'inscriptionsamedi 14 août 2004StatutMembreDernière intervention 5 avril 20123 3 janv. 2008 à 19:11
Bonsoir
Ton code n'étant pas écrit en Delphi, ton post ne se trouve pas à la bonne place.
Cependant, rapidement je dirais, qu'il faudrait 2 TMemoryStream, un pour la lecture du fichier d'origine, et un second pour l'ecriture du fichier modifié. Tu copies chaque caractère de la source vers la destination si c'est un caractère différent d'un ; sinon dès que tu rencontre un ; et que le caractère suivant est de nouveau un ; alors tu copies ton ,-, dans la Destination, etc.
Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein