Externe Daten direkt in die EXE linken



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum VCL/CLX (Borland C++ Builder) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.





  • ja! Der Witz ist natürlich der, dass man die .txt (oder allgemeine) Dateien nicht mit der Exe ausliefern muss, sondern das die Daten AllInOne, das heisst eben gleich in der Exe mit drinne sind.

    Fein, warum sind sie dann überhaupt in einer EXE? Warum nicht dann direkt als "Variable" im Programm??

    Ansonsten schau dir mal
    TStringList und dort LoadFromFile & LoadFrom Stream an



  • Warum nicht dann direkt als "Variable" im Programm

    Na weil ich eben nicht jedesmal, wenn in der .txt-Datei was ändert diese als Variable in den Source kopieren will. Klar das könnte ich auch, aber das ist bei X Ressourcen eben viel zu mühsam wenn man es anders haben kann.

    Und warum TStringList.LoadFromFile(..) nicht interessant ist, ist aus demselben Grund wie oben schon erwähnt: Weil ich die txt-Dateien nicht separat mit der exe mitgeben will, sondern alles in einer Datei sprich in der EXE drinn sein soll...

    - Adrian



  • Sorry, aber umständlicher geht es wohl kaum noch:

    Na weil ich eben nicht jedesmal, wenn in der .txt-Datei was ändert diese als Variable in den Source kopieren will.

    Aber deswegen die ganze Anwendung neu compilieren. Dann schau unter

    LoadStr lädt eine Stringressource aus der ausführbaren Datei einer Anwendung.

    Unit

    SysUtils

    Kategorie

    Sonstige Routinen

    extern PACKAGE AnsiString __fastcall LoadStr(int Ident);

    Beschreibung

    LoadStr lädt die mit Ident angegebene String-Ressource aus der ausführbaren Programmdatei oder einer freigegebenen Bibliothek. Ist die String-Ressource nicht vorhanden, gibt LoadStr einen leeren String zurück.

    Durch Auslagern der auf dem Bildschirm angezeigten Strings in Ressourcen kann eine Anwendung an andere Landessprachen angepaßt werden, ohne daß der Programmcode geändert werden muß.



  • LoadStr lädt eine Stringressource aus der ausführbaren Datei einer Anwendung.

    Genau. Da sind wir ja wieder bei den Ressourcen... Und was meinst Du, wie kommen die in die Exe-Datei rein? - Die muss man auch reinlinken! Und wenn die Ressourcen ändern, muss man die EXE neu compilieren bzw. neu linken. Das heisst schlussendlich schlägst Du mir genau das vor, was ich ja möchte und wo von wir schon lange diskutieren - Ressourcen in eine EXE-Datei einbinden...

    Ich hoffe wir verstehen uns jetzt, sonst lassen wir es doch einfach, bevor es ein hitziges hin und her gibt... Ich werde mich noch schlau machen, was für Möglichkeiten es für BCB gibt, die Ressourcen zu verwalten und dann sind wir alle happy! 🙂
    Danke für die Hilfe!

    - Adrian



  • Ähhh. sorry, hellsehen kann ich nicht und nochmal sorry, aber bei einer solchen "ungewöhnlichen" Anwendungsweise brauch man vielleicht etwas. Üblicherweise nutzt man diese Technik für Mehrsprachigkeit. Es gibt andere Resourceneditoren, die Stringresourcen erstellen und verwalten , wie dieser http://www.sicomponents.com/rbldr2.html

    Der BCB hat keine Tools um Stringresourcen zu erstellen oder verwalten. Ist auch nicht nötig, ein einfacher Texteditor reicht dazu aus.

    Und was meinst Du, wie kommen die in die Exe-Datei rein?

    Ich meine dazu nix, weil ich weiss wie die da reinkommen -> www.google.de -> http://delphi.about.com/library/weekly/aa011805a.htm Das was da für Delphi erklärt wird trifft auch für BCB zu.



  • http://www.wilsonc.demon.co.uk/d6peresourceeditor.htm Da gibt es ein Freeware Resource Editor der Stringtables kann.



  • Danke für Deine Hilfe. Ich werde es versuchen sobald ich Zeit habe...
    ...Jetzt muss ich erst mals noch eine Woche ins Militär... bis später!

    - Adrian



  • Ich darf nochmal auf meinen Link auf der ersten Seite dieses Threads hinweisen ...


Anmelden zum Antworten