FUN?ÃO PARA FORMATAR STRING

JOAOBENEVIDES 14/10/2015 16:37:37
#452529
ola pessoal antigamente antes de migrar para o c# eu tinha esta funcao em vb 6 gostaria de saber como faco a mesmo em .net em c# exite algo parecido

Function Formata(ByVal texto As String, ByVal QtdeEspacos As Integer, Optional TipoEspaco As String = [Ô] [Ô], Optional Direcao As eDirecao = eDireita, Optional Mask As String) As String
On Error GoTo ERRO

Dim x As Long
Dim Tam As Long
Dim espaco As String
Dim Var As String
Dim Qtde As Integer

If Trim(texto) = [Ô]__/__/____[Ô] Or Trim$(texto) = [Ô]__/__/__[Ô] Then
texto = [Ô][Ô]
End If

If Mask <> [Ô][Ô] Then
texto = Trim$(Format(texto, Mask))
Else
texto = Trim$(texto)
End If

Tam = Len(Trim$(texto))

If (QtdeEspacos - Tam) < 0 Then
Formata = Left$(texto, QtdeEspacos)
Exit Function
End If

If Direcao <> eCentro Then
Qtde = (QtdeEspacos - Tam)
Else
Qtde = (QtdeEspacos - Tam) / 2
End If

For x = 1 To Qtde
espaco = espaco & TipoEspaco
Next

If Direcao = eDireita Then
Var = texto & espaco
ElseIf Direcao = eEsquerda Then
Var = espaco & texto
ElseIf Direcao = eCentro Then
Var = espaco & texto & espaco
End If

Formata = Var

Exit Function
ERRO:
TrataErro [Ô]Function Formata(ByVal texto As String, ByVal QtdeEspacos As Integer, Optional TipoEspaco As String = Optional Direcao As eDirecao = eDireita, Optional Mask As String) As String[Ô], Principal, [Ô][Ô], , , True
Exit Function
End Function
TUNUSAT 14/10/2015 17:05:42
#452530
Resposta escolhida
JOAOBENEVIDES.

é +/- isso?
       public String Formata(String texto, Int32 QtdeEspacos, string TipoEspaco = [Ô] [Ô], eDirecao Direcao = eDireita, String Mask = [Ô][Ô])
{
long x;
long Tam;
string espaco;
string var;
Int32 Qtde;

try
{
if (texto.Trim() == [Ô]__/__/____[Ô])
{
texto = [Ô][Ô];
}

if (Mask != [Ô][Ô])
{
texto = (string.Format(texto, Mask)).Trim();
}
else
{
texto = texto.Trim();
}

Tam = texto.Trim().Length;

if ((QtdeEspacos - Tam) < 0)
{
return texto.Substring(1, QtdeEspacos);
}

if (Direcao != eCentro)
{
Qtde = (int)(QtdeEspacos - Tam);
}
else
{
Qtde = (int)(QtdeEspacos - Tam) / 2;
}

for (int i = 1; i < Qtde; i++)
{
espaco = espaco + TipoEspaco;
}

if (Direcao == eDireita)
{
var = texto + espaco;
}
else if (Direcao == eEsquerda)
{
var = espaco + texto;
}
else if (Direcao == eEsquerda)
{
var = espaco + texto + espaco;
}

return var;

}
catch (Exception ex)
{
//TrataErro [Ô]Function Formata(ByVal texto As String, ByVal QtdeEspacos As Integer, Optional TipoEspaco As String = Optional Direcao As eDirecao = eDireita, Optional Mask As String) As String[Ô], Principal, [Ô][Ô], , , True
}
finally
{
return var;
}
}


[][ô]s,
Tunusat.
KERPLUNK 14/10/2015 19:02:54
#452546
Sinceramente, se sua intenção é formatar datas, você está fazendo da forma mais difícil possível. Crie um objeto do tipo DateTime e formate os dados dele com o método ToString() ou o método format, passando o formato desejado:

DateTime dt = DateTime.Now; // ou sua data
string s = dt.ToString([Ô]yyyyMMddHHmmss[Ô]);

string s1 = string.Format([Ô]A data e hora é: {0:yyyyMMddHHmmss}[Ô], dt);

string s2 = string.Format([Ô]dd/MM/yyyy[Ô], dt);


Um grande erro de muitos programadores é enxergar dados como string, principalmente datas e horas. Data e hora são formatos de dados específicos e para cálculos o tipo DateTime é excelente. Com ele você pode adicionar e subtrair qualquer partícula de dados, como horas, minutos, segundos, dias, anos, meses e fazer seus cálculos realmente corretos. Convertendo para string, você vai precisar fazer várias [Ô]peripécias[Ô] para poder ter os valores corretos.
Tópico encerrado , respostas não são mais permitidas