4

ドキュメントで VB6String.Formatのアナログ for 関数と呼ばれる関数があります。互換性のために提供され、基本的に と同じ機能を持つ名前空間の関数Formatもあります。FormatVisualBasicString.Format

確かに、これらの 2 つの形式は日付と数値です。

しかし、VB6 の関数は文字列をフォーマットすることもできました。

? format$("hi there", ">")
HI THERE
? format$("hI tHeRe", "<")
hi there
? format$("hi there", ">!@@@... not @@@@@")
HI ... not THERE

String.Format私に関する限り、それはできませんし、新しいFormat. また、VB6 機能の特定の部分が失われているという互換性ドキュメントの言及も見つかりませんでしたFormat。この機能は「黙って」廃止されたようです。

このタイプのフォーマットを実行できるフレームワークはありますか?

4

5 に答える 5

5

検討すべきもう 1 つの解決策は、Microsoft.VisualBasic.Compatibility.VB6 名前空間を使用することです。この名前空間には、Visual Basic 6 と下位互換性があるクラスとメソッドがいくつか含まれています。移行ツールを購入するか、自分でコードを記述してください。

MSDN ドキュメント: Support.Format メソッド (Microsoft.VisualBasic.Compatibility.VB6)

パラメーターは変更されず、基本的に、少なくとも例を考えると同じ機能をサポートします。

Imports Microsoft.VisualBasic.Compatibility.VB6

Console.WriteLine("HI THERE ")
Console.WriteLine(Support.Format("hi there", ">"))

Console.WriteLine("hi there ")
Console.WriteLine(Support.Format("hI tHeRe", "<"))

Console.WriteLine("HI ... not THERE")
Console.WriteLine(Support.Format("hi there", ">!@@@... not @@@@@"))
于 2010-02-02T21:15:47.417 に答える
2

このMSDNページは、サポートがVB6からVB.NETに削除されたことを確認しているようです。自分で実装するか、インターネットでサードパーティのコードを探すか、(できれば)使用するコードを書き直してString.Formatください 。ToUpperToLower

最後の例は次のようになります。

myString = String.Format("{0,-3}... not {1,-5}", "hi".ToUpper(), "there".ToUpper())

フォーマット文字列による大文字と小文字をサポートするために独自の実装を行うこともできますが、それを実行IFormatProviderする価値があるかどうかはわかりません。

于 2010-01-22T09:58:02.677 に答える
1

VB 6の関数に可能な限り近いはずの名前空間の関数Formatであるため、そのような文字列フォーマットを探す可能性があります。VisualBasicFormat

このString.Formatメソッドは、言語固有の継承から独立して開発されています。VB 6 (または他の言語) から継承する機能は、その有用性などに基づいており、下位互換性はありません。

于 2010-01-22T09:39:56.900 に答える
1

VBMigration.com には、VB6 を VB.Net に移行するための商用ソリューションがあります。彼らの Web サイトには、VB6と VB.Net のバージョン間の動作のさまざまな違いが記載されています。これには、この質問のものも含まれます。Format

VB Migration Partner ツールを購入すると、VB6 の動作をエミュレートするランタイム ライブラリ関数を使用するようにVB6Formatコードが移行されます。私は彼らのツールを使ったことはありませんが、素晴らしい音です。コードがたくさんある場合は、かなりのお金を節約できると思います。Format6Format

于 2010-01-22T12:27:41.590 に答える
-1

使えるか

Dim value As Double

value = 1.2
TextBox1.Text = (value.ToString("0.00",System.Globalization.CultureInfo.InvariantCulture))

詳細 http://msdn.microsoft.com/en-us/library/0c899ak8.aspx#Y3200

于 2011-04-05T13:31:26.587 に答える