der Doppelaufruf steht hier:
Delphi-Quellcode:
if (DataType= rdString) or (DataType = rdExpandString) then
begin
RG.ReadString(valuenames[I]); {---------------------------------------!!!!!!}
(*// <-- MARKIERTER TEIL// <-- MARKIERTER TEIL// <-- MARKIERTER TEIL// <-- MARKIERTER TEIL// <-- MARKIERTER TEIL// <-- MARKIERTER TEIL// <-- MARKIERTER TEIL*)
// data := '';
// data := RG.ReadString(valuenames[I]); {-------------------------------------!!!!!!!!}
// if (data <> '') then
// begin
// if Pos(UPPERCASE(txt),UPPERCASE(data)) > 0 then // VALUE FOUND
// begin
// Writeln('[KEY]'+RG.CurrentPath);
// Writeln(' [Valuename]'+valuenames[i]);
// Writeln(' [VALUE]'+data);
// end;
// end;
(**)
Beim ersten Mal legst Du nur die gelesenen Daten nicht ab. Wofür das gut sein soll ist mir schleierhaft.
Wenn Dein Programm sich an der LOCAL_MACHINE verschluckt, dann solltest Du vielleicht einmal ganz genau protokollieren was für Daten gelesen werden und was wirklich abläuft. Da letztlich jede Registry individuell ist und Dein Programm auf anderen Rechnern ohne Fehler läuft, könnte es sein, da? Deine Registry eine aussergewöhnliche Kombination von Rechten/Daten/Schlüsseln aufweist.
Gruß
K-H