Textdatei als Ressource hinzufügen
-
Hallo,
mal wieder eine Frage meinerseits:
Ich habe derzeit ein Programm, welches Strings aus einer Textdatei liest. Die Textdatei wird bei Programmstart geladen. Hat den Nachteil, dass man mit der Programm-exe auch die Textdateien mit ausliefern muss.Nun die Frage, ob es eine Möglichkeit gibt - und vor allem wie - die Textdatei als Ressource/externe Abhängigkeit/??? ins Projekt hinzuzufügen, sodass sie mit kompiliert wird und mit welchem Befehl ich dann das derzeitige Laden der Textdatei ersetzen müsste. Wichtig wäre mir auch zu wissen, ob und welche Ergänzungen bei evlt. Lösung in der Ressourcendatei vorzunehmen sind.
Vielen Dank
-
Wenn der Text kurz ist kannst Du die String-Ressourcen verwenden.
Ansonsten verwende RCDATA:
http://msdn.microsoft.com/en-us/library/cc194809.aspxDu kannst einfach die Datei als RCDATA unter einer ID in der Ressourcen Datei ablegen. Per FindResource und LoadResource kannst Du dann einen entsprechenden Zeiger erhalten.
-
Eine andere Möglichkeit, ich verwende die, ist, die Texte in einer reinen
Textdatei zu speichern. zB so:@Text Das kommt als Stringkonstante ins Programm. Von HTML bis JS, jenachdem was man braucht.Dann ein kleines Programm schreiben, daß den Müll in C umwandelt und das
passende Headerfile erzeugt. Die Windows-Stringressourcen sind sperrig und
plattformabhängig.zB dann so:
char *Text = "Das kommt als Stringkonstante ins Programm. Von HTML bis JS, jenachdem was man braucht.";Sehr praktisch und spart viel Tipperei. Mit den % sollte man etwas aufpassen.
Zeichenmaping von " etc nicht vergessen.
-
Erstmal danke für beide Antworten. Es handelt sich um eine Textdatei, in der etwa 2000 Strings stehen, die alle seperat geladen werden sollen/müssen.
Zu dieser Antwort hätte ich nochmal ne Frage:
Martin Richter schrieb:
Wenn der Text kurz ist kannst Du die String-Ressourcen verwenden.
Ansonsten verwende RCDATA:
http://msdn.microsoft.com/en-us/library/cc194809.aspxDu kannst einfach die Datei als RCDATA unter einer ID in der Ressourcen Datei ablegen. Per FindResource und LoadResource kannst Du dann einen entsprechenden Zeiger erhalten.
Ich habe jetzt die Datei als Ressource hinzugefügt, sie hat auch eine ID.
Im Moment wird die Datei noch als externe Textdatei geladen und jeweils die benötigten Strings daraus gelesen. Wie müsste ich das dann mit dieser Methode umsetzen? Leider hilft mir dieser Link nicht so sehr, auch wenn ich sehe, dass etwas hilfreiches drinstehen könnte.
Die konkrete Frage wäre also, wie ich einen bestimmten String aus dieser Textdatei, vorhanden als Ressource, laden kann.Vielen Dank.
-
Das habe ich doch geschrieben.
Verwende FindResource und LoadResource, dann hast Du einen Zeiger auf die geladene Resource...BTW: Googlen nach diesen Begriffen wird auch helfen!

-
Nur noch so am Rande:
Ich verwende solche proprietären Sachen nicht gerne.
Wie läuft ein eventueller Umstieg auf ein anderes OS ?Falls das mal aktuell werden könnte, sollte man so 'en
Zeugs nicht verwenden.