COMO FORMATAR UMA STRING

FERRAZ 31/07/2009 22:06:28
#318518
Rapaziada noite, tenho algumas strings em particular, algumas que seu formato eh padrao e outras que tenho que tirar, alguns caracteres, quando eu clicar em um botao que ira gerar um arquivo [Ô]TXT[Ô] arquivo este que nao pode conter caracteres do tipo: ([Ô].[Ô] [Ô],[Ô] [Ô]-[Ô] [Ô]/[Ô]), como posso tiras esses caracteres para o arquivo ficar correto ?

Uma das linhas que contem um campo que ira ficar com os caracteres indesejaveis ex.: [Ô]rs.Fields([Ô]CNPJ[Ô]), [Ô]

Call Registro_1([Ô]001[Ô], [Ô]0000[Ô], [Ô]1[Ô], [Ô]R[Ô], [Ô]01[Ô], [Ô]00[Ô], [Ô]020[Ô], [Ô][Ô], [Ô]2[Ô], rs.Fields([Ô]CNPJ[Ô]), [Ô]001399226001417019  [Ô], [Ô]00714[Ô], [Ô]5[Ô], [Ô]022222222222[Ô], [Ô]3[Ô], [Ô]3[Ô], rs.Fields([Ô]Nome[Ô]), [Ô]                                        [Ô], [Ô]                                        [Ô], [Ô]        [Ô], [Ô]00000000[Ô], [Ô]00000000[Ô], [Ô]                                 [Ô])



Fico grato a todos, valeu.
ANDRE.ADMVB 31/07/2009 22:19:34
#318519
Resposta escolhida
Uma das formas é utilizar a função REPLACE:

Dim CNPJ As String

CNPJ = rs.Fields([Ô]CNPJ[Ô])
CNPJ = Replace(CNPJ, [Ô].[Ô], [Ô][Ô])
CNPJ = Replace(CNPJ, [Ô],[Ô], [Ô][Ô])
CNPJ = Replace(CNPJ, [Ô]-[Ô], [Ô][Ô])
CNPJ = Replace(CNPJ, [Ô]/[Ô], [Ô][Ô])


Obs: Isso é um exemplo. Você pode adaptar e criar sua própria função para tratar todos os CARACTERES INVÁLIDOS e retornar a STRING tratada ao final!
ANDRE.ADMVB 31/07/2009 22:23:45
#318520
Alguma função do tipo:

Const carac As String = [Ô].,-/[Ô]

Private Function TratarString(mString As String) As String

Dim i As Integer
Dim mStringTratada As String

mStringTratada = mString

For i = 1 To Len(carac)
mStringTratada = Replace(mStringTratada, Mid(carac, i, 1), [Ô][Ô])
Next i

TratarString = mStringTratada

End Function

Private Sub Form_Load()
MsgBox TratarString([Ô]120.230326-3269/236923.00[Ô])
End
End Sub


Rode e veja o resultado!
Valeu...
FERRAZ 01/08/2009 00:27:11
#318524
Andre Cantarim, funciona sua instrucao, agora, eu preciso que os caracteres nao existam tbem dentro do arquivo que gero, pois ao abrir o [Ô]TXT[Ô] os caracteres continuam.

Aqui eu gero o arquivo:

Private Sub mnuBBr_Click()
Dim rs As Recordset
Dim SQL As String

SQL = [Ô]SELECT * FROM TbCadEmp [Ô]
Set rs = Conexao.Execute(SQL)

Call Registro_0([Ô]001[Ô], [Ô]0000[Ô], [Ô]x[Ô], [Ô]xxxxxxxx9[Ô], [Ô]x[Ô], [Ô]xxxxxxxxxxxx14[Ô], [Ô]xxxxxxxxxxxxxxxxxx20[Ô], [Ô]xxxx5[Ô], [Ô]x[Ô], [Ô]xxxxxxxxxx12[Ô], [Ô]x[Ô], [Ô]1[Ô], rs.Fields([Ô]Nome[Ô]), [Ô]xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx30[Ô], [Ô] [Ô], [Ô]1[Ô], [Ô]xxxxxxx8[Ô], [Ô]xxxxx6[Ô], [Ô]xxxxx6[Ô], [Ô]030[Ô], [Ô]00000[Ô], [Ô]xxxxxxxxxxxxxxxxxxxx[Ô], [Ô]xxxxxxxxxxxxxxxxxxxx[Ô], [Ô] [Ô], [Ô] [Ô], [Ô] [Ô], [Ô] [Ô], [Ô] [Ô])

Call Registro_1([Ô]001[Ô], [Ô]0000[Ô], [Ô]1[Ô], [Ô]R[Ô], [Ô]01[Ô], [Ô]00[Ô], [Ô]020[Ô], [Ô][Ô], [Ô]2[Ô], rs.Fields([Ô]CNPJ[Ô]), [Ô]001399226001417019 [Ô], [Ô]00714[Ô], [Ô]5[Ô], [Ô]022222222222[Ô], [Ô]3[Ô], [Ô]3[Ô], rs.Fields([Ô]Nome[Ô]), [Ô] [Ô], [Ô] [Ô], [Ô] [Ô], [Ô]00000000[Ô], [Ô]00000000[Ô], [Ô] [Ô])

Call Registro_3([Ô]xx0[Ô], [Ô]xxx4[Ô], [Ô]xx3[Ô], [Ô]xxxx5[Ô], [Ô]P[Ô], [Ô][Ô], [Ô]x2[Ô], [Ô]xxxx5[Ô], [Ô]x[Ô], [Ô]xxxxxxxxxx12[Ô], [Ô]x[Ô], [Ô]1[Ô], [Ô]xxxxxxxxxxxxxxxxxx20[Ô], [Ô]x[Ô], [Ô]1[Ô], [Ô]x[Ô], [Ô]1[Ô], [Ô]x[Ô], [Ô]xxxxxxxxxxxxx15[Ô], [Ô]xxxxxxx8[Ô], [Ô]xxxxxxxxxxx13[Ô], [Ô]xxxx5[Ô], [Ô]x[Ô])

MsgBox [Ô]Arquivo Gerado Com Sucesso[Ô], vbInformation
MsgBox TratarString(rs.fields([Ô]CNPJ[Ô]))

End Sub


agora fiz, varios testes alterando a funcao assim TratarString(rs.fields([Ô]CNPJ[Ô])), realmente os caracteres sao eliminados, porem, dentro do arquivo [Ô]TXT[Ô] os caracteres sao gerados da mesma forma ?


Valeu sua atencao.
ANDRE.ADMVB 01/08/2009 10:59:38
#318531
Você deve alterar na função onde voce GRAVA no arquivo texto.

Sua função que grava é a Call Registro_XXXX?

Se for, faça o tratamento na chamada da função. Exemplo:

Call Registro_1([Ô]001[Ô], [Ô]0000[Ô], [Ô]1[Ô], [Ô]R[Ô], [Ô]01[Ô], [Ô]00[Ô], [Ô]020[Ô], [Ô][Ô], [Ô]2[Ô], [txt-color=#ff0000]TratarString([/txt-color]rs.Fields([Ô]CNPJ[Ô])[txt-color=#ff0000])[/txt-color], [Ô]001399226001417019  [Ô], [Ô]00714[Ô], [Ô]5[Ô], [Ô]022222222222[Ô], [Ô]3[Ô], [Ô]3[Ô], rs.Fields([Ô]Nome[Ô]), [Ô]                                        [Ô], [Ô]                                        [Ô], [Ô]        [Ô], [Ô]00000000[Ô], [Ô]00000000[Ô], [Ô]                                 [Ô])



OBS: Uma dica:
Não sei porque você precisa gravar espaços em branco, mas já que tem que os fazer, pq ao invés disso:
[Ô]                                        [Ô]


Não passa isso?
String$(40, [Ô] [Ô])


Assim ele irá adicionar XX caracteres em branco, dependendo da quantidade que precisa para cada parâmetro.
FERRAZ 01/08/2009 11:41:40
#318533
Andre Cantarim, valeu, vou seguir suas dicas sim, agora eu uso espacos em brancos pois este [Ô]TXT[Ô] eh o layout do banco do brasil e nele existe esses espacos em branco sabe. Vou fazer os testes e depois falo pra vc, valeu.
FERRAZ 02/08/2009 22:47:29
#318631
Andre Cantarim, fiz as alteracoes como vc indicou e ficou muito bom. Obrigado.
Tópico encerrado , respostas não são mais permitidas