Добавить алгоритм пространства HTML - PullRequest
1 голос
/ 27 июня 2009

Этот вопрос повторяет Горизонтальный интервал в таблице HTML

У нас есть старая кодовая база и мы не можем использовать css. Когда весь столбец в таблице пуст, результирующая таблица очень уродливая. У нас есть текстовое почтовое решение, которое добавляет пробелы в конце слова до оставшегося набора символов, который вы указываете с помощью New String. Так как New String принимает только символ, он видел, какой 1 вкладыш, небольшое количество примеров кода, которые могут придумать люди.

Мы используем .net 3.5sp1

Public Function StringSize(ByVal data As String, ByVal size As Short, ByVal usehtml As Boolean) As String
    If data.Length > size Then
        Return Left(data, size - 4) & "... "
    Else
        If usehtml Then
            'small algorithm here ( & nbsp ; )
        Else
            Return data & New String(" ", size - Len(data))
        End If
    End If
End Function

Ответы [ 2 ]

1 голос
/ 27 июня 2009

Если вы действительно хотите добавить  , тогда - ну, честно говоря - я не уверен, что это отличная идея, но что-то вроде (извините за C # ):

int count = size - data.Length;
StringBuilder sb = new StringBuilder(
    data, data.Length + (6 * count));
for(int i = 0 ; i < count ; i++) {
    sb.Append("&nbsp;");
}
string s = sb.ToString();

Ниже приведен плохой способ сделать это в одну строку с LINQ; включено только для интереса:

string s = data + string.Concat(Enumerable.Repeat("&nbsp;", size - data.Length).ToArray());
1 голос
/ 27 июня 2009

Лучший вариант - использовать цикл StringBuilder и цикл For.

Dim builder As New System.Text.StringBuilder()
For i = 1 To size - Len(data)
    ' Be sure to take out the space in the nbsp, Stack Overflow doesn't like it for some reason.
    builder.Append("& nbsp;")
Next
Return builder.ToString()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...