0

cardmeを使用して1つのファイルから複数のvcardを読み取る方法はありますか?ここに示されている例によると、それは不可能のようです。

4

3 に答える 3

2

これを行うための組み込みメソッドはありません。ファイルを1行ずつ繰り返すことができます。END:VCARDその後、このメソッドVCardEngine.parse(String)を使用して、各VCardを1つずつ読み取ります。

このようなものが機能する可能性があります:

BufferedReader buffer = new BufferedReader(new FileReader("allcards.txt"));

VCardEngine engine = new VCardEngine();
StringBuilder builder = new StringBuilder();
List<VCard> vcards = new ArrayList<VCard>();

String line;
while ((line = buffer.readLine()) != null) {
    builder.append(line);

    if (line.contains("END:VCARD")) {
        VCard vcard = engine.parse(builder.toString());
        vcards.add(vcard);
        builder = new StringBuilder();
    }
}
于 2012-04-08T19:08:44.340 に答える
2

メソッドparseMultiple()がこの投稿よりも新しいかどうかはわかりませんが、これは私が使用しているバージョン(v0.3.3)で実際に可能です。

これは、Files配列を反復処理するメソッドです。この場合、各ファイルには複数のvcardが含まれている可能性があり、読み取られたすべてのVCardがリストに追加されます。

public List<VCard> importVCards() {
    List<VCard> vcards = new ArrayList<VCard>();
    vcardFiles = getFiles();        
    for(int i = 0; i < vcardFiles.length; i++){
        try {               
            vcards.addAll(vcardEngine.parseMultiple(vcardFiles[i]));
        }
        catch(IOException ioe) {
            System.err.println("Could not read vcard file:
                "+vcardFiles[i].getAbsolutePath());
            ioe.printStackTrace();
        }
    }

    return vcards;
} 

cardmeはここで見つけることができます:https ://github.com/george-haddad/cardme

于 2012-06-26T07:29:03.667 に答える
0

1つのファイルからの複数のvcardの解析をサポートするCardmeバージョン0.3.3がリリースされました。ここからダウンロードできますhttp://sourceforge.net/projects/cardme/files/Cardme/Card%20Me%20Version%200.3.3/

于 2012-05-10T15:19:17.167 に答える