比如要格式化处理一个文本:
凡是遇到"="则"="两边只能空一隔,比如"a=4"应该格式化为"a = 4";
凡是遇到"for...next"或者"if ...else if...else if...else...end if"则要依次缩进.
这些如何实现啊?
有哪位高手给点提示啊
急的没办法
我现在把文件按照二进制读出来放进了一个二进制数组,具体怎样操作这个数组啊?
Open SourceFileName For Binary Access Read As #1
Get #1, 1, DSX() 'DSX()是一个二进制数组
凡是遇到"="则"="两边只能空一隔,比如"a=4"应该格式化为"a = 4";
凡是遇到"for...next"或者"if ...else if...else if...else...end if"则要依次缩进.
这些如何实现啊?
有哪位高手给点提示啊
急的没办法
我现在把文件按照二进制读出来放进了一个二进制数组,具体怎样操作这个数组啊?
Open SourceFileName For Binary Access Read As #1
Get #1, 1, DSX() 'DSX()是一个二进制数组
strTemp=replace(strTemp,"="," = ")
还有凡是遇到"for...next"或者"if ...else if...else if...else...end if"则要依次缩进,这个怎么实现?谁可以帮助一下小弟啊?
我要做的是一个辅助开发工具,目的就是把写好的JAVA代码(*.java)按照编写规范重新格式划一遍.如果能用word实现,要我何用?
郁闷ing
我是用java解决的,因为它的正则表达式很容易用来格式化文本,下面是我写的格式化文本的一个类:
(看来什么都要靠自己,论坛上是没有真正的高手的)
/*
*lcl'class
*2004-6-24
*/
import java.io.*;
import java.util.regex.*;
class Replace{
private String filename;
private String regexstring;
private String replacestring;
public Replace(){
filename="";
regexstring="";
replacestring="";
}
public void setFilename(String fname){
filename = fname;
}
public void setReg(String regstring){
regexstring = regstring;
}
public void setReplace(String rstring){
replacestring = rstring;
}
public String getFilename(){
return filename;
}
public String getRex(){
return regexstring;
}
public String getReplace(){
return replacestring;
}
public String readF(String fname){
try{
filename=fname;
File file = new File(filename);
Reader rdr = new FileReader( file );
long sz = file.length();
char[] ch = new char[(int)sz];
rdr.read(ch);
rdr.close();
return new String(ch);
}
catch(IOException e){
return null;
}
}
public String replace(String from,String rstring){
StringBuffer sb =new StringBuffer();
String patternString = regexstring;
Pattern pattern = null;
String input = from; try{
pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(input);
while(matcher.find()){
// int start = matcher.start();
// int end = matcher.end();
// String match = input.substring(start,end);
// System.out.println(match+start+","+end);
matcher.appendReplacement(sb,rstring); }
matcher.appendTail(sb);
return sb.toString();
}catch(PatternSyntaxException e){
return null;
}
}
public String[] trim(String s){
Pattern p = Pattern.compile("[\\n]+");
String[] result = p.split(s);
return result;
}
public int[] indent(String[] s){
int[] myindent= new int[s.length];
int ind=0;
for(int i=0;i<s.length;i++){
myindent[i]=ind;
for(int j=0;j<s[i].length();j++){
if(s[i].charAt(j)=='{'){
ind++;
}
if(s[i].charAt(j)=='}'){
ind--;
myindent[i]=ind;
}
} }
return myindent;
}
}下面是调用它用来格式化文本的java:
import java.util.regex.*;
import javax.swing.*;
public class Myreplace{
public static void main(String[] args){
Replace re=new Replace();
String fcontent= re.readF("e:\\readjava.java");
System.out.print(fcontent);
re.setReg("\\s*=\\s*");
String s = re.replace(fcontent,"=");
System.out.println("---------------"); String[] result=re.trim(s);
for (int i=0; i<result.length; i++)
result[i]=result[i].trim();
System.out.println("---------------");
int[] tt=new int[result.length];
tt=re.indent(result);
for(int i=0;i<tt.length;i++){
for(int j=0;j<tt[i];j++){
result[i]=" "+result[i];
}
System.out.println(result[i]);
}
} }