Strings überlagern

Hallo Allerseits,

gibt es eine direkte Möglichkeit Strings zu überlagern? Aktuell sollen viele vordefinierte Musterstrings mit neu empfangenen (verschiedene Längen) überschrieben werden. Falls der neue aber kürzer ist sollen alle überzähligen beim Muster erhalten bleiben. Beispiel:

Muster: 123456789
Neu: xxx
Überlagert: 123456xxx

Nicht falsch verstehen. Rein interesshalber möchte ich das Wissen. Die Funktionalität ist mit anderer Lösung schon implementiert. Sowas würde in Zukunft nur etwas Tipparbeit sparen.

Danke im Voraus.

MfG

AL

HHallo AL_Bundy,

ich glaube da gibt es einige Möglichkeiten von low-level bis high-level. Wenn ich es mir einfach machen wollte, würde ich den String in der string-Klasse speichern und die Member-Funktionen verwenden (http://www.cplusplus.com/reference/string/string/), z.B.

string mystring = "123456789";
string mask = "xxx";
mystring.replace(mystring.length()-mask.length(), mask.length(), mask);

Mal so aus der Hüfte geschossen, d.h. Fehler möglich :wink:

Hallo,

in VB6 geht das mit einem API-Aufruf. Dann sollte das mit C/C++ erst recht gehen. Zeigen kann ich es Dir leider nur in VB6, C++ beherrsche ich nicht. (getestet, läuft)

Option Explicit

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" \_
 (pDst As Any, pSrc As Any, ByVal ByteLen As Long)

Dim txt As String

Private Sub Command1\_Click()
 Dim txtNeu As String
 txtNeu = Text1.Text
 If Len(txtNeu) \> Len(txt) Then
 txt = Text1.Text
 Else
 CopyMemory ByVal StrPtr(txt), ByVal StrPtr(txtNeu), LenB(txtNeu)
 End If
 Label1.Caption = txt
End Sub

Gruß Rainer

Hallo Allerseits,

danke an alle Tippgeber. Habe es mit str.replace realisiert.

MfG

AL