0

Window 7 の SORT コマンドを使用して .csv ファイルをソートしています。結果を別の csv ファイルに出力すると、コマンドは正常に動作しますが、インプレース ソートを行う必要があります。

コードは以下です。

System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo= new System.Diagnostics.ProcessStartInfo();
        startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
        startInfo.FileName = "cmd.exe";
        startInfo.Arguments = "/C sort C:\\Users\\fFayyaz\\Desktop\\12.csv > C:\\Users\\fFayyaz\\Desktop\\12.csv";

        process.StartInfo = startInfo;
        process.Start();

上記のコードは、ソース ファイル全体を空にします。/C sort filename を実行すると、ファイルはソートされません。ただし、ソースと宛先が異なる場合、上記のコードは完全に機能します。誰かがインプレースソートを手伝ってくれますか?

4

2 に答える 2

0

ここから得られる結論は、Windows のソートでは不可能だということです。しかし、意図的に一時ファイルを使用することを考えると、そうです。明確にするために: sort /? 出力ファイルを指定する /O オプションを明らかにします - 入力と同じものを使用するだけで、インプレースソートが得られます。

于 2013-02-27T20:05:15.730 に答える
0

その場での並べ替えはできません。ファイルの名前を変更して一時ファイルをソートし、コマンドを起動して名前を変更したファイルを古いファイル名に変換することで、効果をシミュレートできます。dome トランザクション性を追加してエラーがないかどうかを確認し、古いファイルを元の名前でコピーして戻します。

注:コマンドが出力ファイルに書き込む前に出力ファイルをクリアし、出力ファイルと入力ファイルが同じであるため、データが失われるため、インプレースソートを実行できず、ソースファイルは空です

于 2012-07-31T16:22:25.767 に答える