31. Januar 2010 19:06
iDummy; := 0;
sSuchString := 'MAPPE';
REPEAT
iDummy := STRPOS(sSuchString, 'PP');
IF iDummy > 0 THEN
sSuchString := DELSTR(sSuchString,iDummy,1);
UNTIL iDummy = 0;
31. Januar 2010 22:32
Schureck hat geschrieben:ich versuche doppelte Zeichen in einem STRING zu finden und dann eins zu entfernen. Beispiel möchte ich aus 'MAPPE' 'MAPE' machen.
1. Februar 2010 18:49
1. Februar 2010 19:22
FOR i := 1 TO STRLEN(DeinWort) DO BEGIN
// Beispiele:
// Wenn i = 1, dann DeinWort[i] := 1. Buchstabe von DeinWort
// Wenn i = 2, dann DeinWort[i] := 2. Buchstabe von DeinWort
// usw.
END;
1. Februar 2010 19:39
TextString := 'TASSENMAPPE';
FOR I := 1 TO STRLEN(TextString) DO BEGIN
IF COPYSTR(TextString,I,1)=COPYSTR(TextString,I+1,1) THEN
TextString := COPYSTR(TextString,1,I)+COPYSTR(TextString,I+2);
END;
MESSAGE(TextString);
1. Februar 2010 20:03
...
FOR I := 1 TO STRLEN(TextString) DO BEGIN
IF TextString[I] = TextString[I+1] THEN
TextString := COPYSTR(TextString,1,I)+COPYSTR(TextString,I+2);
END;
...
3. Februar 2010 09:56
3. Februar 2010 09:59
Schureck hat geschrieben:Ich habe es mit der FOR Schleife nicht hinbekommen. Wenn ich ein Zeichen lösche ändert sich ja die STRLEN.
Und bei mir schien es so als ob NAV den Wert einmal beim Starten der Schleife berechnet und wenn sich zur Laufzeit der Wert ändert bekommt die Schleife das nicht mit.
3. Februar 2010 10:09
Natalie hat geschrieben:Wenn du innerhalb von FOR ein Zeichen löschst, musst du die Variable selbst um 1 reduzieren.
3. Februar 2010 10:18
McClane hat geschrieben:Natalie hat geschrieben:Wenn du innerhalb von FOR ein Zeichen löschst, musst du die Variable selbst um 1 reduzieren.
Ist doch gar nicht nötig? Das läuft zumindest in keinen Fehler ...
3. Februar 2010 10:26