www.mikrocontroller.net

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


Autor: SD-Fritze (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter (Gast)
Datum:

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

Autor: SD-Fritze (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
müsste ja dann der präprozessor machen

Autor: SD-Fritze (Gast)
Datum:

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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: SD-Fritze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm,

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

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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Sd Fritze (sd-fritze)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sd Fritze (sd-fritze)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
NOOB-Protection.
Außerdem habe ich da auch einige Kundenspezifische funktionen drin.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: SD-Fritze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jaja, kundenspezifische Funktionen sind kein Grund....

Autor: Markus Volz (valvestino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SchaueDir doch mal den Artikel an: 
http://www.tutorials.de/forum/net-tutorials/164307...
Gruß
Markus

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Der Unbekannte #2 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder die spezifischen Daten nach dem Linken an die EXE binden?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.