Chciałbym porównć dwa pliki (rejestru wiec to duże pliki tekstowe), jednak chciałbym zobaczyć co się w tym rejestrze zmieniło. (żeby potem tych wpisów użyć). Najlepiej gdyby to były fragmenty kodu bo zapewne cięzko bedzie mi to zrozumieć.
0
0
Hejka!
Dużo kodowania, ale dość standardowe, myślę, że sobie poradzisz... :)
Robisz tak:
- Tworzysz TStringList i wczytujesz do niego klucze
- Jako obiekt podpięty (TObject of course ;)) do konkretnego stringa wczytujesz wszystkie elementy z klucza
- Drugi rejestr wczytujesz w ten sam sposób
- Puszczasz pętle (np. for) od 0 do StringList.Count i masz fajna funkcję IndexOf, czyli:
JedenRejestr.IndexOf(DrugiRejestr.Strings[I]
gdzie Jeden i Drugi rejestr to obiekty TStringList, a I to liczba z pętli - Jeśli zwróci -1 to element z drugiego rejestru nie występuje w pierwszym -> masz różnice
- Jeśli będzie co innego niż -1 to jest, więc musisz wyciągnąć obiekty i je porównać. Jeśli się różnią -> masz różnicę.
- I to chyba tyle, życzę powodzenia!
Pozdrawiam, Kubryk ;-) ;-)
0
Kiedyś coś pisałem takiego, nie wiem jak sobie poradzi z Twoim problemem, ale możesz ort! :
0
Hehm, zatrzymałem sie na 1 punkcie polecenia, No stwarza sie TString List i co dalej bo tego nie rozumiem reszta jeszcze jako tako. Patrz mój podpis...
0
Heh...
var
PierwszyRegList : TStringList;
DrugiRegList : TStringList;
procedure Wczytaj;
begin
PierwszyRegList := TStringList.Create;
CzytajZPlikuKluczIJegoElementy;
PierwszyRegList.AddObject(Klucz, TObject(ElementyRejestru); //klucz to string, a ElementyRejestru to np. StringList
DrugiRegList := TStringList.Create;
CzytajZPlikuKluczIJegoElementy;
DrugiRegList.AddObject(Klucz, TObject(ElementyRejestru); //klucz to string, a ElementyRejestru to np. StringList
for I := 0 to (DrugiRegList.Count-1) do
begin
if PierwszyRegList.IndexOf(DrugiRegList.Strings[I])<0 then
ZapiszRóżnicę
else
porównaj elementy stringlist i jeśli się różnią to ZapiszRóżnicę;
end;
end;
To dość pobieżnie, ale resztę (to zresztą też) znajdziesz w Helpie. Przecież tam jest wszystko jasno na białym. Poczytaj o:
TStringList i o plikach rejestru (moze tam są jakies fajne procedury)
Pozdrawiam, Kubryk