Tabular El contenido de una variable string

Estoy haciendo un programa en .net, que me va recoger unos datos de una base de datos los meto en una array, luego los meto en una variable string, y esa variable va a ser el cuerpo de un mail que voy a mandar desde el programa. Bien para saltar de linea uo el environment. Newline, pero para tabular los datos y sepáralos en columnas no se que usar. No se si me explicado correctamente. Meto el código por si aclara más:
Dim Lista As New ArrayList
Dim texto As String
Dim i As Integer
Dim j As Integer
Dim direccion As String
Dim fecha As String
lector = com.ExecuteReader
Lista.Clear()
i = 0
Do While lector.Read
direccion = lector.Item "SenderAddress")
fecha = direccion & lector.Item("_DateTime")
Lista.Insert(i, fecha)
i = i + 1
Loop
For j = 0 To i - 1
texto = texto & Lista.Item(j) & Environment.NewLine
next

1 respuesta

Respuesta
1
Para tabular los datos puedes utilizar vbTab y para saltar de linea también puedes utilizar vbNewLine o la que ya utilizas Environment. NewLine
Salud.
Hola Mackmig; Muchas gracias, ya solo tengo un problema, que me lo deja todo descolocao, ¿no sabrás alguna forma de ponerlo todo colocadito?
[email protected] 05/07/2007 15:07:38
[email protected] 05/07/2007 15:13:39
[email protected] 05/07/2007 15:29:39
[email protected] 05/07/2007 15:37:22
[email protected] 05/07/2007 15:41:42
[email protected] 05/07/2007 15:18:45
Como vas a mostrar esos datos o mejor dicho donde vas a mostrar esos datos en que tipo de componente
Hola;
Se van a ver en un cliente de correo POP3 (microsoft outlook Xp, 2003,2007)
Uso lo siguiente :
Const ConfigNamespace As String = "http://schemas.microsoft.com/cdo/configuration/"
Dim oMsg As New System.Web.Mail.MailMessage
Dim Flds As System.Collections.IDictionary
Flds = oMsg.Fields
With Flds
.Add(ConfigNamespace & "smtpserver", "smtp.nombredominio.com")
.Add(ConfigNamespace & "smtpserverport", 25)
.Add(ConfigNamespace & "sendusing", 2)
.Add(ConfigNamespace & "sendusername", "smtpNombre")
.Add(ConfigNamespace & "sendpassword", "******")
.Add(ConfigNamespace & "smtpauthenticate", 1)
End With
With oMsg
.From = "[email protected]"
.To = "[email protected]"
.Subject = "Mails Bloqueados"
.Body = texto
End With
System.Web.Mail.SmtpMail.Send(oMsg)
No se si con esto que te indico me puedes ayudar, es que soy bastante novato y no estoy hecho ni a la terminología.
Muchas gracias, y espero no ser muy pesado.
Pregunta todo lo que quieras sin problema.
En que parte del mensaje quieres que aparezca tabulado en el body.
Hola;
Si, uso lo de vbtab, que tu me indicaste, pero como las direcciones de correo son de diferentes tamaños, no se coloca todo en columnas, yo creía que usando el tabulador se iba a poner todo ordenadito en columnas.
Igual no hay más remedio que medir las cadenas de caracteres y según ello pues darle una distancia u otra, pero es muy complicado.
Gracias
Lo que puedes intentar hacer es lo siguiente ver cual de las cadenas de correo es la más larga, y te haces un bucle para que vaya me tienedo espacios hasta que quede igual que la de mayor tamaño así con todas, cuando termines tabulas con todas y se queda tabulado.
Ej:
Dim ListaA as new ArrayList
ListaA. Add("a")
ListaA. Add("asdf")
ListaA. Add("aadff")
ListaA. Add("qwergg")
Dim mas_grande as Integer =0
for i as integer = 0 to ListaA.count - 1
if(ListaA(i).ToString.Length > mas_grande) then
mas_grande = ListaA(i).ToString.Length
end if
next
for i as integer =0 to ListaA.count -1
while(ListaA(i).ToString.Length <> mas_grande)
ListaA(i) = ListaA(i) & " "
end while
next
Luego tabulas y listo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas