2009-06-26 6 views
1

この質問は、HTML table horizontal spacinghtmlスペースアルゴリズムを追加する

の行に沿っています。私たちは古いコードベースを持っており、CSSを使用することはできません。テーブルの列全体が空の場合、結果のテーブルは非常に醜いです。新しい文字列を使用して指定した残りの文字セットまでの単語をスペースに追加するテキストメールソリューションがあります。新しい文字列はcharを取るだけなので、何が1つのライナーか、少数のコード例が人々が思い付くことを見ていました。

私たちはあなたの最良のオプションは、ループのためのStringBuilderとAを使用することです.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 
+1

あなたは、.NET 3.5 SP1を使用できますが、CSSは使用できません。 – Kredns

答えて

1

あなたは本当に、その後、 でパッドにしたい場合は - まあ、率直に言って - 私はそれは素晴らしいアイディアだわからないんだけど、のようなもの(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で1行にする方法です。興味のあるもののみ含まれています:

string s = data + string.Concat(Enumerable.Repeat("&nbsp;", size - data.Length).ToArray()); 
+2

私はdownvoteがC#を使っていると仮定しています。翻訳はVBに精通している人にとっては絶対に些細なことです...私は、VBでの答えはほとんどの "C#"質問には問題ないと主張します。そして、C#での答えはほとんどの "VB"質問に対してうまくいきます。質問は実際には言語ではなくフレームワークに関するものです。明らかに*言語*の詳細については重要です。しかし、これは言語の問題ではありません。 –

+0

Freaky!フォーマット時に が消えます... –

1

を使用しています。

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() 
関連する問題