私は現在、Whatsapp でのグループ チャットの使用状況を分析する小さなツールに取り組んでいます。
私はwhatsappログファイルでそれを実現しようとしています. .txt
フォーマットされたテキストを操作するために、生を次のフォーマットにフォーマットすることができました。
29. Jan. 12:01 - Random Name: message text
29. Jan. 12:22 - Random Name: message text
29. Jan. 12:24 - Random Name: message text
29. Jan. 12:38 - Random Name: message text
29. Jan. 12:52 - Random Name: message text
ここまでは順調ですね。問題は、次のようなフロッピー行がいくつかあることです。
29. Jan. 08:42 - Random Name2: message text 1
additional text of the message 1
29. Jan. 08:43 - Random Name2: message text 2
さらに悪いことに:
15. Jan. 14:00 - Random Name: First part of the message
second part
third part
forth part
fifth part
29. Jan. 08:43 - Random Name2: message text 2
この問題を解決するにはある種のアルゴリズムが必要だと思いますが、私はプログラミングが初めてで、そのような複雑なアルゴリズムを作成することはできません。
Python での同じ問題: whatsApp 会話ログを解析する
[編集]
これは動作しない私のコードです。(かなり悪いのは承知しています)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FormatList {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
FileReader fr = new FileReader("Whatsapp_formated.txt");
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter("Whatsapp_formated2.txt");
BufferedWriter ausgabe = new BufferedWriter(fw);
String line="";
String buffer="";
while((line = br.readLine())!=null)
{
System.out.println("\n"+line);
if(line.isEmpty())
{
}
else{
if(line.charAt(0)=='0'||line.charAt(0)=='1'||line.charAt(0)=='2'||line.charAt(0)=='3'||line.charAt(0)=='4'||line.charAt(0)=='5'||line.charAt(0)=='6'||line.charAt(0)=='7'||line.charAt(0)=='8'||line.charAt(0)=='9')
{
buffer = line;
}
else
{
buffer += line;
}
ausgabe.write(buffer);
ausgabe.newLine();
System.out.println(buffer);
}
ausgabe.close();
}
}
}
[編集2]
最後に、ファイルを読み込んで各行を分析したい:
29. Jan. 12:01 - Random Name: message text
いつ、誰が、何を、どれだけ書いたかがわかります。
次の行を取得した場合:
additional text of the message 1
いつ書かれたのか、誰が送ったのかわかりません