2009-07-13 5 views
0

私はこれをpowershellやc#/ vb.netのコマンドラインプログラムでもできるのかどうか疑問に思っています。csvをループする

alt text http://www.kalleload.net/uploads/qubtqmuikowt.jpg

私はチーム表を持っている:

私はこのようになり、データを持っています。次のようになります。

| id |チーム名|チームシップ|

たとえば、C2の値は「Atlanta Braves」です。私はこれを "Atlanta"と "Braves"に分割する必要があります。データは一貫しています。たとえば、 "New York Mets"は実際には "NewYork Mets"です。

私は列CとDを通過し、すべてのチームを挿入する必要があります(dbに重複はありません)。

+0

あなたのコメントに基づいて:それはデータベースかCSVファイルですか?どのように出力を保存するつもりですか? –

答えて

4

1行のPowerShellは、CSVファイルを読み込んで、ホームとアウェイチームのリスト(市の名前とチーム名のプロパティを持つ)ごとにカスタムオブジェクトを作成します。パイプラインの最後のコマンドは重複を排除します。

$TeamsAndCities = import-csv -path c:\mycsvfile.csv | foreach-object { $_.away, $_.home | select-object @{Name='City';Expression={$_.split(' ')[0]}}, @{Name='Team';Expression={$_.split(' ')[1]}} } | select-object -unique 

あなたにもPowerShellのからのデータベースアクセスを行うことができますが、それはあなたがに接続されているデータベースに関するいくつかの詳細と新しい質問に適している可能性があります。

0

IめったにVBA/VBのコードではなく...

Dim rngAwayTeam As Range, rngHomeTeam As Range 
set rngAwayTeam = Worksheets("YourWorksheet").Range("C2") 
set rngHomeTeam = Worksheets("YourWorksheet").Range("D2") 
Dim rowOffset As Integer 
rowOffset = 1 
Do While (rngAwayTeam.Offset(rowOffset,1).Text <> "") 
    'Do something with rngAwayTeam.Offset(rowOffset,1).Text 
    'and rngHomeTeam.Offset(rowOffset,1).Text 
    rowOffset = rowOffset + 1 
Loop 
よう 何か

ここにあり、私は確信している他の方法がありますが、私はどうなるのかです。

+0

これはExcelマクロですか?それは私のデータベースを簡単に更新するデータクラスを使用することができますので、C#を使用する方が良いでしょうか? – masfenix

0

はい、これはExcelマクロです。繰り返しますが、VBAや.Netを使用することはほとんどありません。できるだけあなたを手助けしようとしています。あなたは、物事のデータベース側にC#COMオブジェクトを使用することができます。 (まだ新しい、コメントすることはできません)

0

これはC#のコンソールアプリケーションで非常に簡単に行うことができます。 ファイル内の各行をループし、コンマ(、)で区切って配列に追加するだけです。

次に、配列を使用して値を表示したり、行に特定の値を取得したりできます。

関連する問題