Text in Textdatei verändern

Fenriswolf

Grünschnabel
Hallo!
Ich habe folgendes Problem: Ich sende per generierter Textdatei eine Anfrage an einen Routenserver, der mir auf meine Anfrage hin eine Antwortdatei(*.ans) in einem Ordner auf meiner Festplatte speichert bzw. zurückgibt.

Jetzt ist es aber so, das diese Datei Text enthält den ich in dieser Form unmöglich gebrauchen kann.
Die Datei sieht wie folgt aus:

[server]
timetodrive: 3:35*
disttodrive: 335*
bitmapautogenerate=true
usw.

Der Aufruf dieser Datei erfolgt in einer rtf Box, in einem Formular, nachdem der Benutzer einen Button gecklickt hat.

Jetzt hätt ich gerne das in dieser rtf Box nur die Ergebnisse von timetodrive und disttodrive stehen. Mit dem Zusatz der in etwa wie folgt lauten soll:
"Die errechneten Kilometer der beiden Wegpunkte: 335*
Die Ungefähre Wegzeit:3:35* Stunden"

*von den beiden errechneten Werten

Also ich möchte aus der vom Server generierten Antwortdatei nur die beiden Ergebnisse timetodrive und disttodrive herausfiltern. Anzeigen ist kein problem, das hab ich schon bewerkstelligt.



Wie kann ich das realisieren Wäre echt fein wenn mir da wer helfen könnte, bzw. bin für jede kleine Hilfe dankbar
 

Alexander Schuc

crazy-weasel
Hallo.

Du könntest im Text nach dem ersten Auftretten des Strings "timetodrive" suchen, danach kannst du dir ausrechnen wo der Wert steht und mittels der Substring Methode der String-Klasse den Wert herausfiltern.
Und genau so geht es auch mit disttodrive.

Oder aber du probierst es mit Regulären Ausdrücken.

Mfg,
Alex
 

Saber

Erfahrenes Mitglied
Du könntest die Strings auch zeilenweise einlesen und dann die Ergebnisse in ein Array splitten. Das mach ich in solchen Fällen immer.

Bsp:
timetodrive: 3:35*

Nehmen wir mal an, Du hast diese Zeile in die String-Variable strLine eingelesen, dann würde der Source Code wie folgt aussehen:
Code:
// Splitten
string [] arrLine = strLine.Split(':');

// Alle voranstehenden und nachfolgenden Leerzeichen entfernen
arrLine[1].Trim();
Anschließend hast in arrLine[0] den Wert "timetodrive" drinnen und in arrLine[1] den Wert "3:35*". Dann sollte es eigentlich ein Kinderspiel sein, wobei die Methode von Alexander Schuc auch funktioniert. :)

Nicht tetestet, sollte aber klappen. :)