ReplaceString Zeichen an Index-Stelle ...
Verfasst: 16.11.2007 01:53
Hallo Fans ...
Gibt es einen PB-Befehl, der genau das macht:
Text$ ist der Text, an dessen Stelle k eine Zeichenkette der Länge C$
mit dem Inhalt C$ eingefügt werden soll.
Quasi das Pondong (oder wie man dazu sagt) zu Was ja den Textteil S$ an der Stelle k mit der Länge C$ ergibt.
Nun will ich genau umgekehrt einen String einfügen an einer bestimmten Stelle, aber ein InsertString(String$,Index,InsString$[,Mode])
gibbed ja nicht.
Wobei der Modus wäre: Überschreiben oder Einsetzen ...
Braucht man das zu selten?
Naja, vielleicht in PB 4.2 ?
Ich dachte, das benötigt man fast immer, wenn man eine kleine Schreibmaschine bastelt, oder einen Parser macht oder QuellText umwandeln will ...
Bestimmt gibt es eine StringUserLib ... aber ist es nich ein so wichtiger Befehl, dass der zu PB dazu gehört???
In Pascal gab es DeleteString und InsertString
Mit Delete, konnte man an der Stelle Index eine Anzahl Zeichen entfernen aus dem String.
Das muss man bei PB immer mit Left + Right ...
In Pascal (gebe zu, dass es mit UnicodeUnterstützung schwierig ist)
war ein String ja eine Art Kette/Array von Zeichen
Mann konnte also S$[3] ausgeben bzw. setzen.
die Ausgabe würde Mid(S$,3,1) gleich kommen.
Cool wäre, wenn man das auch wie ein Dim machen könnte.
S$(3) ... oder so ähnlich

Fügt Zeichen ein, überschreibt auf Wunsch, entfernt Zeichen oder Kombination

Gibt es einen PB-Befehl, der genau das macht:
Text$ ist der Text, an dessen Stelle k eine Zeichenkette der Länge C$
mit dem Inhalt C$ eingefügt werden soll.
Code: Alles auswählen
Text$=Left(Text$,k)+C$+Right(Text$,Len(Text$)-k-Len(C$))
Code: Alles auswählen
S$=Mid(String$,k,Len(C$))
Nun will ich genau umgekehrt einen String einfügen an einer bestimmten Stelle, aber ein InsertString(String$,Index,InsString$[,Mode])
gibbed ja nicht.
Wobei der Modus wäre: Überschreiben oder Einsetzen ...
Braucht man das zu selten?
Naja, vielleicht in PB 4.2 ?

Ich dachte, das benötigt man fast immer, wenn man eine kleine Schreibmaschine bastelt, oder einen Parser macht oder QuellText umwandeln will ...

Bestimmt gibt es eine StringUserLib ... aber ist es nich ein so wichtiger Befehl, dass der zu PB dazu gehört???
In Pascal gab es DeleteString und InsertString
Mit Delete, konnte man an der Stelle Index eine Anzahl Zeichen entfernen aus dem String.
Das muss man bei PB immer mit Left + Right ...
In Pascal (gebe zu, dass es mit UnicodeUnterstützung schwierig ist)
war ein String ja eine Art Kette/Array von Zeichen
Mann konnte also S$[3] ausgeben bzw. setzen.
die Ausgabe würde Mid(S$,3,1) gleich kommen.
Cool wäre, wenn man das auch wie ein Dim machen könnte.
S$(3) ... oder so ähnlich


Code: Alles auswählen
Procedure.s InsertString(String$,Index,InsString$,Mode=1) ; 1=overwrite, 0=insert
;/ denkt an mich (Folker Linstedt)
S$=Left(String$,Index)+InsString$
If Mode
S$+Right(String$,Len(String$)-Index-len(InsString$))
Else
S$+Right(String$,Len(String$)-Index)
EndIf
ProcedureReturn S$
EndProcedure
Code: Alles auswählen
Procedure.s InsertString(String$,Index,InsString$,Mode=0) ; 0=insert, 1=overwrite, mode < 0 delete chars
Index-1 ; Zugefügt ...
S$=Left(String$,Index)
If InsString$<>""
S$+InsString$
EndIf
If Mode=0
S$+Right(String$,Len(String$)-Index)
Elseif Mode=1
S$+Right(String$,Len(String$)-Index-len(InsString$))
ElseIf Mode<0
S$+Right(String$,Len(String$)-Index+Mode-len(InsString$))
EndIf
ProcedureReturn S$
EndProcedure
