Laden...

[gelöst] Werte in txt-Datei schreiben ohne dass das Layout zerstört wird

Erstellt von chavez vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.234 Views
Thema geschlossen
C
chavez Themenstarter:in
252 Beiträge seit 2007
vor 12 Jahren
[gelöst] Werte in txt-Datei schreiben ohne dass das Layout zerstört wird

Hi
Also ich habe eine vorgegebene txt-Datei und in diese soll ich Werte aus einige TextBoxen schreiben.
An sich keine Problem, dachte ich mir. Machst du dir einfach ein paar Placeholder rein und dann mittels Replace die Werte ersetzen. Nur so einfach ist das leider nicht, da es mir dann das Layout der txt-Datei zerstört.

Damit ihr seht wie ich das meine:

[pre]
_|______________________________|_
 |                              |
 | Wert1:                       |
 | Wert2:                       |
 | Wert3:                       |
 | Wert4:                       |
_|______________________________|_
[/pre]

Wenn ich da jetzt die Werte einfüge verrutscht mir natürlich rechts der ganze Rand.
Kennt ihr evtl einen Weg wie ich das anstellen könnte ohne das es das Layout zerstört? Mir will da grad nicht wirklich ne zündende Idee kommen.

K
28 Beiträge seit 2009
vor 12 Jahren

Schau dir mal die String.Format bzw. die String.Padx Funktionen an, damit solltest du das Problem lösen können.

C
chavez Themenstarter:in
252 Beiträge seit 2007
vor 12 Jahren

Ich glaub ich steh grad am Schlauch. Wie soll mir das helfen?
da müsste ich ja wissen wie viele Zeichen es bis zum Rand sind und womit soll ich den string auffüllen? Es verschiebt mir ja dann trotzdem wieder den rechten Rand.

3.825 Beiträge seit 2006
vor 12 Jahren

Das hättest Du auch einfach selbst rausbekommen können, aber hier eine kleine Hilfe :

string str = " | Wert1: " + wert1.PadRight(22).Substring(0,22) + "|";

da müsste ich ja wissen wie viele Zeichen es bis zum Rand sind

Sind 22.

und womit soll ich den string auffüllen?

Mit Leerzeichen.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

D
96 Beiträge seit 2012
vor 12 Jahren

Du kannst auch sowas machen, wenn du den Text hinter "WertX" setzen willst :


text = text.Replace("WertX:" + new String(' ', newText.Length), "WertX:" + newText);
Hinweis von herbivore vor 12 Jahren

Selbst wenn man nicht davon ausgehen kann, dass hinter den Platzhaltern Leerzeichen stellen, kann man mit Regex auch beliebige Zeichen ersetzen. Oder man nimmt den String mit "normalen" String-Operationen auseinander, schneidet den Platzhalter und die überflüssigen Zeichen aus und fügt den Rest inkl. des neuen Wertes wieder zusammen.

Es gibt viele Wege zum Ziel. Jedenfalls fällt die Manipulation von Strings - und im Kern geht es um nichts anders - unter [Hinweis] Wie poste ich richtig? Punkt 1.1.1.

C
chavez Themenstarter:in
252 Beiträge seit 2007
vor 12 Jahren

Ich bin einfach nicht auf die Idee gekommen den Wert + die Anzahl der nachfolgenden Leerzeichen für den einzufügenden Text zu ersetzen.
Also so wie in dem Bsp von DerKleineTomy.
Somit hab ich jetzt eine allgemein gültige Lösung. Ich habe nämlich verschiedene Frames bzw Templates. So wie BerndFfm das gezeigt hat hätte ich dann für jedes Template ne eigene Behandlung machen müssen.
Vielen Dank, also so einfach kanns gehen.

Thema geschlossen