using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Text.RegularExpressions;
//Tool by zokker13
//Thx to Liontiger
namespace Autoreplay
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Variablen und Ordnerdurchsuchung wird deklariert
string sOn = "Autoreplay = ON!";
string sOff = "Autoreplay = OFF!";
string sEndung;
string strFile;
Regex alphabet = new Regex("[a-zA-Z]");
string sSP1 ;
string sSP2 ;
string strRaceSP1;
string strRaceSP2;
string strkurzSP1;
string strkurzSP2;
int i;
int iyea, imon, iday, istd, imin, isec, imil;
System.Windows.Forms.FolderBrowserDialog objDialog = new FolderBrowserDialog();
System.Windows.Forms.FolderBrowserDialog objDialog2 = new FolderBrowserDialog();
private void cmdStart_Click(object sender, EventArgs e)
{
//Dieser Part macht den Timer an/aus.
if (tmrTimer.Enabled == false)
{
tmrTimer.Enabled = true;
}
else if (tmrTimer.Enabled == true)
{
tmrTimer.Enabled = false;
cmdStart.Text = sOff;
}
}
private void Form1_Load(object sender, EventArgs e)
{
//Wenn die Form 'hochfährt', wird eine Textdatei gelesen
if (File.Exists(@"C:\Autoreplaytoolfile.txt"))
{
string[] sfile = File.ReadAllLines(@"C:\Autoreplaytoolfile.txt");
for (int i = 0; i < sfile.Length; i++)
{
objDialog2.SelectedPath = sfile[0];
objDialog.SelectedPath = sfile[1];
}
}
else
{
//Quellordner
objDialog.Description = "Search for your Unsaved Replay folder!";
objDialog.SelectedPath = @"C:\";
DialogResult objResult = objDialog.ShowDialog(this);
//Zielordner
objDialog2.Description = "Create your Replayfolder";
objDialog2.SelectedPath = @"C:\";
DialogResult objResult2 = objDialog2.ShowDialog(this);
}
}
public void tmrTimer_Tick(object sender, EventArgs e)
{
//Uhrzeitdeklaration
DateTime dtUhr = DateTime.Now;
//Variablen für die jeweilige Zeit
iyea = dtUhr.Year;
imon = dtUhr.Month;
iday = dtUhr.Day;
istd = dtUhr.Hour;
imin = dtUhr.Minute;
isec = dtUhr.Second;
imil = dtUhr.Millisecond;
//Es wird geprüft, ob es bereits einen Pfad gibt oder nicht
if (objDialog.SelectedPath != "" && objDialog.SelectedPath != @"C:\" && objDialog2.SelectedPath != "" && objDialog2.SelectedPath != @"C:\")
{
//Wenn es einen Pfad gibt, wird eine Textdatei
//erstellt, die die Pfadinformation beinhaltet
StreamWriter sw = File.CreateText(@"C:\Autoreplaytoolfile.txt");
sw.WriteLine(objDialog2.SelectedPath.ToString());
sw.WriteLine(objDialog.SelectedPath.ToString());
sw.Close();
cmdStart.Text = sOn; //<=Der Buttontext
//Hier werden die Replays an sich (.SC2Replay) gesammelt und bekommen
//Ihren eigenen Array
string[] sReps = Directory.GetFiles(objDialog.SelectedPath);
for (i = 0; i < sReps.Length; i++)
{
sEndung = Path.GetExtension(sReps[i]);
strFile = Path.GetFileNameWithoutExtension(sReps[i]);
string[] sfile = File.ReadAllLines(sReps[i]);
for (int i0 = 0; i0 < sfile.Length; i0++)
{
//Die 2 steht für die Zeile zwei, in der
//Zeile 2 steht der Accountname des
//Spieler_1
if (i0 == 2)
{
string szwiSP1 = sfile[2];
//27: Erster Buchstabe des Spieler_1 Accountname
//39: Max. letzter Buchstabe des Spieler_1 Accountname
for (int i2 = 27; i2 <= 39; i2++)
{
//Spieler_1 Accountname
if (alphabet.IsMatch(szwiSP1[i2].ToString()))
{
//Schreibt die werte in ein Label bzw. eine string rein.
sSP1 = sSP1 + szwiSP1[i2].ToString();
}
// MessageBox.Show(i2.ToString() + ": " + szwi[i2].ToString());
}
//56: Erster Buchstabe der Race
//62: Max. letzter Buchstabe der Race.
for (int i3 = 56; i3 <= 63; i3++)
{
strkurzSP1 = szwiSP1[57].ToString();
//Spieler_1 Race
if (alphabet.IsMatch(szwiSP1[i3].ToString()))
{
//Schreibt die werte in ein Label bzw. eine string rein.
strRaceSP1 = strRaceSP1 + szwiSP1[i3].ToString();
}
}
}
if (i0 == 3)
{
string szwiSP2 = sfile[3];
//27: Erster Buchstabe des Spieler_2 Accountname
//39: Max. letzter Buchstabe des Spieler_2 Accountname
for (int i2 = 17; i2 <= 29; i2++)
{
//Spieler_1 Accountname
if (alphabet.IsMatch(szwiSP2[i2].ToString()))
{
//Schreibt die werte in ein Label bzw. eine string rein.
sSP2 = sSP2 + szwiSP2[i2].ToString();
}
// MessageBox.Show(i2.ToString() + ": " + szwi[i2].ToString());
}
//56: Erster Buchstabe der Race
//62: Max. letzter Buchstabe der Race.
for (int i3 = 46; i3 <= 53; i3++)
{
strkurzSP2 = szwiSP2[47].ToString();
//Spieler_1 Race
if (alphabet.IsMatch(szwiSP2[i3].ToString()))
{
//Schreibt die werte in ein Label bzw. eine string rein.
strRaceSP2 = strRaceSP2 + szwiSP2[i3].ToString();
}
}
}
}
if (sEndung == ".SC2Replay" || sEndung == ".sc2replay")
{
File.Move(sReps[i], objDialog2.SelectedPath + "\\" + sSP1 + "(" + strkurzSP1 + ")" + " vs " + sSP2 + "(" + strkurzSP2 + ")" + sEndung);
}
}
}
//Wenn es keine Pfadinformation gibt, wird der User gedrängt,
//einen Pfand auszuwählen, der Knopftext wird defeiert und
//der Timer ausgestellt sowie eine Messagebox angezeigt
else
{
tmrTimer.Enabled = false;
cmdStart.Text = sOff;
MessageBox.Show("Wähle dein Ziel- und Quell-ordner aus!");
}
}
private void txtPath_TextChanged(object sender, EventArgs e)
{
}
//Menüauswahl - Hier werden die Sachen im oberen menü ausgeführt
private void exitToolStripMenuItem1_Click(object sender, EventArgs e)
{
this.Close();
}
private void creditsToolStripMenuItem1_Click(object sender, EventArgs e)
{
MessageBox.Show("All credits belong to zokker13",
"It's one of his first Projects!");
}
private void quellordnerToolStripMenuItem_Click(object sender, EventArgs e)
{
objDialog.Description = "Search for your Unsaved Replay folder!";
objDialog.SelectedPath = @"C:\";
DialogResult objResult = objDialog.ShowDialog(this);
}
private void zielordnerToolStripMenuItem_Click(object sender, EventArgs e)
{
objDialog2.Description = "Create your Autoreplayfolder";
objDialog2.SelectedPath = @"C:\";
DialogResult objResult2 = objDialog2.ShowDialog(this);
}
private void comingToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Ich plane noch die Replays \n" +
"so zu parsen, dass ich \n" +
"die Namen, Rasse und Farben \n" +
"auslesen kann!!", "Das kommt noch!");
}
private void startSCIIToolStripMenuItem_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start(@"C:\Program Files (x86)\StarCraft II\StarCraft II.exe");
}
private void lstBox_SelectedIndexChanged(object sender, EventArgs e)
{
}
}
}