DIFERENCA ENTRE LINHAS DE COMANDO

ERLANMG 03/05/2013 10:30:04
#422886
Caros Colegas, bom dia!

Ambas as linhas de comando abaixo tem a mesma finalidade.

1 - MsgBox(RTrim(TiraAcentos(Mid(Replace(Replace(Replace(mtbCnpjReme.Text, [Ô].[Ô], [Ô][Ô]), [Ô]-[Ô], [Ô][Ô]), [Ô]/[Ô], [Ô][Ô]), 1, 14))))
2 - MsgBox(RTrim(TiraAcentos(Mid(mtbCnpjReme.Text.Replace([Ô].[Ô], [Ô][Ô]).Replace([Ô]/[Ô], [Ô][Ô]).Replace([Ô]-[Ô], [Ô][Ô]), 1, 14))))


A primeira linha utilizava em VB 6, mas testei as duas em vb.net e ambas funcionam igualmente.

Pergunta: Existe algum problema do tipo conflito com sistema operacional ou coisa parecida em utilizar a primeira linha?

Desde já agradeço a todos.

Abraços.

Observação: Segue abaixo a função tiraacentos:

Public Const UM = 1
#Region [Ô]TIRA ACENTOS[Ô]
Public Function TiraAcentos(ByVal Texto As String)
On Error GoTo Trata_erro
[ô]necessito lcase (texto)

Dim i As Integer, j As Integer [ô]contadores pra percorer a matriz
Dim V(21, 1) As String [ô]* 1 [ô]matriz de acentos e suas respectivas equivalentes
Dim A(38) As String [ô]vetor de caracteres invalidos
Dim TEMP As String, TMP As String [ô]vars temp que guardam os valores
Dim K As Integer [ô]contador pra percorrer a tmp
Dim TAM As Integer [ô]tamanho do texto
Dim TMPFINAL As String [ô]texto montagem, volta do procedimento
Dim CONT As Integer [ô]contador do vetor A

TEMP = UCase(Texto)
TAM = Len(TEMP)
TMPFINAL = vbNullString

V(0, 0) = [Ô]Ã[Ô]
V(0, 1) = [Ô]A[Ô]
V(1, 0) = [Ô]Á[Ô]
V(1, 1) = [Ô]A[Ô]
V(2, 0) = [Ô]À[Ô]
V(2, 1) = [Ô]A[Ô]
V(3, 0) = [Ô]Â[Ô]
V(3, 1) = [Ô]A[Ô]
V(4, 0) = [Ô]Ä[Ô]
V(4, 1) = [Ô]A[Ô]

V(5, 0) = [Ô]é[Ô]
V(5, 1) = [Ô]E[Ô]
V(6, 0) = [Ô]È[Ô]
V(6, 1) = [Ô]E[Ô]
V(7, 0) = [Ô]Ê[Ô]
V(7, 1) = [Ô]E[Ô]
V(8, 0) = [Ô]Ë[Ô]
V(8, 1) = [Ô]E[Ô]

V(9, 0) = [Ô]Í[Ô]
V(9, 1) = [Ô]I[Ô]
V(10, 0) = [Ô]Ì[Ô]
V(10, 1) = [Ô]I[Ô]
V(11, 0) = [Ô]Î[Ô]
V(11, 1) = [Ô]I[Ô]
V(12, 0) = [Ô]Ï[Ô]
V(12, 1) = [Ô]I[Ô]

V(13, 0) = [Ô]Ú[Ô]
V(13, 1) = [Ô]U[Ô]
V(14, 0) = [Ô]Ù[Ô]
V(14, 1) = [Ô]U[Ô]
V(15, 0) = [Ô]Û[Ô]
V(15, 1) = [Ô]U[Ô]
V(16, 0) = [Ô]Ü[Ô]
V(16, 1) = [Ô]U[Ô]

V(17, 0) = [Ô]Õ[Ô]
V(17, 1) = [Ô]O[Ô]
V(18, 0) = [Ô]Ó[Ô]
V(18, 1) = [Ô]O[Ô]
V(19, 0) = [Ô]Ò[Ô]
V(19, 1) = [Ô]O[Ô]
V(20, 0) = [Ô]Ô[Ô]
V(20, 1) = [Ô]O[Ô]
V(21, 0) = [Ô]Ö[Ô]
V(21, 1) = [Ô]O[Ô]


A(0) = [Ô][ô][Ô]
A(1) = [Ô]![Ô]
A(2) = [Ô]@[Ô]
A(3) = [Ô]#[Ô]
A(4) = [Ô]$[Ô]
A(5) = [Ô]%[Ô]
A(6) = [Ô]&[Ô]
A(7) = [Ô]*[Ô]
A(8) = [Ô]([Ô]
A(9) = [Ô])[Ô]
A(10) = [Ô]-[Ô]
A(11) = [Ô]_[Ô]
A(12) = [Ô]=[Ô]
A(13) = [Ô]+[Ô]
A(14) = [Ô]§[Ô]
A(15) = [Ô]|[Ô]
A(16) = [Ô]\[Ô]
A(17) = [Ô],[Ô]
A(18) = [Ô]<[Ô]
A(19) = [Ô].[Ô]
A(20) = [Ô]>[Ô]
A(21) = [Ô];[Ô]
A(22) = [Ô]:[Ô]
A(23) = [Ô]?[Ô]
A(24) = [Ô]/[Ô]
A(25) = [Ô]°[Ô]
A(26) = [Ô]-[Ô]
A(27) = [Ô]][Ô]
A(28) = [Ô]}[Ô]
A(29) = [Ô][[Ô]
A(30) = [Ô]{[Ô]
A(31) = [Ô]¬[Ô]
A(32) = [Ô]¢[Ô]
A(33) = [Ô]£[Ô]
A(34) = [Ô]'[Ô]
A(35) = [Ô]'[Ô]
A(36) = [Ô]~[Ô]
A(37) = [Ô]^[Ô]
A(38) = [Ô]¨[Ô]

For i = 0 To (TAM - UM)
TMP = Mid(Left(TEMP, i + UM), i + UM, TAM)
For j = 0 To 21
For K = 0 To UM
If TMP = V(j, K) Then
TMP = V(j, UM)
End If
If TMP = [Ô]Ç[Ô] Then [ô]============================================
TMP = [Ô]C[Ô] [ô] Implementação de Stop Words caso ç --> c =
End If [ô]============================================
For CONT = 0 To 38
If TMP = A(CONT) Then
TMP = [Ô] [Ô]
End If
Next
Next
Next
TMPFINAL = TMPFINAL & TMP
Next

TiraAcentos = TMPFINAL
Exit Function
Trata_erro:
MsgBox([Ô]Erro n° [Ô] & Err.Number & vbCrLf & [Ô]Erro:[Ô] & Err.Description)
Err.Clear()
Resume Next
End Function
#End Region
OCELOT 03/05/2013 10:46:27
#422888
Resposta escolhida
Os dois funcionam bem, o primeiro é do VB e existe pois faz parte da linguagem em si, ele funciona de forma mais parecida com o do VB6, esta função na verdade fica no assembly Microsoft.VisualBasic.dll

O segundo é uma função do próprio objeto string e está incluída diretamente no mscorlib.dll, que é praticamente a base de todo o .Net Framework

Basicamente vai do gosto do programador
Tópico encerrado , respostas não são mais permitidas