Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Registry - Files lesen und löschen (https://www.delphipraxis.net/73595-registry-files-lesen-und-loeschen.html)

toredo 20. Jul 2006 11:17


Registry - Files lesen und löschen
 
hay,

ich hab schön gemütlich an einem prog geschrieben und dann auf einmal kam ich nicht mehr weiter:
ich muss es hinbringen, dass es bei einem pfad in der registry alle zeichenfolgen liest, also nur die namen, und dann bestimmte löscht. wenn es einfacher ist, dann ginge es auch wenn alle zeichenfolgen in dem pfad gelöscht werden.
ich habe auch schon ne procedur gefunden mit der man einfach files in der registry löschen kann, aber da muss man den Namen der Zeichenfolge angeben, damit diese Zeichenfolge dann gelöscht werden kann.
Und wenn man * reinschreibt, dann wird gar nichts gelöscht...
ich hoffe jemand kann mir helfen :-D


mfG toredo

marabu 20. Jul 2006 13:28

Re: Registry - Files lesen und löschen
 
Hallo,

alle Werte eines Schlüssels kannst du so löschen:

Delphi-Quellcode:
uses
  Registry;

procedure DeleteValues(hive: Cardinal; const key: String);
var
  i: Integer;
  s: TStrings;
begin
  with TRegistry.Create do
  begin
    RootKey := hive;
    if OpenKey(key, False) then
    begin
      s := TStringList.Create;
      GetValueNames(s);
      for i := 0 to Pred(s.Count) do
        DeleteValue(s[i]);
      CloseKey;
      s.Free;
    end;
    Free;
  end;
end;
Grüße vom marabu

toredo 20. Jul 2006 13:36

Re: Registry - Files lesen und löschen
 
kann ich da auch so ein *-zeichen einfügen, dass z.b. alle schlüssel oder wie die heissen die mit m (bsp: m*) beginnen und im selben ordner(?) liegen gelöscht werden?
ne procedur zum löschen einer solchen datei hab ich schon, aber ich muss mehrere löschen bzw. alle aus so nem ordner...
sry, dass ich diese ausdrücke von der registry nicht so draufhab, ich benutz die relativ selten...


mfG toredo

marabu 20. Jul 2006 13:49

Re: Registry - Files lesen und löschen
 
Wenn du wildcards oder reguläre Ausdrücke verarbeiten willst, dann musst du entsprechenden Code nachrüsten. Für das Löschen aller Werte mit einem bestimmten Präfix zeige ich dir die Stelle, wo er hingehört:

Delphi-Quellcode:
uses
  StrUtils,
  Registry;

procedure DeleteValues(hive: Cardinal; const key, prefix: String);
var
  i: Integer;
  s: TStrings;
begin
  with TRegistry.Create do
  begin
    RootKey := hive;
    if OpenKey(key, False) then
    begin
      s := TStringList.Create;
      GetValueNames(s);
      for i := 0 to Pred(s.Count) do
        if AnsiStartsText(prefix, s[i]) then
          DeleteValue(s[i]);
      CloseKey;
      s.Free;
    end;
    Free;
  end;
end;
marabu

toredo 20. Jul 2006 14:14

Re: Registry - Files lesen und löschen
 
:-D vielen dank, jetzt funzt es perfekt :-D



mfG toredo


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz