Entwickler-Ecke

Sonstiges (.NET) - .cs erstellen


chris85s - Fr 09.04.10 14:07
Titel: .cs erstellen
Hallo,

ich habe folgendes Problem:

Ich habe ein Projekt in dem ich sehr viele Parameter aufrufen und registrieren muss.
Nun möchte ich ein kleines Programm mit Windows Forms schreiben in dem ich lediglich den Signalnamen sowie deren Werte eingeben muss.

Das Programm soll dann die nötigen Codezeilen erstellen und ein .cs file generieren (z.B. Parameters.cs).
z.B. folgende Codezeilen:

C#-Quelltext
1:
2:
double signal1 = new double("Signalname""Value""Unit");
double signal2 = new double("Signalname""Value""Unit");



Der Benutzer sollte danach im Programm nur noch den Signalnamen, Value und Unit eingeben müssen.
Die oben erwähnte und andere Codezeilen sollen dann automatisch ertellt werden.

Nach erstellen aller Codezeilen soll daraus ein .cs file erzeugt werden und in meinem eigentlichen Programm eingebunden werden.

Da ich noch sehr wenig Erfahrung mit programmieren habe, würde ich mich sehr über eure Hilfe freuen.
Wenn also jemand weiß, wie man die Codezeilen erstellen und ein .cs file erzeugen kann, soll einfach antworten.

mfg christian

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


danielf - Fr 09.04.10 14:21

Hallo und :welcome:

ich verstehe nicht was du willst :( Ich sehe nur, dass du ein double so nicht verwenden kannst.

Ich denke es ist total unnötig eine solchen Code zu generieren und ich bin davon überzeugt, wenn du uns erklärst, was du mit den Parametern vor hast, dass es eine bessere Lösung gibt.

Gruß


chris85s - Fr 09.04.10 14:31

danke für deine schnelle antwort.
das mit dem double ist schon klar.
ok ich versuchs anders zu erklären.
ich habe folgende Zeilen:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
public static TypeSutFloat EngSpdD_Gain = new TypeSutFloat("EngspdD_Gain""EngSpdD_Gain"""0.0, -1.01.0"");
public static TypeSutFloat deltaFreq_Value = new TypeSutFloat("deltaFreq_Value""deltaFreq_Value"""0.0, -100.0100.0"");
public static TypeSutFloat initialFreq_IgAg = new TypeSutFloat("initialFreq_IgAg""initialFreq_IgAg"""0.0, -100.0100.0"");

myTestCase.Factory.GetParameterManager().Register(EngSpdD_Gain);
myTestCase.Factory.GetParameterManager().Register(deltaFreq_Value);
myTestCase.Factory.GetParameterManager().Register(initialFreq_IgAg);

EngSpdD_Gain = (TypeSutFloat)myTestCase.Factory.GetParameterManager().Parameterise(EngSpdD_Gain);
deltaFreq_Value = (TypeSutFloat)myTestCase.Factory.GetParameterManager().Parameterise(deltaFreq_Value);
initialFreq_IgAg=(TypeSutFloat)myTestCase.Factory.GetParameterManager().Parameterise(initialFreq_IgAg);

Ports.ModelAccess.SetModelValue(Parameters.EngSpdD_Gain);
Ports.ModelAccess.SetModelValue(Parameters.deltaFreq_Value);
Ports.ModelAccess.SetModelValue(Parameters.initialFreq_IgAg);


Also für alle Parameter jeweils diese 4 Zeilen.
Nun möchte ich diese 4 Zeilen nicht für alle meine hundert und mehr Parameter selbst eingeben.
Ich möchte ein Programm, in dem ich den Parameternamen und deren Werte eingeben kann und das Programm dann den Parameternamen nimmt und jeweils diese 4 Zeilen erzeugt.

All diese Zeilen sollen dann in einem .cs-file gespeichert werden, damit ich es in meinem Projekt einbinden kann.

Vielleicht könnt ihr mir weiterhelfen.

mfg christian

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


danielf - Fr 09.04.10 15:27

Verstehe immer noch nicht, warum du es fest in ein Programm schreiben willst?

Du kannst auch einfach eine Konfigurationsdatei machen die dann die entsprechende Werte ausließt ...

Config.ini

Quelltext
1:
2:
3:
EngspdD_Gain;EngSpdD_Gain;;0.0;-1.0;1.0;;
deltaFreq_Value;deltaFreq_Value;;0.0;-100.0;100.0;;
initialFreq_IgAg;initialFreq_IgAg;;0.0;-100.0;100.0;;


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
string[] lines = Files.ReadAllLines("Config.ini");

foreach(string line in lines)
{
    string args = line.Split(';');
    myTestCase.Factory.GetParameterManager().Register(new TypeSutFloat(
              args[0], args[1], args[2], double.Parse(args[3]), double.Parse(args[4]), double.Parse(args[5]), args[6]));
}


chris85s - Mo 12.04.10 09:57

Ich habe nun einige Zeilen in einer ArrayList gespeichert.
Nun möchte ich als nächstes all diese Zeilen in einer .cs datei speichern.
Hat jemand eine Ahnung wie sowas geht?


danielf - Mo 12.04.10 10:02

Wenn du Hilfestellung willst, warm gehst du dann nicht auf sie ein?


C#-Quelltext
1:
File.WriteAllLines(path, lines);                    


chris85s - Mo 12.04.10 14:04

ich möchte eine Variable i durch das klicken eines buttons hochzählen.
also am anfang ist i = 0.
drückt man einmal auf den button erhöht sich der wert von i auf 1
usw.
hat jemand ne idee?


danielf - Mo 12.04.10 14:07

NumericUpDown UserControl


chris85s - Mo 12.04.10 14:16

danke,

bin dir wirklich dankbar das du mir hilfst und immer so schnell antwortest.
jedoch wäre es hilfreich wenn die antworten ein wenig ausführlicher wären.
ich bin noch sehr unerfahren mit programmieren.
bin erst seit 1 - 2 wochen dabei es zu lernen.

also nochmal zurück zu meinem problem.
wie muss ich "NumericUpDown UserControl" einsetzen um die gewünschte funktion zu erreichen?


danielf - Mo 12.04.10 14:21

Ich antworte so, wie die Fragen gestellt werden.

Ein Control kannst du entweder über den Designer von VS auf ein Form "ziehen" oder per Code hinzufügen. Ich empfehle dir die Verwendung des Designers. Hierfür öffnest du in VS ein Form. Standard gemäß befindet sich auf der linken Seite der Reiter Toolbox. In diesem findest du sämtliche UserControls die von den default eingebunden Assemblies zur Verfügung gestellt werden. Dazu gehört auch das NumericUpDown-UC. Dieses kannst du nun per Drag&Drop auf deine Form ziehen. Zu beginn heißt dieser Control nun numericUpDown1. Die beschriebenen Funktionalitäten hat das Control von sich aus. AUf den aktuellen Wert greifst du über numericUpDown1.Value zu.Beachte, dass du meistens den Minimum (default= 0) und Maximum-Wert(default=100) anpassen musst um die gewünschte Gültigkeit zu bekommen.


chris85s - Mo 12.04.10 14:27

sorry ich glaub ich hab die frage falsch gestellt.
so hilft mir das nicht weiter.

ich habe in meinem programm eine variable i.
diese soll sich immer dann um 1 erhöhen, wenn man einen bestimmten, schon vorhandenen Button klickt.


chris85s - Mo 12.04.10 15:56

hat sich erledigt


chris85s - Mi 14.04.10 13:47

hallo,

ich möchte mit einem button-click einen saveFileDialog öffnen, dort einen Dateinamen eintragen
und danach soll folgender Zeile dieser Dateiname angefügt werden.

File.WriteAllLines(@"C:\Documents and Settings\Desktop\DATEINAME", lines);

hat jemand eine idee?

mfg christian


danielf - Mi 14.04.10 13:55

Den SaveFileDialog hast du ja schon gefunden... das war die IDee..

Anwendungsbeispiele findest du im Internet genug.


chris85s - Mi 14.04.10 15:55

hat jemand eine ahnung wie sich der inhalt eines fensters automatisch verändert, wenn man das fenster größer oder kleiner zieht?

bei der ausführung meiner windows form anwendung bleiben alle button und label gleich groß auch wenn ich die größe des fensters verändere.

ich möchte aber das sich die größe der button und label an die größe des fensters anpassen.

mfg


JüTho - Mi 14.04.10 16:12

Das hat endgültig nichts mehr mit dem Ausgangsproblem "automatisch Quellcode generieren" zu tun. Neues Problem => neue Diskussion Und zwar im richtigen Unterforum). Jürgen