this slowpoke moves

Export Data from EXE Resource

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

Beliebte Posts

Translate