Entwickler-Ecke
IO, XML und Registry - Datei einlesen und Änderungen wieder ausgeben
Sebbi2712 - Mo 06.07.09 10:37
Titel: Datei einlesen und Änderungen wieder ausgeben
Hallo Leute.
Ich habe folgendes Problem in C#:
Eine externe Datei (@"C:\Datei1.txt") möchte ich zeilenweise einlesen und ggf. Änderungen vornehmen.
Jede Zeile mit einem bestimmten Anfangsstring soll also geändert werden.
Hier ein Beispiel:
Original Datei 1:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;===========================================================
; POSITIONS
;===========================================================
;PosA,B:
DECL GLOBAL E6POS PosA={X 4,Y 5,Z 6,S 'B0010',T 'B00101011',E1 0.0,E2 0.0,E3 0.0}
DECL GLOBAL E6POS PosB={X 0,Y 0,Z 0,S 'B0010',T 'B00101011',E1 0.0,E2 0.0,E3 0.0}
DECL GLOBAL BASE={X 4,Y 5,Z 6,S 'B0010',T 'B00101011',E1 0.0,E2 0.0,E3 0.0}
;End PosA,B
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Abgeänderte Datei 2:
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;===========================================================
; POSITIONS
;===========================================================
;PosA,B:
DECL GLOBAL E6POS PosA={X 14,Y 25,Z 36,S 'B0010',T 'B00101011',E1 10.0,E2 10.0,E3 10.0}
DECL GLOBAL E6POS PosB={X 10,Y 20,Z 30,S 'B0010',T 'B00101011',E1 10.0,E2 10.0,E3 10.0}
DECL GLOBAL BASE={X 4,Y 5,Z 6,S 'B0010',T 'B00101011',E1 0.0,E2 0.0,E3 0.0}
;End PosA,B
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Wie Ihr seht, sind nur die Daten, die in der Zeilen nach "DECL GLOBAL E6POS" geändert worden. Die Werte für X, Y, Z, E1, E2 und E3 sollen einer Double Variablen zugewiesen werden, sodass man sie anschließend weiter verarbeiten können (In diesem Beispiel wird X mit 10 addiert, Y mit 20, Z mit 30, E1 E2 E3 werden mit 10 addiert)
Die Werte für S und T sollen nicht geändert werden!
Prinzipiell ist es egal ob die Originaldatei ersetzt wird, oder ob eine neue Datei angelegt wird!
Hat jemand von euch dazu einen vernünftigen Lösungsvorschlag?
Ich kenne mich mit dem Verarbeiten von Stringketten leider nicht ganz schlecht aus.
Wenn mein Problem nicht exakt beschrieben wurde, bitte einfach nachfragen!
Besten Dank schon im Voraus!
Gruss
Sebastian
Sebbi2712 - Mo 06.07.09 11:14
Wie kann man sagen, dass eine Zeile eine Arraykette ist und ein Leerzeichen " " ein Komma "," oder eine Geschweifte Klammer "{" eine neue Einheit des Arrays ist.
Beispiel:
DECL GLOBAL E6POS PosA={X 4,Y 5,Z 6,S 'B0010',T 'B00101011',E1 0.0,E2 0.0,E3 0.0}
Nun soll das Array wie folgt aussehen:
Array [0] = DECL
Array [1] = GLOBAL
Array [2] = E6POS
Array [3] = PosA=
Array [4] = X
Array [5] = 4
Array [6] = Y
Array [7] = 5
Array [8] = Z
Array [9] = 6
Array [10] = S
Array [11] = 'B0010'
.....usw.
bakachan - Mo 06.07.09 11:25
Strings haben eine Split-Funktion.
Und noch ein Tipp:
Das sind absolute Grundlagen.
Ich empfehle dir ein Buch/eBook zu C# zu lesen oder die MSDN zu befragen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!