Laden...

Datei mit vielen Zeichen und Buchstaben

Erstellt von alf468 vor 19 Jahren Letzter Beitrag vor 19 Jahren 1.776 Views
A
alf468 Themenstarter:in
196 Beiträge seit 2005
vor 19 Jahren
Datei mit vielen Zeichen und Buchstaben

Also ein neues Topic
Ich habe aus einer Datei mit vielen Zeichen und Buchstaben etwas rausgefiltert
'''"***!!'')/(()= hallo.asd hallo2.asdf hallo3.asdf /(!("!/)"!)"!
alles mit der Endunf .asdf

Das ganze wurde ins DataGrid geladen wo der User die .adf Namen editieren kann
Ich will nun das ganze auch wieder in der Textdatei speichern natürlich mit den ganzen Sonderzeichen
Es darf kein Zeichen verloren gehen ⚠ ⚠

Wie soll ich dabei vorgehen???

N
49 Beiträge seit 2005
vor 19 Jahren

Du könntest ein char-Array mit den Sonderzeichen anlegen und dann vor dem Schreiben ins Textfile mit IndexOf() buchstabenweise überprüfen, ob es sich um ein Sonderzeichen handelt. Falls ja hängst du einen Backslash vor das Sonderzeichen an, damit sollte das Zeichen dann korrekt ins File geschrieben werden.

Also das ist mal mein erster Gedanke. Möglich, dass da noch gewisse Probleme auftauchen...

49.485 Beiträge seit 2005
vor 19 Jahren

Hallo alf468,

ich bin mir immer noch nicht sicher, ob ich das richtig verstanden habe. Bisher sehe ich das so:

Du hat den String aus der Datei ausgelesen. Dann lässt du meine Schleife drüberlaufen und bekommst eine Reihe von Übereinstimmungen. Jeden einzelne Überstimmung kommt in eine Zelle des DataGrids. Jetzt kann der Benutzer im DataGrid einzele Werte ändern. Dann sollen die (geänderten) Werte an die ursprünglichen Stellen im String geschrieben werden und der String in eine Datei. Wenn der Benutzer im DataGrid bespielsweise gar nichts geändert hat, soll in der Datei unverändert stehen, was auch vor dem Laden drinstand. Wenn der Benutzer z.b. 'hallo2' in 'bla3' ändert, soll der String genauso aussehen wie vorher, nur das genau an der Stelle, wo früher das 'hallo2' stand jetzt 'bla3' steht. Richtig?

Wenn ja, dann dann solltest du dir zu jedem einzelen Übereinstimmung m.Groups["found"].Index und m.Groups["found"].Length merken. Mit diesen Angaben kannst du dann mit String.Substring den Original-String auseinandernehmen, also quasi die alten Werte rausschneiden und die geänderten Werte an die entsprechenden Stellen mit String.operator+ wieder zusammensetzen. Den Ergebnis-String kannst du dann einfach in eine Datei schreiben. Die Sonderzeichen machen dabei keine Problem (solange du das gleiche Encoding wie beim Lesen verwendest - was, wenn du nichts weiter angibst, sowieso der Fall ist).

@Nightline: Einen Backslash braucht man nur in String-Literalen oder in regulären Ausdrücken, um Sonderzeichen zu erzeugen bzw. zu escapen. Wenn die Zeichen in einem String enhalten sind, muss man sich da nicht weiter drum kümmern.

HTH

herbivore