Stringmanipluation C#

#2789269
Lesenswert?

Hi,

ich hab ein Programm geschrieben, auf der eine Textbox mit text ist, der 
automatisch hinzugefügt wird.

Diesen sttrng würd ich nun gern manipulieren und dann ausgeben.

Beispiel:

Sring der TextBox:
1
String 1: "General Configuration.00.NodeAddress.Get"
Manipulierter String (sollte so aussehen):
1
 "generalConfiguration.NodeAddress_Get()"


Durch
1
a = a.Replace("General Configuration", "generalConfiguration");
2
a = a.Remove(21, 3);
bekomm ich das "generalConfiguration."

wie kann ich String 1 so manipulieren,dass der Punkt nach 00 bleibt, 
aber der nach NodeAdress als unterstrich ersetzt wird.
Es sei gesagt, dass NodeAdress auch anders heißen kann, das heißt ich 
kann nicht über den index gehen.

Vielen Dank

Gruß

Agit
#2791771
Lesenswert?

hi,

bin immer noch am String maipulieren und hab jetzt einanderes Problem.

wie bekomme ich aus der folgenden Zeile:
1
General Configuration.00.NodeAddress.Set.NodeAdr=0100

die Zeile hin
1
generalConfiguration.NodeAddress_Set(0x0100)

habe es bis zum "_Set" hinbekommen. Nun mus ich überprüfen, wenn es ein 
"=" gibt, dass der nachkomende Text in einer Klammer geschrieben wird 
und der vorangehende Text bis zum "." wegfällt".

also Aus
".NodeAdr=100" muss "(0x100) werden.


die 0x soll nur angefügt werden, wenn eine Zahl nach dem = folgt.

ansonsten wird nur der Text übernommen, also
aus
1
General Configuration.00.SetDeviceMode.StartResult.DeviceMode=Slave

wird
1
generalConfiguration.SetDeviceMode_StartResult(Slave)

ich hoff es gobt experten in sachen Sringmaipulation.

Gruß

agit
Gast #2791926
Lesenswert?

Hi

hier mal nur so als hilfe

http://txt2re.com/index-csharp.php3

Mit regex geht das bestimmt auch aber ich glaub das geht sobesser

1
string config="General Configuration.00.NodeAddress.Set.NodeAdr=0100"
2
char[] splitters= {' ','.','='};
3
string[] split = config.split(splitters);
4

5
config = split[0].ToLower() + split[1] + split[3] + "_" + split[4] + "(" + split[6] + ")";

vorausgesetzt die Struktur bleibt einigermaßen stabil
#2791967
Lesenswert?

Hi,

ja mit Regex bekomm ich nicht so richtig hin.

@ Sebastian

laut meiner Ausgabe bekomm ich folgenden String für config


1
"generalConfigurationNodeAddress_Set(0100)"

ich wollte jedoch
1
"generalConfiguration.NodeAddress_Set(0x100)" //mit "0x" , da Zahl

und für
1
General Configuration.00.SetDeviceMode.StartResult.DeviceMode=Slave

will ich
1
generalConfiguration.SetDeviceMode_StartResult(Slave) // ohne "0x" weil keine Zahl

ich hoffe ihr könnt mir helfen.

Gruß

Agit
#2791978
Lesenswert?

hi,

also ich versuche nochmals das Schema zu erklären,

Der text, der zu manipulieren is, hat folgende Struktur.
1
General Configuration.00.NodeAddress.Set.NodeAdr=0100

bis zur dieser Stelle "General Configuration.00.NodeAddress."

ist es kein problem.

nun kann es sein, dass Set, Get, SetGet folgt.
also nehmen wir an:

dieser String
Set.NodeAdre=0200;

sollte so aussehen
Set(0x200);


SetGet.NodeAdre=vierzig;
sollte so aussehen
SetGet(vierzig);


dieser String,
Get.NodeAdre1= 200.NodeAdre2 = vierzig; //zwei Parameter

sollte so ausshen
Get(0x200, vierzig) // zwei Parameter

Gruß

Agit
Gast #2792573
Lesenswert?

wenn du also einen dynamischen string bauen willst musst du vorher deine 
Parameter abfragen und dann das ganze zusammenbauen.

dazu können dann auch mache Parameter leer sein die dann nur nach bedarf 
gefüllt werden

das hat also per se nix mit der string manipulation zu tun sondern 
einfache programmierlogik

die stringmanipulation als mittel zum zweck sollte man dann schon 
beherschen aber dazu gibts doch auch beschreibungen

http://msdn.microsoft.com/de-de/library/system.string.aspx

also so schwer ist das nun wirklich nicht
#2793637
Lesenswert?

HI,

@ Sebastian.
Danke für die Tipps.
Habs einigermaßen hinbekommen durch die SplitFunktion.

Jedoch habe ich noch eine Frage.

Wenn ich so ein Konstruklt habe:
1
General Configuration.00.MOSTNetworkEvents.Status.NetworkEventID=NIState.TimeOffset={Hour:0000,Minute:00,Second:00,MiliSecond:0000}.NetworkEventStatus={NetInterfaceState=NET_OFF}

würd ich gern die ganze geschweifte Klammer als Parameter übernehmen.
also so:
(es gibt 3 Parameter.)
1: NIState
2: {Hour:0000,Minute:00,Second:00,MiliSecond:0000}
3: {NetInterfaceState=NET_OFF}

Letzendlich sollte das rauskommen.
1
generalConfiguration.MOSTNetworkEvents_Status(NIState, Hour:0000,Minute:00,Second:00,MiliSecond:0000, NetInterfaceState=NET_OFF)

ich muss ihm sagen dass er die Zeichen zwischen den geschweiften 
klammern als ganzes kopiert und einfügt.

wenn ich weiter komme gebe ich bescheidl.

Gruß

Agit

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren