Я хочу зделать прогу с двумя текстовыми полями на форме и кнопкой.
Смысл проги в том: в Text1 пишеш любой текст, при нажатии на кнопку этот текст перелетает во второе текстовое поле но с заменой буквы А на +. Как это сделать?
Function Replace(Expression As String, Find As String, Replace As String, Optional Start As Long = 1, Optional Count As Long = -1, Optional Compare As VbCompareMethod = vbBinaryCompare) As String
Dim I&, Pos&, S$
S = Expression
Pos = InStr(Start, S, Find, Compare)
While I > Count And Pos <> 0
S = Left$(S, Pos - 1) & Replace & Right(S, Len(S) - (Pos - 1) - Len(Find))
I = I + 1
DoEvents
Pos = InStr(Pos + 1, S, Find, Compare)
Wend
Replace = S
End Function
A.A.Z. писал(а):А че там писать-то?
FleX_2004 писал(а):2GSerg ага... а функцию реплэйс он где возмет?
Public toReplace() As SUPERREPLACE_TYPE
Public Type SUPERREPLACE_TYPE
Old_s As String
New_s As String
End Type
Public Sub ClearReplace()
ReDim toReplace(0)
End Sub
Public Sub AddToReplace(Old_s As String, New_s As String)
ReDim Preserve toReplace(UBound(toReplace) + 1)
toReplace(UBound(toReplace)).New_s = New_s
toReplace(UBound(toReplace)).Old_s = Old_s
End Sub
Public Function ReplaceALL(Source As String, Optional Start As Long = 1) As String
Dim i&, q&, t$
For q = 1 To UBound(toReplace)
t = toReplace(q).Old_s
For i = Start To Len(Source) - Len(t) + 1
s = Mid$(Source, i, Len(t))
If s = toReplace(q).Old_s Then
s = toReplace(q).New_s
Source = Left$(Source, i - 1) & s & Mid$(Source, i + Len(toReplace(q).Old_s))
End If
Next i
Next q
ReplaceALL = Source
End Function
Private Sub Command1_Click()
ClearReplace
AddToReplace "a", "1"
AddToReplace "b", "#"
AddToReplace "coffee","Tea"
AddToReplace "ppp",""
Text2 = ReplaceALL(Text1)
End Sub
GSerg писал(а):Интересно, как быть в том случае, когда одна заменяемая строка является частью другой?
Интересно, как быть в том случае, когда одна заменяемая строка является частью другой?
Сейчас этот форум просматривают: Yandex-бот и гости: 22