Forum: PC-Programmierung C# Dynamische Modifikation eines Srtings wärens des Kompilierens.


von SD-Fritze (Gast)


Lesenswert?

Hallo,

für ein Projekt betötige ich eine Klassenbibliothek in der 
Personalisierte Dated gespeichert sind. Die Klasse steht schon, ist nur 
ein Sring der Geändert werden muss (ca 30 mal). Die Daten für den 
#string hab ich in einer txt, Format etwa so:

Text1
Text2
....
TextN

Nun ist es dumm jedes mal wenn ich neu kompiliere den ganzen Schmus von 
Hand einzutragen. Gibt es da vielleicht eine bessere Lösung für?

Danke im Voraus,

SD-Fritze

von Peter (Gast)


Lesenswert?

versuche mal bitte das Problem genauer zu beschreiben, ich kann mir noch 
nichts darunter vorstellen.

von SD-Fritze (Gast)


Lesenswert?

Also,
ich habe eine Funktion die mir einen string als Return gibt. Und dieser 
String soll wärend des Kompilierens  geändert werden, so dass  ich 
mehrere Dateien mit jeweils anderen Returns bekomme.


Bye,

SD-Fritze

von gast (Gast)


Lesenswert?

müsste ja dann der präprozessor machen

von SD-Fritze (Gast)


Lesenswert?

Ja, und wie bekomm ich den dazu (Bin absoluter Anfänger)?

von Peter (Gast)


Lesenswert?

leider fehlt immer noch ein paar Infos - in welcher art und weise soll 
der Return angepasst werden? woher soll also der Compiler wissen wann er 
welches String einsetzen soll?
Auch seh ich den Sinn von sotwas noch nicht.

von Martin (Gast)


Lesenswert?

Wieso lädst du die Strings dann nicht einfach aus einer Textdatei? Wenn 
die personalisierten Daten mehrere Strings sind dann trenn sie einfach 
durch ein Semikolon und bei einer neuen Zeile ist dann ein neuer 
Datensatz also z.B. :

Name1;Geburtsdatum1;Geburtsort1;
Name2;Geburtsdatum2;Geburtsort2;

oder so ähnlich

von SD-Fritze (Gast)


Lesenswert?

Hm,

leider ist die DLL userspezifisch, so dass das nichts wird.

Er soll einfach in eine Schleife einsetzen: pseudocode:
1
For I= 1 to 30
2
  string = Readline("config.txt")
3
  compile
4
  rename
5
Next i

von Peter (Gast)


Lesenswert?

Dann mach es doch genau so, schreibe ein kleines Programm welches in der 
quellcode datei den Text abändert und danach den Compiler aufruft.
Aber Ich versteht den Sinn das ganzen nicht, eine Klasse die gleich 
heist und immer was anderes macht spricht nicht gerade für eine Saubere 
Programmierung - auch die Wartbarkeit und die Fehleranfälligkeit steigt 
damit.
Bist du sicher das du es so machen must und es keinen sauberen Weg dafür 
gibt?

von Sd F. (sd-fritze)


Lesenswert?

Naja, sie macht schon immer das Gleiche: Mir einen Key 
zurückgeben(gesalzener Hash von nem Gesalzenen Hash der anderen Sorte) 
und das auf meinem Server gegenchecken. Enthält auch Essentielle system 
keys.

von Peter (Gast)


Lesenswert?

und warum muss der wert da in der quelle drin stehen, wenn er doch 
unterschiedlich sein soll, dann kann er doch gleich aus einer ini 
gelesen werden.

von Sd F. (sd-fritze)


Lesenswert?

NOOB-Protection.
Außerdem habe ich da auch einige Kundenspezifische funktionen drin.

von Peter (Gast)


Lesenswert?

war ja klar, also kein richtiger Grund. Ob nun die ini Datei oder das 
komplette Programm ausgtauscht werden muss ist ja wohl egal. Und jeder 
der sich ein wenig auskennt öffnet einfach die exe und ändert den String 
drin ab. Das einzigste was ein wenig hilft ist das Programm an den 
Rechner zu binden z.b. Über den Windows GUID.

von SD-Fritze (Gast)


Lesenswert?

Jaja, kundenspezifische Funktionen sind kein Grund....

von Markus V. (valvestino)


Lesenswert?


von Peter (Gast)


Lesenswert?

Wo ist denn nun der unterschied wenn der Code gleich ist und die Klasse 
ihren return wert aus einer ini ausliest, oder ob der Wert gleich im 
Code steht?
Es ist eine sehr unsaubere Programmierung wenn man soetwas im Code macht 
und dann verschienden Versionen von einer Klasse existieren.
Es muss ja keine PlainText ini Datei sein. Es könnte ja auch eine 
Verschlüsselte Datei sein. Damit ist der Programm Code gleich und 
austauschbar.

von Uhu U. (uhu)


Lesenswert?

Ich würde in den String, der in die dll compiliert wird, eine eindeutige 
Signatur der entsprechenden Länge schreiben und ein kleines Tool 
basteln, das die dll einliest, und gegen den endgültigen String 
austauscht.

Dazu muß man nicht jedesmal den ganzen Bettel neu compilieren...

Wenn der Linker allerdings eine Prüfsumme einträgt, die vom Lader 
geprüft wird, gehts leider nicht so einfach.

von Der Unbekannte #2 (Gast)


Lesenswert?

Oder die spezifischen Daten nach dem Linken an die EXE binden?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.