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.
Schau dir mal die String.Format bzw. die String.Padx Funktionen an, damit solltest du das Problem lösen können.
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.
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
Du kannst auch sowas machen, wenn du den Text hinter "WertX" setzen willst :
text = text.Replace("WertX:" + new String(' ', newText.Length), "WertX:" + newText);
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.
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.