Version_2.0_Preview
parent
3d865af692
commit
29889ddfbe
Binary file not shown.
@ -1,216 +0,0 @@ |
||||
// main.c
|
||||
// Jedi Academy Server Log Converter - Version 1.1
|
||||
//
|
||||
// Created By Steven Mattera on August 30th 2010.
|
||||
// Copyright (c) 2010 Steven Mattera <stevenmattera@gmail.com>
|
||||
//
|
||||
// Jedi Academy Server Log Converter is free software; you can
|
||||
// redistribute it and/or modify it under the terms of the GNU General
|
||||
// Public License as published by the Free Software Foundation; either
|
||||
// version 2 of the License, or (at your option) any later version.
|
||||
//
|
||||
// Jedi Academy Server Log Converter is distributed in the hope that it
|
||||
// will be useful, but WITHOUT ANY WARRENTY; without even the implied
|
||||
// warrenty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more deails.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Jedi Academy Server Log Converter; if not, write to the Free
|
||||
// Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
|
||||
// USA
|
||||
//
|
||||
|
||||
#include <stdio.h> |
||||
#include <stdlib.h> |
||||
#include <string.h> |
||||
#include <limits.h> |
||||
#include <unistd.h> |
||||
|
||||
FILE * openLogFile(char *path); |
||||
FILE * openConvFile(char *argv[]); |
||||
|
||||
int main(int argc, char *argv[]) { |
||||
FILE * logFile; |
||||
FILE * convFile; |
||||
|
||||
printf("Jedi Academy Server Log Converter\n"); |
||||
printf("Copyright (c) 2010 Steven Mattera <stevenmattera@gmail.com>\n\n"); |
||||
printf("Jedi Academy Server Log Converter is free software; you can redistribute it\n"); |
||||
printf("and/or modify it under the terms of the GNU General Public License as published\n"); |
||||
printf("by the Free Software Foundation; either version 2 of the License, or (at your\n"); |
||||
printf("option) any later version.\n\n"); |
||||
printf("Jedi Academy Server Log Converter is distributed in the hope that it will be\n"); |
||||
printf("useful, but WITHOUT ANY WARRENTY; without even the implied warrenty of \n"); |
||||
printf("MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public\n"); |
||||
printf("License for more deails.\n\n"); |
||||
printf("You should have received a copy of the GNU General Public License along with\n"); |
||||
printf("Jedi Academy Server Log Converter; if not, write to the Free Software\n"); |
||||
printf("Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\n\n"); |
||||
|
||||
if(argc != 2) { |
||||
printf("Usage: JALOG_CONV.EXE <PATH_TO_LOG>\n"); |
||||
system("pause"); |
||||
|
||||
return -1; |
||||
} |
||||
|
||||
logFile = openLogFile(argv[1]); |
||||
if (logFile == NULL) return -1; |
||||
|
||||
convFile = openConvFile(argv); |
||||
if (convFile == NULL) return -1; |
||||
|
||||
fputs("<html><head><style>body{background-color:gray}b{font-weight:normal}.r{color:red}.g{color:green}.y{color:yellow}.b{color:blue}.c{color:cyan}.m{color:magenta}.w{color:white}.l{color:black}</style></head><body><span class='w'>", convFile); |
||||
|
||||
char * line; |
||||
char * lineProcessing; |
||||
char * convLine; |
||||
size_t currentPosition; |
||||
int color = 7; |
||||
|
||||
while(!feof(logFile)) { |
||||
line = (char *)malloc(sizeof(char)*512); |
||||
memset(line, '\0', sizeof(char)*512); |
||||
|
||||
fgets(line, 512, logFile); |
||||
if(color != 7) { |
||||
fputs("</b><b class=w>", convFile); |
||||
color = 7; |
||||
} |
||||
|
||||
int n; |
||||
for (n = 0; n < strlen(line); n++) { |
||||
if(line[n] == '^') { |
||||
switch (atoi(&line[n+1])) { |
||||
case 1: |
||||
if(color != 1) { |
||||
color = 1; |
||||
fputs("</b><b class='r'>", convFile); |
||||
} |
||||
break; |
||||
case 2: |
||||
if(color != 2) { |
||||
color = 2; |
||||
fputs("</b><b class='g'>", convFile); |
||||
} |
||||
break; |
||||
case 3: |
||||
if(color != 3) { |
||||
color = 3; |
||||
fputs("</b><b class=y'>", convFile); |
||||
} |
||||
break; |
||||
case 4: |
||||
if(color != 4) { |
||||
color = 4; |
||||
fputs("</b><b class='b'>", convFile); |
||||
} |
||||
break; |
||||
case 5: |
||||
if(color != 5) { |
||||
color = 5; |
||||
fputs("</b><b class='c'>", convFile); |
||||
} |
||||
break; |
||||
case 6: |
||||
if(color != 6) { |
||||
color = 6; |
||||
fputs("</b><b class='m'>", convFile); |
||||
} |
||||
break; |
||||
case 7: |
||||
if(color != 7) { |
||||
color = 7; |
||||
fputs("</b><b class='w'>", convFile); |
||||
} |
||||
break; |
||||
case 0: |
||||
if(color != 8) { |
||||
color = 8; |
||||
fputs("</b><b class='l'>", convFile); |
||||
} |
||||
break; |
||||
default: |
||||
fputc('^', convFile); |
||||
fputc(line[n+1], convFile); |
||||
break; |
||||
} |
||||
n++; |
||||
} |
||||
else if (line[n] == ':' && color != 7) { |
||||
fputs("</b><b class='w'>", convFile); |
||||
fputc(':', convFile); |
||||
} |
||||
else if (line[n] == '\\' && color != 7) { |
||||
fputs("</b><b class='w'>", convFile); |
||||
fputc('\\', convFile); |
||||
} |
||||
else if (line[n] == ' ' && line[n+1] == 'k' && line[n+2] == 'i' && line[n+3] == 'l' && line[n+4] == 'l' && line[n+5] == 'e' && line[n+6] == 'd' && line[n+7] == ' ' && color != 7) { |
||||
fputs("</b><b class='w'>", convFile); |
||||
fputc(' ', convFile); |
||||
} |
||||
else if (line[n] == ' ' && line[n+1] == 'b' && line[n+2] == 'y' && line[n+3] == ' ' && color != 7) { |
||||
fputs("</b><b class='w'>", convFile); |
||||
fputc(' ', convFile); |
||||
} |
||||
else if (line[n] == '<') { |
||||
fputs("<", convFile); |
||||
} |
||||
else if (line[n] == '>') { |
||||
fputs(">", convFile); |
||||
} |
||||
else if (line[n] == '&') { |
||||
fputs("&", convFile); |
||||
} |
||||
else if (line[n] != '\n' || line[n] != '\r') { |
||||
fputc(line[n], convFile); |
||||
} |
||||
} |
||||
|
||||
fputs("<br>", convFile); |
||||
|
||||
free(line); |
||||
} |
||||
|
||||
fputs("</body></html>", convFile); |
||||
|
||||
fclose(convFile); |
||||
fclose(logFile); |
||||
|
||||
return 0; |
||||
} |
||||
|
||||
FILE * openLogFile(char *path) { |
||||
FILE * logFile = fopen(path, "r"); |
||||
|
||||
if(logFile == NULL) { |
||||
printf("Error: Opening reading stream.\n\n"); |
||||
system("pause"); |
||||
|
||||
return NULL; |
||||
}
|
||||
|
||||
return logFile; |
||||
} |
||||
|
||||
FILE * openConvFile(char *argv[]) { |
||||
char abs_exe_path[MAX_PATH]; |
||||
|
||||
char * pch = strrchr(argv[0],'\\'); |
||||
strncpy(abs_exe_path, argv[0], pch-argv[0]+1); |
||||
free(pch); |
||||
|
||||
char convPath[PATH_MAX]; |
||||
sprintf(convPath, "%sJALOG_CONV.HTML", abs_exe_path); |
||||
FILE * convFile = fopen(convPath, "w+"); |
||||
|
||||
|
||||
if(convFile == NULL) { |
||||
printf("Error: Opening writing stream.\n\n"); |
||||
system("pause"); |
||||
|
||||
return NULL; |
||||
} |
||||
|
||||
return convFile; |
||||
} |
@ -0,0 +1,140 @@ |
||||
#include <windows.h> |
||||
#include "resource.h" |
||||
|
||||
enum { |
||||
ID_LOADEDIT = 1, |
||||
ID_LOADBUTTON, |
||||
ID_SAVEEDIT, |
||||
ID_SAVEBUTTON, |
||||
ID_CONVERTBUTTON |
||||
}; |
||||
|
||||
const char g_szClassName[] = "defaultWindow"; |
||||
|
||||
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); |
||||
int WINAPI showError(LPCTSTR lpText); |
||||
|
||||
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { |
||||
WNDCLASSEX wc; |
||||
MSG Msg; |
||||
HWND hwnd; |
||||
|
||||
wc.cbSize = sizeof(WNDCLASSEX); |
||||
wc.style = 0; |
||||
wc.lpfnWndProc = WndProc; |
||||
wc.cbClsExtra = 0; |
||||
wc.cbWndExtra = 0; |
||||
wc.hInstance = hInstance; |
||||
wc.hIcon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_MYICON)); |
||||
wc.hCursor = LoadCursor(NULL, IDC_ARROW); |
||||
wc.hbrBackground = GetSysColorBrush(COLOR_3DFACE); |
||||
wc.lpszMenuName = NULL; |
||||
wc.lpszClassName = g_szClassName; |
||||
wc.hIconSm = (HICON)LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_MYICON), IMAGE_ICON, 16, 16, 0); |
||||
|
||||
if (!RegisterClassEx(&wc)) { |
||||
showError("Window Registration Failed!"); |
||||
return 0; |
||||
} |
||||
|
||||
hwnd = CreateWindowEx(0, g_szClassName, "Jedi Academy Server Log Converter", WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_MINIMIZEBOX , (GetSystemMetrics(SM_CXSCREEN) - 500)/2, (GetSystemMetrics(SM_CYSCREEN) - 72)/2, 500, 100, NULL, NULL, hInstance, NULL); |
||||
|
||||
if (hwnd == NULL) { |
||||
showError("Window Creation Failed!"); |
||||
return 0; |
||||
} |
||||
|
||||
ShowWindow(hwnd, nCmdShow); |
||||
UpdateWindow(hwnd); |
||||
|
||||
while(GetMessage(&Msg, NULL, 0, 0) > 0) { |
||||
TranslateMessage(&Msg); |
||||
DispatchMessage(&Msg); |
||||
} |
||||
|
||||
return Msg.wParam; |
||||
} |
||||
|
||||
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { |
||||
char szFileName[MAX_PATH] = ""; |
||||
OPENFILENAME ofn; |
||||
|
||||
switch(msg) { |
||||
case WM_CREATE: |
||||
HFONT hfDefault; |
||||
HWND hLoadEdit; |
||||
HWND hLoadButton; |
||||
HWND hSaveEdit; |
||||
HWND hSaveButton; |
||||
HWND hConvertButton; |
||||
|
||||
hLoadEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD|WS_VISIBLE|ES_AUTOHSCROLL, 10, 10, 300, 21, hwnd, (HMENU)ID_LOADEDIT, GetModuleHandle(NULL), NULL); |
||||
hLoadButton = CreateWindowEx(0, "BUTTON", "Input", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 320, 10, 70, 21, hwnd, (HMENU)ID_LOADBUTTON, GetModuleHandle(NULL), NULL); |
||||
hSaveEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "", WS_CHILD|WS_VISIBLE|ES_AUTOHSCROLL, 10, 41, 300, 21, hwnd, (HMENU)ID_SAVEEDIT, GetModuleHandle(NULL), NULL); |
||||
hSaveButton = CreateWindowEx(0, "BUTTON", "Output", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 320, 41, 70, 21, hwnd, (HMENU)ID_SAVEBUTTON, GetModuleHandle(NULL), NULL); |
||||
hConvertButton = CreateWindowEx(0, "BUTTON", "Convert", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 400, 10, 80, 52, hwnd, (HMENU)ID_CONVERTBUTTON, GetModuleHandle(NULL), NULL); |
||||
|
||||
hfDefault = (HFONT)GetStockObject(DEFAULT_GUI_FONT); |
||||
SendMessage(hLoadEdit, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0)); |
||||
SendMessage(hLoadButton, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0)); |
||||
SendMessage(hSaveEdit, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0)); |
||||
SendMessage(hSaveButton, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0)); |
||||
SendMessage(hConvertButton, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0)); |
||||
break; |
||||
case WM_CLOSE: |
||||
DestroyWindow(hwnd); |
||||
break; |
||||
case WM_DESTROY: |
||||
PostQuitMessage(0); |
||||
break; |
||||
case WM_COMMAND: |
||||
|
||||
|
||||
switch(wParam) { |
||||
case ID_LOADBUTTON: |
||||
ZeroMemory(&ofn, sizeof(ofn)); |
||||
|
||||
ofn.lStructSize = sizeof(ofn); |
||||
ofn.hwndOwner = hwnd; |
||||
ofn.lpstrFilter = "Log Files (*.log)\0*.log\0Log Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0"; |
||||
ofn.lpstrFile = szFileName; |
||||
ofn.nMaxFile = MAX_PATH; |
||||
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; |
||||
ofn.lpstrDefExt = "log"; |
||||
|
||||
if(GetOpenFileName(&ofn)) { |
||||
HWND hLoadEdit = GetDlgItem(hwnd, ID_LOADEDIT); |
||||
SetWindowText(hLoadEdit, szFileName); |
||||
} |
||||
break; |
||||
case ID_SAVEBUTTON: |
||||
ZeroMemory(&ofn, sizeof(ofn)); |
||||
|
||||
ofn.lStructSize = sizeof(ofn); |
||||
ofn.hwndOwner = hwnd; |
||||
ofn.lpstrFilter = "HTML Files (*.html)\0*.html\0RTF Files (*.rtf)\0*.rtf\0Text Files (*.txt)\0*.txt\0"; |
||||
ofn.lpstrFile = szFileName; |
||||
ofn.nMaxFile = MAX_PATH; |
||||
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; |
||||
ofn.lpstrDefExt = "html"; |
||||
|
||||
if(GetSaveFileName(&ofn)) { |
||||
HWND hSaveEdit = GetDlgItem(hwnd, ID_SAVEEDIT); |
||||
SetWindowText(hSaveEdit, szFileName); |
||||
} |
||||
break; |
||||
case ID_CONVERTBUTTON: |
||||
showError("Conversion starts here."); |
||||
break; |
||||
} |
||||
break; |
||||
default: |
||||
return DefWindowProc(hwnd, msg, wParam, lParam); |
||||
} |
||||
|
||||
return 0; |
||||
} |
||||
|
||||
int WINAPI showError(LPCTSTR lpText) { |
||||
return MessageBox(NULL, lpText, "Error", MB_ICONEXCLAMATION|MB_OK);
|
||||
} |
@ -0,0 +1 @@ |
||||
#define IDI_MYICON 101 |
@ -0,0 +1,3 @@ |
||||
#include "resource.h" |
||||
|
||||
IDI_MYICON ICON "JALOG_CONV.ico" |
Loading…
Reference in new issue