Entwickler-Ecke

Sonstiges (Delphi) - elendlangen string definieren


tolosonic - Mi 24.10.07 15:56
Titel: elendlangen string definieren
hallo. ein programm erfordert es, innerhalb des programmcodes einen string als konstante zu definieren, welcher sagen wir 10000 zeichen lang ist. nun habe ich ja aber eine maximale zeilenlänge. wie bekomme ich die stringkonstante definiert, ohne 100 zeilen á 100 zeichen mit s := s + '...' zu basteln?

sorry, ist sicher ne dau-frage. :(


jakobwenzel - Mi 24.10.07 16:05

Die Begrenzung lässt sich nicht umgehen, lediglich das zusammenbasteln lässt sich verbessern:

Delphi-Quelltext
1:
s:='Teil1'+'Teil2';                    

Alternativ kannst du den String als Textdatei speichern (wahlweise auch als Ressource) und von da auslesen (max. Größe 2 GB).


tolosonic - Mi 24.10.07 16:13

wie funktioniert das als ressource? textdatei fällt aus, mir ist es wichtig dass der string nicht im klartext irgendwo einzusehen ist.


jakobwenzel - Mi 24.10.07 16:17

Such einfach mal nach Suche in: Delphi-Forum, Delphi-Library RESSOURCE!

Aber wirklich sicher ist das auch nicht. Der String steht dann immernoch im Klartext in deiner Datei.


blaueled - Mi 24.10.07 16:37

Die würde doch auch im kompilierten Programm im Klartext stehen, oder?


tolosonic - Mi 24.10.07 16:41

ja schon... kann ich das denn umgehen?


Sinspin - Mi 24.10.07 16:42

so oder?

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
const
  myString =
    'Teilstring 1'+
    'Teilstring 2'+
    // der alle weiteren strings
    'Der letzte Teilstring';

nur ist der text ja aber trotzdem lesbar. es sei denn du tütest die exe ein in der er dann drinne steht.


tolosonic - Mi 24.10.07 16:47

user profile iconSinspin hat folgendes geschrieben:
es sei denn du tütest die exe ein


kannst du den schritt eintüten präzisieren?


Sinspin - Mi 24.10.07 18:03

Ähm ja, da gibt es ettliche Möglichkeiten.
Aber bevor ich dir eine Antwort gebe würde ich dich bitten die Frage nach dem Verstecken von Daten in der Exe in einem neuen Thread zu stellen. (Forenregel : eine Frage pro Thread)