MANIPULACAO DE STRING BASICA

VILANOVA 17/07/2012 14:42:29
#406244
Pessoal, boa tarde, estou com uma necessidade aqui, se tiver como me ajudarem, vejam so, preciso manipular uma dterminada string, ( um textbox ) da seguinte forma, vamos supor que existem la variáveis fixas determinadas pelo usuario da seguinte forma..
VALOR REFERENTE COMPRA CONF. NF ######### DE FORNECEDOR FULANO DE TAL,
o que estou querendo fazer é o seguinte.. pegar nessa string os sinais de # e posicionar em cima deles dando a possibilidade de serem alterados sem o cara precisar ir com a setinha para frente ate chegar nessas variaveis para o mesmo trocar.. eu estou usando o seguinte codigo para fazer isso..

public Function fu_NavegarHistorico(txtHist As TextBox)
Dim iPosicao As Integer
iPosicao = InStr(txtTextoHistorico, [Ô]#######[Ô])
If iPosicao > 0 Then
With txtTextoHistorico
.SelStart = iPosicao - 1
.SelLength = 4
.SelLength = 6
.SetFocus
End With
End If
End Function

isso ai ate funciona bem, mas se o cara por exemplo tiver colocado 8 variaveis # eu tenho que fazer outra funcao para conseguir ir ate onde preciso para modificar os dados..
GOODSPEAKERS 17/07/2012 15:13:30
#406245
Substitua os valores fixos por variaveis.....
FILMAN 19/07/2012 16:35:20
#406265
Resposta escolhida
Seguinte crie um FORM com um TEXTBOX e um BOTAO.

Coloque essa frase no TEXTBOX
VALOR REFERENTE COMPRA CONF. NF ######### DE FORNECEDOR FULANO DE TAL

Dentro de um MODULO coloque as funções abaixo
Public Function POS_ini_fim(texto As String, selecao As String) As String
Dim i As Byte, Temp As String, pINI As Integer, pFIM As Integer

[ô]Temp = texto
pINI = 0
pFIM = 0

For i = 1 To Len(texto)
If Mid(texto, i, 1) = [Ô]#[Ô] And pINI = 0 Then
pINI = CInt(i) - 1
pFIM = CInt(i) + 1
Else
If Mid(texto, i, 1) <> [Ô]#[Ô] And pINI <> 0 Then
pFIM = CInt(i) - 1
Exit For
End If
End If
[ô]Temp = Replace(Temp, Mid(Remover, i, 1), [Ô][Ô])
Next

POS_ini_fim = CStr(pINI) & [Ô];[Ô] & CStr(pFIM - pINI)
End Function

Public Sub seleciona(ByVal Inicial As Integer, ByVal Final As Integer, ByRef tBox As TextBox)
With tBox
.SelStart = Inicial
.SelLength = Final
.SetFocus
End With
End Sub


No botão do FORM coloque assim para chamar a função
Private Sub Command1_Click()
Dim pos As Variant
pos = Split(POS_ini_fim(Text1.Text, [Ô]#[Ô]), [Ô];[Ô])
Call seleciona(pos(0), pos(1), Me.Text1)
End Sub



é uma gambi mais dah pra ter uma ideia de como pode fazer
MARCELO.TREZE 19/07/2012 16:44:38
#406268
pergunta vc está colocando no text box varias linhas tipo um documento que é preenchido automáticamente?

tipo mala direta do word?
Tópico encerrado , respostas não são mais permitidas