1

こんにちは、私はジュニア レベルの SQL 開発者です。1,100 行の検索結果を含むテキスト ファイルがあり、各行にはファイル パスとそのファイルに関連付けられたストアド プロシージャが含まれています。各行は、次のような構造になっています。

abc\def\ghi\***.cs(40): jkl=******.*****.******, "proc_pqrst", parms);

abc\def\ghi\***.csファイルのファイル パスはどこにありますか***.cs。ストアド プロシージャ名は で始まりますproc_***.csおよび対応するストアド プロシージャ名を抽出し、proc_それらを .xls ファイルに書き込む必要があります。これを行うための解析プログラムを書くのを手伝ってくれる人はいますか? また、c# のコードをどこに記述し、どこでコンパイルする必要があるかについての詳細な概要を入手できますか? C#の知識がないので大変助かります。

ありがとう、BK。

4

4 に答える 4

2

これはばかげているように聞こえるかもしれませんが、未加工の CSV を Excel にインポートしてから、抽出を行うマクロを作成する方が適切かもしれません。C# や Visual Studio などよりも学習曲線が緩やかかもしれません。

于 2010-04-22T21:21:44.033 に答える
1

解析に関しては、次のような正規表現を使用できます。

^(.*?\.cs).*"(proc_[A-Za-z0-9]*?)".*$

(ちなみに、私はそれをテストしていないので、うまくいかないかもしれません)

XLS ファイルへのエクスポート側では、少し難しくなります。Excel がインストールされている Windows ボックスで実行する場合は、COM を使用して Excel に実行させることができると思いますが、それ以外の場合は、次のいずれかを行う必要があります。 1. XLS ファイル形式を実装する(難しい)、2. XLS ファイル形式の実装を購入する (高価)、または 3. OpenOffice の自動化など、別のことをする。

于 2010-04-22T21:24:18.387 に答える
1

(csv だけでなく) xls ファイルがどうしても必要な場合は、FileHelpersライブラリを使用すると、xls ファイルを簡単に作成できます。

FileHelpers は、厳密に型指定されたクラスを取り、それを csv または xls として書き込むか、SQL サーバーに直接接続してそこにレコードを保存することができます。

基本的に、次のようなものがあります。

public class Record {
    public string filename;
    public string storedProc;
}

Robert Harvey のコードまたは正規表現を使用して、パスとプロシージャ名を抽出し、新しい を作成して、Recordそれらを新しいオブジェクトにドロップできます。

Record r = new Record();
r.filename = myString.Substring(0, myString.IndexOf(".cs"),3);       
r.storedProc= myString.Substring(myString.IndexOf("proc_")).Substring(0, temp.IndexOf('\"'));       

その後、 ExcelStorageクラスを使用してファイルを保存できます。

于 2010-04-23T01:16:46.690 に答える
0
// returns abc\def\ghi\something.cs
string path = myString.Substring(0, myString.IndexOf(".cs"),3);

string temp = myString.Substring(myString.IndexOf("proc_"));

// returns proc_pqrst
string proc = temp.Substring(0, temp.IndexOf('\"')));

Excel で読み取り可能なファイルを作成するには、カンマ区切りファイル (CSV) を書き出すだけです。

于 2010-04-22T21:30:45.357 に答える