Mit dem folgenden Beispiel können Daten aus dem Ressourcenbereich einer EXE gelesen, in eine Komponente geladen oder in eine Datei extrahiert werden.
resource.rc
ExcludeList RCDATA DISCARDABLE "exclude.lst"
Unit1:
{$R resource.res}
function LoadTextFromResourceByName(ResourceName: ansiString): AnsiString;
var
ResourceStream: TResourceStream;
begin
ResourceStream := TResourceStream.Create(HInstance,
ResourceName,
RT_RCDATA);
try
try
SetLength(Result, ResourceStream.Size);
ResourceStream.ReadBuffer(Result[1],
ResourceStream.Size);
except
raise;
end;
finally
ResourceStream.Free;
end;
end;
function LoadTextFromResourceByID(ResourceID: Cardinal): AnsiString;
var
ResourceStream: TResourceStream;
begin
ResourceStream := TResourceStream.CreateFromID(HInstance,
ResourceID, RT_RCDATA);
try
try
SetLength(Result, ResourceStream.Size);
ResourceStream.ReadBuffer(Result[1],
ResourceStream.Size);
except
raise;
end;
finally
ResourceStream.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
try
// Ermittle und lade den Taxt über den PID Prozess
//Memo1.Text := LoadTextFromResourceByID(100);
// Laden des Textes in eine Memo
Memo1.Text := LoadTextFromResourceByName('ExcludeList');
// Extrahieren des Textes in eine Datei
//Memo1.Lines.SaveToFile('C:\myList.txt');
except
on E: Exception do
ShowMessage(E.Message);
end;
end;
Keine Kommentare:
Kommentar veröffentlichen