saiyajin3
Messages postés31Date d'inscriptionmercredi 13 avril 2005StatutMembreDernière intervention24 juillet 2007
-
21 juin 2006 à 10:50
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 2013
-
22 juin 2006 à 10:55
Au secours, ça fait deux jours que je pète un câble...
Je fais un logiciel de comparaison ligne par ligne de 2 fichiers, qui doit mettre en gras les différences trouvées!
J'aimerais mettre une STRING en gras pour ensuite l'insérer dans une ligne que j'afficherai. Voici un morceau de mon code:
var
i: integer ;
j: integer ;
k: integer ;
begin
j:= 1;
k:=1;
while (j<=Length(text1)) and (k<=Length(text2)) do
begin
if Text2[k] <> Text1[j] then // Si les caractères sont différents
begin
// je voudrais mettre le caractère Text2[k] en gras ici !!!!!
end;
inc(j);
inc(k);
end;
i : = CodeEdit.Lines.Add(Text1) ; // J'ajoute ma ligne.
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 21 juin 2006 à 14:18
Salut,
Voici une méthode, je te donne le principe :
après avoir ajouté la ligne dans ton RichEdit, il faut faire une sélection du caractère différent puis mettre en gras et en rouge cette sélection. Pour sélectionner, tu emploies la propriété SelStart (position du 1° caractère sélectionné) et SelLength(nb de caractères contigus sélectionnés).
Puis : SelAttributes.Style:=[fsBold];
SelAttributes.Color:= clred;
Ton problème est donc de mémoriser , dans ton string que tu compares, l'emplacement des caractères modifiés. Tu peux le faire p.ex. dans un tableau dynamique d'integer.
Avant d'ajouter ton string dans le richedit, tu calcules le point de départ de la nouvelle ligne :
une solution : Depart:= Length(RichEdit1.Text);
Puis : SelStart = Depart + PositionCarModifie - 1;
SelLength:= 1;
SelAttributes...
...
Désolé de ne pas être plus précis, mais je n'ai plus le temps pour le moment.
A +
Thierry
ThWilliam
Messages postés418Date d'inscriptionmardi 3 janvier 2006StatutMembreDernière intervention26 novembre 20134 22 juin 2006 à 10:55
Salut,
Heureux d'avoir pu t'aider.
La comparaison caractère par caractère entre deux fichiers est assez complexe à réaliser.
Pas de problèmes si on a simplement remplacé un caractère par un autre.
Mais si on a inséré (ou supprimé) un caractère, tu vas avoir tout le reste de la ligne en gras, puisque la position des caractères a changé !
Et je ne parle pas de l'insertion d'une ligne !
Tu as du boulot...