package com.lin.method;
import java.awt.datatransfer.StringSelection;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestGL10 {
public static void main(String[] args) {
File f2 = new File("file//DrawLogic.java");
File fout = new File("file//fout");
try {
if (!fout.exists())
fout.createNewFile();
if (f2.exists())
readFile(f2, fout, "utf-8");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// public static final int grid_view_brightness = 0x7f08000a;
public static void readFile(File file, File oFile, String charset)
throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(
new FileInputStream(file)));
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(oFile), charset));
String line = "";
Pattern p = Pattern.compile("int (.+) = ([^;]+)");
Pattern p2 = Pattern.compile("[0-9]+[F]?");
Matcher m;
Matcher m2;
while ((line = in.readLine()) != null) {
if (line.contains("gl10")) {
m2 = p2.matcher(line.substring(line.indexOf("gl10")+4));
while (m2.find()) {
String s = m2.group(0);
System.out.println(s+" "+line);
if (s.length()>3&&isNum(s)) {
String result = findInGL10(toHex(Integer.valueOf(s)));
if (result != null)
line=line.replace(s, result);
}
}
}
out.write(line);
out.newLine();
}
in.close();
out.flush();
out.close();
}
public static String findInGL10(String s) {
if (s == null)
return null;
File f = new File("file//gl10");
System.out.println("s===" + s);
String str = null;
try {
BufferedReader in = new BufferedReader(new InputStreamReader(
new FileInputStream(f)));
String line = "";
Pattern p2 = Pattern.compile(".+\\((.+)\\)");
Matcher m;
Matcher m2;
while ((line = in.readLine()) != null) {
if (line.contains(s)) {
System.out.println(line);
str = line
.substring(line.indexOf("GL_"), line.indexOf("="))
.trim();
break;
}
}
in.close();
return "GL10." + str;
} catch (Exception ex) {
ex.printStackTrace();
}
return str;
}
public static boolean isNum(String s) {
if (s == null)
return false;
char[] c1 = s.toCharArray();
for (char c : c1)
if (c < '0' || c > '9')
return false;
return true;
}
public static String toHex(int num) {
String s = Integer.toHexString(num).toUpperCase();
if (s.length() < 4)
s = "0x0" + s;
else
s = "0x" + s;
return s;
}
}
GL10 资源反向
最新推荐文章于 2021-06-26 12:21:47 发布