2012-03-27 13 views
2

私は、テキストファイルを生成するいくつかのデータがあります。ファイルに出力されるテキストを整列させますか?列

データはすべて正しくプルされますが、正しくフォーマットされません。

現在、私はTAB + Variableを各列間のスペースに使用していますが、異なる変数が文字の長さが異なるため、明らかに不均一になります。ここではレイアウトは次のとおりです。

RECORD  NAME  ADDRESS  TELEPHONE  SOMETHING   SOMETHING 

... Data is here. 

任意のアイデア?

+0

最終的に使用されるテキストファイルは何ですか?それが機械可読でなければならない場合は、代わりにCSV(カンマ区切りの値)ファイルを作成してください。 –

+0

作成されたデータにDTSパッケージを使用するという贅沢をお持ちの場合、特にDBからデータを直接引き出す場合は、それを使用します。さもなければ、私はスティーブが以下に述べたことをするでしょう。 – em3ricasforsale

+0

私はSteveの答えが好きなので、私はそれと競争するつもりはありませんが、 'String.PadRight'メソッドと' String.PadLeft'メソッドについて知っておくと便利です。 –

答えて

10

String.Formatはあなたの友人です。
これは非常に強力で、出力を調整する機能を提供します。例えば

: (EDIT:混乱する可能性があるため、今はフォーマットされるデータを文字列VARSに含まれていると仮定する、TXTプレフィックスを除去)

Dim result as string 
result = String.Format("{0,-10}{1,-30}{2,-30}{3,-10}{4,20}", Record, Name, Address, Telephone, Something) 

結果は左に整列しますそれは他の有用なオプションを取得するためにcomposite formattingで十分見ていないなら残りのためのように最初の要素(txtRecord)とのための10のスペースの列、最後の要素は

を整列20スペース、右側に列にフォーマットされます

+0

これは方法のようですが、argsが何をしているのか説明できますか? 0、-10?それは言葉を広めるための何らかの種類の方法ですか? -10文字か..ですか? – JonE

+0

これはSteveがリンクしている記事で説明されています。 –

+1

10は列サイズの文字数、符号 - (マイナス)は対応する引数を列の左側に揃えます。したがって、最初のプレースホルダ{0、-10}は次のようになります。最初の引数(Record var)を10文字幅のカラムの内側の0の位置に挿入し、それを左に揃えます。 – Steve

関連する問題