PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : String untersuchen



Mr-400-Volt
30.12.2006, 01:29
Hallo, ich möchte einen String auf doppelte einträge untersuchen, und den letzten der doppelten ersetzen. Also wie im Code aus 76552 eine 765R2 machen. Aber irgend etwas ist da falsch, aber was ???
Bitte um hilfe !!!

Danke !!!

A = "76552"
B = "R"

For X = 2 To 5
Y = X - 1
If Mid(a , Y , 1) = Mid(a , X , 1) Then
Mid(a , X , 1) = B
End If
Next

Upperline
Lcd B

Do
Loop


End 'end program

Downad
30.12.2006, 09:21
also wenn du nur gleiche, aufeinanderfolgende zeichen löschen willst, dann mach das doch über string-abbau und -aufbau.

etwa so

sOriginal = "72556"
cErsatz = "R"
cFirstCharOrig = ""
cLastCharNew = ""

iForEnd = Len(sOriginal)

sNewstring = ""
sNewstring = sNewstring & Left(sOriginal, 1)
sOriginal = Right(sOriginal, Len(sOriginal) - 1)

For ilauf = 1 To iForEnd - 1
cFirstCharOrig = Left(sOriginal, 1)
cLastCharNew = Right(sNewstring, 1)
If cFirstCharOrig = cLastCharNew Then cFirstCharOrig = cErsatz
sNewstring = sNewstring & cFirstCharOrig
sOriginal = Right(sOriginal, Len(sOriginal) - 1)
Range("a" & ilauf).Value = cFirstCharOrig
Range("B" & ilauf).Value = cLastCharNew
Next ilauf


falls du alle in der zeichenkette vorkommenden ab einem bestimmten ersetzen willst, bau den string ab und suche das weitere vorkommen in string.

schau dir mal die die funktionen
index(s,t)
Gsub(r,s,t)
sub
substr
an
die gibt es unter awk - evtl auch unter c

gruß
downad

PICture
07.01.2007, 03:44
Hallo Mr-400-Volt!

Ich glaube, dass "a" sollte "A" heissen und die "For" Schleife 5 mal durchlaufen soll, also für x=2 bis 6.

MfG