区切り文字列の構文解析?[定休日]
-
08-06-2019 - |
質問
れないので解析では、区切り文字列、ものを
a、b、c
しかし、これは非常に簡単な例と解析を行区切りデータで複雑;のためのインスタンス
1は、単純なアルゴリズム、失敗した"True
うブローおnaiive文字列になります。分割する実装ですね。がありますか自由に使用することができます/steal/コピー&ペーストするには、比較的防弾解析の区切りのテキストを使うことができます。.ネplox.
更新: したいと思っていたの TextFieldParser, はVB.NET's杭索できる隠れてMicrosoft.VisualBasic.DLL.
解決
その結果が、先ほど任天堂さんからの読み込みファイル
string filename = @textBox1.Text;
string[] fields;
string[] delimiter = new string[] {"|"};
using (Microsoft.VisualBasic.FileIO.TextFieldParser parser =
new Microsoft.VisualBasic.FileIO.TextFieldParser(filename)) {
parser.Delimiters = delimiter;
parser.HasFieldsEnclosedInQuotes = false;
while (!parser.EndOfData) {
fields = parser.ReadFields();
//Do what you need
}
}
思いここに変換することができますことをパーサによる文字列である。
他のヒント
非常にcomplrehesive図書館で、できるだけ早く送ってくださ FileHelpers
私はよく知らないの枠組みが簡単なマシン製作所
- 状態1:を受けにくくなる。charまでに発しなければなりません。a"または、
- の場合は":移動状態2
- 場合には、:移動状態3
- の場合のファイルの終わり:移動状態4
- 状態2:を受けにくくなる。charまでございますのでご注意下、"
- の場合は":移動状態1
- の場合は、ファイルの終わり:のいずれかに移動状態を4または信号エラーが無しの文字列
- 状態3:追加の現在のバッファの出力配列の移動にカーソルを前の後ろに戻りの状態1.
- 状態4:この状態では何も行いません以外の出力配列の型になります。
など
var elements = new List<string>();
var current = new StringBuilder();
var p = 0;
while (p < internalLine.Length) {
if (internalLine[p] == '"') {
p++;
while (internalLine[p] != '"') {
current.Append(internalLine[p]);
p++;
}
// Skip past last ',
p += 2;
}
else {
while ((p < internalLine.Length) && (internalLine[p] != ',')) {
current.Append(internalLine[p]);
p++;
}
// Skip past ,
p++;
}
elements.Add(current.ToString());
current.Length = 0;
}
あ回答はこちら 分割文字列を無視して引用部分
い箇所はあなたの質問にも的確など どのコードスニペットや図書館利用できるCSVデータを解析します。当期純?).
な恥知らずのプラグできないかなぁ、とおもって、図書館といいながら、 fotelo (フォーマットされたテキストローダーするものなのかどうかに関して素早く整えるために使用しますの解析に大量のテキストベースの区切り文字、位置、またはregex.ク文字列では失わせないアイテムはシンプルだが、作業ログを大量にするだけで作られています。でoff制御ファイルのモデルと同様SQL*ローダー(のようなインスピレーションを背後ます。
しようと考えている汎用の枠組みを指定する必要があっ1.その区切り文字です。2.条件とは何なの文字をカウントしません(時間見積もり).
と思うのですから、よく文書のカスタムロジック毎に時間が必要のようです。
も簡単な方法で分割の文字列をchar配列、おstring determiners分割文字に置き換わります。
で比較的容易なユニットテストです。
ごで拡張手法と類似の基本となります。流出方法。