COMO FORMATAR UMA STRING
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[Ô]), [Ô]
Fico grato a todos, valeu.
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.
Uma das formas é utilizar a função REPLACE:
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!
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!
Alguma função do tipo:
Rode e veja o resultado!
Valeu...
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...
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:
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.
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.
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:
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?
Assim ele irá adicionar XX caracteres em branco, dependendo da quantidade que precisa para cada parâmetro.
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.
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.
Andre Cantarim, fiz as alteracoes como vc indicou e ficou muito bom. Obrigado.
Tópico encerrado , respostas não são mais permitidas