captainchaos666
Goto Top

Einzelnes Zeichen in einem String, an einer bestimmten Stelle tauschen

Hallo VB-Spezialisten,

könnt Ihr mir weiterhelfen, ich habe zwei Strings

StringA = xxxx-xxxx-xxxx-xxxx
StringB = xxxx-xxxx-xxEx-xxxx

ich möchte nun das das "E" in den StringA übernommen wird, wie kann ich eine einzelnes Zeichen aus einem String in einen anderen Kopieren. Der Buchstabe "E" ist nicht fest es können auch andere Zeichen sein. Es soll nur das Zeichen an der 13'ten Stelle von StringB in StringA Kopiert werden. Die anderen Zeichen müssen erhalten bleiben.

so soll's mal aussehen

StringA = xxxx-xxxx-xxEx-xxxx


Dank euch!


Gruß Alex

Content-Key: 51360

Url: https://administrator.de/contentid/51360

Printed on: April 24, 2024 at 02:04 o'clock

Member: DaSam
DaSam Feb 11, 2007 at 14:11:52 (UTC)
Goto Top
Heppa:

sStr = "xxxx-xxxx-xxxx-xxxx-xxxx"  
wscript.echo ReplChar(sStr, "*", 13)  


function ReplChar (sStr, newChar, nPos)
ReplChar = left(sStr, nPos-1) & newChar & right(sStr, len(sStr)-nPos)
end function

Code ist allerdings ohne irendwelche Überprüfungen, ob die Position z.B. auch innerhalb der Zeichenkette liegt ...

cu,
Alex
Member: captainchaos666
captainchaos666 Feb 11, 2007 at 14:30:49 (UTC)
Goto Top
Hallo Alex,
Dank Dir
Member: bastla
bastla Feb 11, 2007 at 15:47:54 (UTC)
Goto Top
Hallo captainchaos666!

Als Nachtrag: Sofern Du nicht VBScript (sondern etwa VBA) verwendest, gäbe es genau für diesen Zweck die Funktion / Anweisung "Mid()":
Mid(strA, 13, 1) = Mid(strB, 13, 1)

Grüße
bastla
Member: Biber
Biber Feb 11, 2007 at 15:58:38 (UTC)
Goto Top
@bastla
Mid(strA, 13, 1) = Mid(strB, 13, 1)
Sicher? Ich meine den linken Teil...
StrA=Mid(strA,1,12) + Mid(StrB,13,1) + Mid(StrA,14)
fände ich einleuchtender.
Würde mich wundern, wenn sich mit Left()/Right()/Mid auch PEEKen und POKEn liesse...*gg
Und wenn, geht dann auch ein.... ?
UCase(strA) = LCase(strB)
face-wink

SCNR
Biber
Member: DaSam
DaSam Feb 11, 2007 at 16:08:16 (UTC)
Goto Top
@Biber:

dachte zuerst auch, dass man eine Zuweisung mittels mid() machen kann - ich habe schwer im Hinterkopf, dass das bei irgendeiner BASIC-Ausprägung mal ging ...

In 'C' wäre es ja ohnehin wesentlich "eleganter" face-wink

cu,
Alex
Member: bastla
bastla Feb 11, 2007 at 16:11:06 (UTC)
Goto Top
@Biber

> Mid(strA, 13, 1) = Mid(strB, 13, 1)
Sicher? Ich meine den linken Teil...
Mit der Einschränkung auf "Nicht VBScript": ja

> StrA=Mid(strA,1,12) + Mid(StrB,13,1) + Mid(StrA,14)
fände ich einleuchtender.
Wir Basler schreiben in solchen Fällen ja eher "&" als "+" (aber mehr aus ästhetischen Gründen - zulässig ist das "+" auch) - ansonsten kann man's so machen, wenn man viel Zeit hat (oder VBS verwenden muss) ...

Würde mich wundern, wenn sich mit Left()/Right()/Mid auch PEEKen und POKEn liesse...*gg
"Left()" und "Right()" kann ich von einem diesbezüglichen Verdacht frei sprechen ...
Was "Mid()" angeht: Auf einen String bezogen ist es das ja eigentlich auch (hinsichtlich Speicher müsste man wohl schon Konstruktionen mit Parameterübergabe "by Ref" oÄ strapazieren ...).

Und wenn, geht dann auch ein.... ?
> UCase(strA) = LCase(strB) face-wink
Geht - allerdings in die Binsen ... face-wink

Grüße
bastla