Servus!
Momentan arbeite ich an einem Programm, in das eine relativ große Resource eingebunden ist. Letztere besteht aus mehr als 1000 Teilen, größtenteils Textabschnitte (reines txt-Format) und ein paar Grafiken im jpg-Format. Es kann aber sein, daß ich auch noch ein paar Klänge mit hineinbringen werde.
Nehmen wir mal an, ich hätte
- Text1_1
- Text1_2
- Text2_1
- Text3_1
usw.
Wie kann ich feststellen, ob es z.B. „Text2_2“ gibt?
Wenn ich sie einfach aufrufe gibt es eine Fehlermeldung, ich möchte aber etwas in der Art wie die Dateiprüfung „FileExists“, dessen Ergebnis ich weiterverarbeiten kann.
Gruß,
Adrian
Resource feststellen
-
- Lazarusforum e. V.
- Beiträge: 3177
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Resource feststellen
Dann ist das ein guter Zeitpunkt, sich mit Exceptions auseinanderzusetzen.Adrian hat geschrieben:Wenn ich sie einfach aufrufe gibt es eine Fehlermeldung, ich möchte aber etwas in der Art wie die Dateiprüfung „FileExists“, dessen Ergebnis ich weiterverarbeiten kann.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: Resource feststellen
In der Unit LResources sind alle Funktionen enthalten, z.B. TLResourceList -> function Find(const Name: AnsiString): TLResource; overload; Und im Wiki steht auch was dazu: http://wiki.freepascal.org/Lazarus_Resources (inklusive der Exceptions-Übung).
PS: Das Konzept scheint mir verbesserungsfähig ("relativ große Resource", "mehr als 1000 Teile, größtenteils Textabschnitte").
PS: Das Konzept scheint mir verbesserungsfähig ("relativ große Resource", "mehr als 1000 Teile, größtenteils Textabschnitte").
-
- Beiträge: 31
- Registriert: Mo 12. Nov 2007, 12:41
- OS, Lazarus, FPC: Winux (L 2.0.6 FPC 3.0.4)
- CPU-Target: 64Bit
Re: Resource feststellen
Servus!
An die Exceptions habe ich nicht gedacht, und LazarusResources.Find war mir unbekannt, ist aber genau das, was ich suchte.
Vielen Dank für den Hinweis!
@Scotty: Du meinst das Konzept sei verbesserungsfähig.
Vielleicht kennst du noch die Abenteuer-Spiel-Bücher, die in den 80ern beliebt waren. Das Programm soll so etwas nachbilden. Dazu braucht es für jede „Szene“ den die Handlung erklärenden Text, der teilweise von Bildern und/oder Geräuschen begleitet wird, sowie die Enscheidungsfragen. Da kommt schon was zusammen. In diesen Teilen ändert sich nichts, sie sind von Anfang an fest. Deshalb möchte ich sie einfach mit in die Programmdatei einbinden. Wenn du diese Informationen berücksichtigst, ist dann meine Lösung nicht die einfachste? Aber wenn du eine bessere Idee hast, dann schreib sie bitte hier rein. Mein Konzept ist noch nicht in allen Einzelheiten fixiert, und ich bin immer bereit etwas Neues zu lernen.
Danke und Gruß,
Adrian
An die Exceptions habe ich nicht gedacht, und LazarusResources.Find war mir unbekannt, ist aber genau das, was ich suchte.
Vielen Dank für den Hinweis!
@Scotty: Du meinst das Konzept sei verbesserungsfähig.
Vielleicht kennst du noch die Abenteuer-Spiel-Bücher, die in den 80ern beliebt waren. Das Programm soll so etwas nachbilden. Dazu braucht es für jede „Szene“ den die Handlung erklärenden Text, der teilweise von Bildern und/oder Geräuschen begleitet wird, sowie die Enscheidungsfragen. Da kommt schon was zusammen. In diesen Teilen ändert sich nichts, sie sind von Anfang an fest. Deshalb möchte ich sie einfach mit in die Programmdatei einbinden. Wenn du diese Informationen berücksichtigst, ist dann meine Lösung nicht die einfachste? Aber wenn du eine bessere Idee hast, dann schreib sie bitte hier rein. Mein Konzept ist noch nicht in allen Einzelheiten fixiert, und ich bin immer bereit etwas Neues zu lernen.
Danke und Gruß,
Adrian
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Resource feststellen
Hallo,
Ich habe sowas auch mal gemacht und hab als Datenspeicherort dann eine SQLite-Datenbank verwendet. Kann durchaus eine Überlegung wert sein, du hast dann allerdings zwei zusätzliche Dateien, die du mit ausliefern musst.Adrian hat geschrieben:Du meinst das Konzept sei verbesserungsfähig.
Vielleicht kennst du noch die Abenteuer-Spiel-Bücher, die in den 80ern beliebt waren. Das Programm soll so etwas nachbilden. Dazu braucht es für jede „Szene“ den die Handlung erklärenden Text, der teilweise von Bildern und/oder Geräuschen begleitet wird, sowie die Enscheidungsfragen. Da kommt schon was zusammen.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 768
- Registriert: Mo 4. Mai 2009, 13:24
- OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4
- CPU-Target: x86_64-linux-qt/gtk2
- Kontaktdaten:
Re: Resource feststellen
Wieso willst du die Zusatzdaten welcher Art auch immer nicht in einer extra Datei bereitstellen? Das lässt auch ein einfaches Update/Erweiterung zu, z.B. auch eine andere Sprache. Z.B. per Inifile:Adrian hat geschrieben:Aber wenn du eine bessere Idee hast, dann schreib sie bitte hier rein. Mein Konzept ist noch nicht in allen Einzelheiten fixiert, und ich bin immer bereit etwas Neues zu lernen.
Code: Alles auswählen
with TiniFile.Create('Game.data') do
try
aTxt:=ReadString('Content','Section_1','not found');
finally
Free;
end;