Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Texte sinnvoll verwalten (https://www.delphipraxis.net/45789-texte-sinnvoll-verwalten.html)

eddy 12. Mai 2005 11:12


Texte sinnvoll verwalten
 
Hallo Leute,

immer wieder gibt es wiederkehrende Texte in Fehlermeldungen, Hinweisen usw. Jedesmal schreibt man den gleichen oder fast gleichen Text in Kombination mit irgendwelchen Variablen für gezählte Werte oder Dateinamen.

z.B.

3 Datensätze sollen gelöscht werden
Wollen Sie das wirklich?

oder
3 Datensätze wurden gelöscht

oder
Datei d:\pfad\pfad2\xyz.ext konnte nicht geöffnet werden

Wenn ich das richtig erkannt habe, nützt es ja wohl auch wenig, solche Text in Konstanten zu quetschen, weil Delphi die Text dann trotzdem an jeder Stelle in die EXE hineinschreibt, wo sie benutzt werden (und nicht den Verweis auf den Text)

Wie verwaltet Ihr solche Textmeldungen?

Macht es überhaupt Sinn, sich damit zu befassen?


Freue mich auf Eure Meinungen, Hinweise und Erfahrungen.

mfg
eddy

s.h.a.r.k 12. Mai 2005 11:21

Re: Texte sinnvoll verwalten
 
Arbeite vielleicht mit Ressourcen oder mit DLLs und lade dann die entsprechenden Wörter .B. beim Start des Programms.

mfg shark

Sanchez 12. Mai 2005 11:21

Re: Texte sinnvoll verwalten
 
Hallo eddy,

Eine zentrale Verwaltung der Texte mach dahingehend Sinn, als das du bei einer Änderung nur an genau einem Punkt schrauben musst. Außerdem wirds spätestens dann umungänglich, wenn die Anwendung mehrsprachig werden soll.

Hier hast du mal einen Ansatz einer möglichen Lösung.

grüße, daniel

heiopei 12. Mai 2005 11:32

Re: Texte sinnvoll verwalten
 
hallo,
du kannst auch einfach "resourcestrings" verwenden.
allerdings weiss ich nicht, ob das so was wie const ist!!!
schau in der oh, da dürfte was zu drinn stehen.

mfg,
heiopei

Luckie 12. Mai 2005 12:31

Re: Texte sinnvoll verwalten
 
Delphi-Quellcode:
resourcestring
  rsMsgText = 'Dies ist bla %d von foo %d.'
begin
  ShowMessage(Format(rsMsgText, [i, Max]));

eddy 12. Mai 2005 20:24

Re: Texte sinnvoll verwalten
 
Hallo Leute,

vielen Dank für die Hinweise.

Ich habe mich vorerst mit den "resourcestring" befaßt. Beim Versuch, eine spezielle String in der EXE-Datei zu finden, bin ich aber gescheitert. Daraus resultiert meine nächste Frage:

Was macht der Delphi-Compiler mit den definierten ResourceString (-Konstanten)? Kann man diese in der EXE-Datei irgendwie finden?

mfg
eddy

Luckie 12. Mai 2005 20:44

Re: Texte sinnvoll verwalten
 
Guck dir deine Exe mal mit einem Resourcen-Hacker an. ResourceStrings heißen so, weil sie eben in der Ressource stehen. Dort könntest du sie bequem editieren und so das ganze mehrsprachig machen zum Beispiel.

Hansa 12. Mai 2005 20:52

Re: Texte sinnvoll verwalten
 
Wieso frägst Du nach Delphi ? Geht es um eigene Fehermeldungen, oder welche von Windows ? Wozu gibt es Text- und Ini-Dateien ?

mael 12. Mai 2005 22:52

Re: Texte sinnvoll verwalten
 
ResourcenStrings sind ganz "normal" in der EXE-Datei zu finden. Die werden aber als 2-Byte Unicode gespeichert und nicht als normaler 1-Byte Ansi-Text. Mit einem Hexeditor läßt sich sowas finden indem man jedes zweite Byte 0 setzt, also etwa "Hallo" -> "H#0a#0l#0l#0o#0", oder eine Unicode-Suchfunktion verwendet. (siehe in meiner Signatur).

Allgemein verwendet die VCL überall resourcenstrings, so gibt es z.B. vordefinierte Standardfehlermeldungen wenn Dateien nicht geöffnet werden können. Fehlermeldungen lassen sich meistens gut durch Exceptions realisieren.

Ich finde resourcenstrings am besten, weil die VCL sie verwendet und diese Standardmeldungen auch übersetzt werden sollten, sie sich zum leichten Übersetzen eignen, es viele darauf zugeschnittene Übersetzungstools gibt, es Windows-Standard ist, ...

Resourcen stehen in einem Bereich der EXE, der so organisiert ist, daß Änderungen des Resourcenbereichs kein neukompilieren des Programmes erfordern.
Mit einem ResourceEditor kann man also auch fertige Programme übersetzen, um das bequemer zu machen gibt es aber Übersetzungstools.

eddy 13. Mai 2005 11:06

Re: Texte sinnvoll verwalten
 
Hallo mael,

mit Hilfe Deiner Erklärungen und Deines Hex-Editor habe ich die RecourceString in der EXE gefunden.

Ich werde mich wohl noch ein bisschen mehr mit dem Thema befassen müssen.

mfg
eddy

Luckie 13. Mai 2005 11:17

Re: Texte sinnvoll verwalten
 
Mit dem Bei Google suchenResHacker wäre es einfacher gewesen.

mael 13. Mai 2005 11:43

Re: Texte sinnvoll verwalten
 
Zitat:

Zitat von Luckie
Mit dem Bei Google suchenResHacker wäre es einfacher gewesen.

Habe ich mehrere strings muß ich auch im ResHacker die Suchfunktion benutzen, okay bei HxD muß man noch ein Häkchen bei "Unicodezeichen" setzen, das ist natürlich viel mehr Aufwand ;-)
Außerdem ging es um das Verständnis warum es nicht zu finden ist und daher ist eine Komplettansicht glaube ich besser geignet.
Zum Bearbeiten ist ResHacker sicher praktischer.

eddy 13. Mai 2005 12:16

Re: Texte sinnvoll verwalten
 
Hallo Lucki,

den Link auf Google für ResHacker halte ich für ziemlich sinnlos. In Google kann ich allein suchen (zumindest, wenn ich weiß, wonach --> in diesem Fall ResHacker).

Wie wäre es denn gleich mit dem richtigen Link zum Download?
Dann kann ich mir das Gesucher ersparen und erwische garantiert auch das, von dem Du meinst, ich sollte mal ein Blick darauf werfen.

Und nun bitte keine Ausschweifungen (welcher Art auch immer). Nur den Link oder ignorier mich (aber nur in diesem Post)

Zum Milde stimmen: :cheers:

Den Link auf den Download von Mael's HexEditor fand ich überaus praktisch.

mfg
eddy

Luckie 13. Mai 2005 12:21

Re: Texte sinnvoll verwalten
 
Zitat:

Zitat von eddy
den Link auf Google für ResHacker halte ich für ziemlich sinnlos. In Google kann ich allein suchen (zumindest, wenn ich weiß, wonach --> in diesem Fall ResHacker).

Wie wäre es denn gleich mit dem richtigen Link zum Download?
Dann kann ich mir das Gesucher ersparen und erwische garantiert auch das, von dem Du meinst, ich sollte mal ein Blick darauf werfen.

Soll ich es auch noch runterladen und dir zu Hause vorbeibringen? Hätte ich ihn parat, hätte ich es wohl gemacht.

Zitat:

Und nun bitte keine Ausschweifungen (welcher Art auch immer). Nur den Link oder ignorier mich (aber nur in diesem Post)
Sonst geht es dir aber noch gut oder? :evil: Jetzt weißt du schon selber wo nach du mit Google suchen musst und sagst mir, ich soll dir den Link mit Google suchen?

Zitat:

Zum Milde stimmen: :cheers:
:roll:

Zitat:

Den Link auf den Download von Mael's HexEditor fand ich überaus praktisch.
Soll ich dir alle nützlichen Zusatzprogramme in meiner Signatur verlinken?

eddy 13. Mai 2005 13:07

Re: Texte sinnvoll verwalten
 
Hallo Lucki,

klar geht's mir gut.

Woher soll ich wissen, daß Du nicht mehr weißt, von welcher Seite Du den ResHacker bezogen hast! Das passende Suchwort hast Du mir doch in Deinem dritten Text geliefert.

Ich würde in solchen Fällen: "Such nach <Suchwort>" schreiben.

Hier liegt als offensichtlich ein kommunikatives Mißverständnis vor.


Zitat:

Und nun bitte keine Ausschweifungen (welcher Art auch immer).
Ich hab' schon so manche Deiner Antworten (nicht unbedingt an mich gerichtet) gelesen, bei denen Du nach einem Hauch von Kritik arg überzogen und verbal stinkig reagiert hast. Und genau diesen Kraftaufwand wollte ich Dir ersparen.

Hier der direkte Link zum Download: ResHacker

Und nun noch ein :cheers: zum versöhnlichen Abschluß.

mfg
eddy


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz