Hallo Gemeinde, Mit
1 | |
empfange ich eine Zeichenkette welche 3 Zeilen enthält. Wie kann ich die 2 Zeilenumbrüche löschen? Will danach den string auf eine bestimmte Stelle trimen. so trimt er jetzt jede Zeile... Danke im Voraus! Gruss Dani
|
Anzeige
|
Absätze aus String entfernen C#Hallo Gemeinde, Mit
empfange ich eine Zeichenkette welche 3 Zeilen enthält. Wie kann ich die 2 Zeilenumbrüche löschen? Will danach den string auf eine bestimmte Stelle trimen. so trimt er jetzt jede Zeile... Danke im Voraus! Gruss Dani Je nachdem was als Zeilenumbruch benutzt wird z.B.
myString = myString .Replace("\n", "");
Boris P. schrieb: > myString = myString .Replace("\n", ""); Es kommt natürlich darauf an, was für eine Zeilenendesequenz verwendet wird: \r\n ist unter Windows üblich \n unter Unix-ähnlichen Systemen
Gast
#4250496
Das ist eine der ersten Fingerübungen, die man macht wenn man eine Programmiersprache lernt. Wenn sowas hier gefragt wird, dann ist ganz klar, der TO will nicht programmieren lernen sondern mit copy & paste was zusammenfrickeln ohne selbst was dafür zu investieren. Guttemberg lässt grüssen. @Uhu: Beim Entfernen ist es egal, wenn man \r und \n entfernt liegt man auf jeden Fall auf der richtigen Seite... Danke! klappt jetzt! Kann ich auch aus einem String eine gewisse zeichenfolge heraus filtern? Z.b. so: Test 1234 xx:xx:xx:xx:xx tset und ich möchte nur das hier haben: xx:xx:xx:xx:xx Problem der ganzen Sache ist, wenn ich den String zuschneide kann ich nur eine MAC Adresse anzeigen, ich möchte aber mehrer dann in eine Listbox einfügen... Gruss Dani
Gast
#4250521
Hä? Wie sieht denn Dein ursprünglicher String aus? so? Test1 1234 xx:xx:xx:xx:xx tset1 Test2 2345 xx:xx:xx:xx:xx tset2 Test3 3456 xx:xx:xx:xx:xx tset3 warum willst Du dann als erstes die Zeilenumbrüche entfernen, wenn Du an die MAC-Adressen willst. Verarbeite doch einfach Deinen Eingangsstring zeilenweise und schneide Die Zeilen entsprechend zu... Tcf K. schrieb: > @Uhu: Beim Entfernen ist es egal, wenn man \r und \n entfernt > liegt > man auf jeden Fall auf der richtigen Seite... Das wird aber mit Replace nicht klappen, wenn das Muster nicht passt. INQUIRY_PARTIAL 0c:14:20:22:1d:62 200404 INQUIRY_PARTIAL 2c:54:cf:7b:3f:70 5a020c INQUIRY 2 INQUIRY 0c:14:20:22:1d:62 200404 INQUIRY 2c:54:cf:7b:3f:70 5a020c So schaut mein String aus ... am Anfang nicht gleich lang... von hinten abschneiden und dann nur die mac Adressen rauskopieren ? würde das gehen? Gruss Dani
Gast
#4250536
Uhu U. schrieb: > Das wird aber mit Replace nicht klappen, wenn das Muster nicht passt. Er könnte z.B. alle \r durch nichts ersetzen und alle \n durch ein Blank. Dann würde es bei Unix und Win passen. Wie ist das mit Apple, haben die nicht nochmal andere Zeilenumbrüche?
Gast
#4250538
Daniel R. schrieb: > von hinten abschneiden und dann nur die mac Adressen rauskopieren ? > würde das gehen? Schon mal was von regulären Ausdrücken gehört. Dann lies dich mal ein, das kann auch C#. Suche einfach nach Ausdrücken in der Form aa:bb:cc:dd:ee:ff oder aa:bb:cc:dd Wie das geht ist ne schöne Übung um was zu lernen. @DerAndere: Imho hatten die früher nur \r bin aber nicht sicher. @Daniel Rüscher: Das ist ein Fall für sed https://de.wikipedia.org/wiki/Sed_%28Unix%29
Gast
#4250564
Wenns "schön" sein soll, würde ich's mit Regular Expressions machen. Wenn's nur Quick&Dirty sein muss, so (Python):
Die entsprechenden Funktionen gibt es bestimmt auch in C#... wie kann ich das jetzt so hinbiegen das er aus einem String die Mac-Adresse filtert? Schreibt jetzt nur WENN NUR eine MAC-Adresse kommt
Gast
#4250658
Tcf K. schrieb: > @DerAndere: Imho hatten die früher nur \r bin aber nicht sicher. Sowas hatte ich auch im Kopf. Völlig bescheuert, ja anders machen als alle anderen um möglichst inkompatibel zu sein. Dem Idioten, der sich das ausgedacht hat gehört Prügel, genau wie dem, der sich ausgedacht hat in Windows in Pfaden und Dateinamen Blanks als gültige Zeichen zuzulassen. ok jetzt klappts...kann aber nur eine Adresse einleisen... was muss ich verändern dass ich unbegrenzt viele einlesen kann? im ideal fall arrays füllen das ich die dann in eine Listbox geben kann.. Gruss Dani
Gast
#4250670
Daniel R. schrieb: > wie kann ich das jetzt so hinbiegen das er aus einem String die > Mac-Adresse filtert? > Schreibt jetzt nur WENN NUR eine MAC-Adresse kommt Weil ^ und $ Zeilenanfang und Zeilenende markieren. Ich finde es aber gut, dass du dich in Bezug auf Regex informiert hast. So sollte es funktionieren, denke ich:
Danke das du dir extra die mühe gemacht hast den Code zu tippen!! aber wie kann ich mehrere Mac Adressen einlesen? Wenn mehrere Geräte sichtbar sind bekomm ich mehrere MAC Adressen in einen String... Gruss Dani
Gast
#4250723
Daniel R. schrieb: > Wenn mehrere Geräte sichtbar sind bekomm ich mehrere MAC Adressen in > einen String... Zeilenweise, wie oben beschrieben (d.h., der Input war wie im Beispiel und du hast die Zeilen nicht selbst umgebrochen)? Wenn nicht, funktioniert mein Vorschlag so nicht ... > aber wie kann ich mehrere Mac Adressen einlesen? Nur über Regex ginge es zwar (man muss dann natürlich iterieren), aber das ist meiner Meinung nach hier unnötig kompliziert. Ich würde einfach in Zeilen splitten und dann für jede Zeile ExtractMac aufrufen.
Falls die anderen Daten (INQUIRY_PARTIAL, INQUIRY, die zweite Zahl etc.) auch eine Rolle spielen , könnte man eine kleine Klasse schreiben, in der die jeweilige Zeile dann - evtl. gleich im Konstruktor - geparst wird (und die dann die entsprechenden Daten speichert). Jetzt wird mir das ganze ein bisschen zu kompliziert... Das mit "Static class extension" ist volles Neuland Wie kann ich jetzt die macs in z.b eine Textbox schreiben?!
Gast
#4250781
system.environment.newline
Gast
#4250911
Daniel R. schrieb: > Wie kann ich jetzt die macs in z.b eine Textbox schreiben?! Verwendest du Windows Forms oder WPF? Ich würde eher ein List-Control einsetzen. Mit einer Textbox (wie Matthias schon angedeutet hat):
Nicht vergessen, die Eigenschaft "Multiline" der Textbox auf true zu setzen. Moin Moin, Funktioniert jetzt schon fast so wie ich will... warum löscht er den Eintrag in Macs wieder? Wenn ich ein Haltepunkt auf macs setzte sehe ich das die Macs drinnen stehen aber wenn ich das Programm weiter laufen lasse löscht er diese wieder ?! Wenn der String nicht mehr gelöscht wird,... wie kann ich diesen in ein Array umwandeln und dann in eine Listbox schreiben? Ich arbeite auf der FORM Gruss Dani Moin, ich habe einen String mit mehrern Absätzen. Wie kann ich diesen String bei einem Absatz in ein Array schreiben string[0] // erste Zeile string[1] // zweite Zeile usw. Danke im Voraus! Gruss Dani
Gast
#4253644
Gerade auch drauf gestoßen. Trozdem Danke!
Gast
#4253791
Daniel R. schrieb: > Funktioniert jetzt schon fast so wie ich will... warum löscht er den > Eintrag in Macs wieder? > Wenn ich ein Haltepunkt auf macs setzte sehe ich das die Macs drinnen > stehen aber wenn ich das Programm weiter laufen lasse löscht er diese > wieder ?! Da wir dein Programm nicht kennen, kann man nur raten ... Vielleicht erzeugst du immer eine neue Instanz eine Liste (wie im Beispiel, aber das ist ja nur eine Konsolenanwendung, die das Prinzip zeigen sollte). Du musst die Liste in deinem Programm auf Klassenebene deklarieren bzw. auch gleich dort (oder im Konstruktor) initialisieren, nicht wie im Beispiel lokal in einer Methode. class DeineKlasse { // ... private List<string> macs = new List<string>(); } Um den Inhalt der Liste zu löschen, kannst du macs.Clear() aufrufen. > Wenn der String nicht mehr gelöscht wird,... Welcher String? Meinst du den Inhalt der Liste? > wie kann ich diesen in ein Array umwandeln und dann in eine Listbox > schreiben? Wenn die Daten in der Liste nicht mehr gelöscht werden, kannst du doch direkt die Liste verwenden. Oder die neuen Daten sofort in die Listbox setzen (in der Schleife, in der du die MACs zur Liste hinzufügst). if (!string.IsNullOrEmpty(mac)) { macs.Add(mac); macListBox.Items.Add(mac); } Falls du die MACs wirklich nur anzeigen und nicht weiter verarbeiten willst, könntest du genau genommen auf die "macs"-Liste verzichten. Den Inhalt der Listbox löschst du, wenn nötig, mit macListBox.Items.Clear(); Das ist jetzt die einfachste Art und Weise, es geht auch eleganter (LINQ, Data-Binding, sortieren, filtern - evtl. doppelte Einträge möglich? -, ...). Aber da du offenbar noch mit den Grundlagen kämpfst, wäre so etwas wohl keine gute Idee. Evtl. solltest du erst einmal ein Tutorial zu C#-Grundlagen durcharbeiten, anstatt das Ganze übers Knie brechen zu wollen. Dann würdest du nicht so häufig festhängen ...
Gast
#4253794
Beitrag "Re: Absätze aus String entfernen C#" // Evtl. noch nachsehen, wie bei dir die Zeilen getrennt sind input.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None); Es ist aber der falsche Ansatz bei deinem Problem. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|