LA CLASE AYUDANTE - REQManipulation.java
Por la funcionalidad provista en Java versión 1.1, necesitamos proveer la función para decodificar y codificar URLENCODED/URLDECODED, esto no es necesario para las versiones posteriores, pero como en mi sitio web, dispongo del Java 1.1, necesito esta compatibilidad. GnuPernico está diagramado para ser compatible hasta Java 1.3, no fue probado con Java 1.4 aún pero seguro es compatible. Por lo tanto esta clase provee esos métodos para codificar y decodificar. Además, provee una interface amistosa para dividir largas cadenas de texto en trozos (como StringTokenizer) pero recibiendo como parámetro el trozo de texto separador actual y no el futuro como lo hace la clase Java StringTokenizer. Dicha función es REQ("separador") Separador desaparece, la función devuelve el texto hasta separador y queda remanente el resto de la cadena en el objeto REQManipulation para poder seguir procesándolo. Se disponen de métodos como setText() y getText() para resetear y extraer texto. |
public class REQManipulation{
public String Text = "";
//Constructor
public REQManipulation(String ContenidoInicial){
Text = ContenidoInicial;
}
public void setText(String DATA){Text=DATA; return ;}
public String getText(){return new String(Text);}
//Función REQ
public String REQ(String W){
int posicion;
String TMP;
posicion = Text.indexOf(W);
if (W == "") {return "";}
if (Text.equals("")){return "";}
if (posicion == -1){
TMP = new String(Text); Text = ""; return TMP;
}
TMP = Text.substring(0, posicion);
Text = Text.substring(posicion+W.length(),Text.length());
//System.out.println("REQ:"+TMP+":"+Text);
return TMP;
}
//Función UrlFromFile
public String urlFromFile(String Slash){
int posicion;
posicion = Text.lastIndexOf(Slash);
if (posicion == -1){return "";}
return Text.substring(0,posicion + 1);
}
public String urlFromFile(){
return urlFromFile(System.getProperty("file.separator"));
}
//Función FileFromUrl
public String fileFromUrl(String Slash){
int posicion;
posicion = Text.lastIndexOf(Slash);
if (posicion == -1){return "";}
return Text.substring(posicion + 1,Text.length());
}
public String fileFromUrl(){
return fileFromUrl(System.getProperty("file.separator"));}
//Método REP
public void REP(String ToFind, String ToReplace){
int posicion;
posicion = Text.indexOf(ToFind);
if (posicion == -1){return ;}
Text = Text.substring(0,posicion)+ToReplace+Text.substring(posicion+ToFind.length(),Text.length());
}
public void repall(String ToFind, String ToReplace){
REQManipulation tmp=new REQManipulation(Text);
Text="";
while(tmp.Text.indexOf(ToFind) !=-1){Text=Text+tmp.REQ(ToFind)+ToReplace;}
Text=Text+tmp.Text;
}//end rep
//Método pathValidate
//public void pathValidate(){Path_Validate();}
public void pathValidate(String Slash){
int posicion;
posicion = Text.lastIndexOf(Slash);
if (posicion != Text.length()-1){Text = Text+Slash;}
return ;
}
public void pathValidate(){pathValidate(System.getProperty("file.separator"));}//end pathValidate
//Convierte Slashes a Linux
public void toLinux(){
while(Text.indexOf("\\") != -1){REP("\\","/");}
return ;
}
//Convierte Slashes a Windows
public void toWin(){
while(Text.indexOf("/") != -1){REP("/","\\");}
return ;
}
public void toSys(){
repall("/",System.getProperty("file.separator"));
repall("\\",System.getProperty("file.separator"));
}
//Tipo de archivo según su extensión
public String typeOfFile(){
String TMP = Text;
//String ANS = "";
TMP = TMP.toLowerCase();
if (TMP.lastIndexOf(".gif")!=-1){return "PICTURE";}else
if (TMP.lastIndexOf(".bmp")!=-1){return "PICTURE";}else
if (TMP.lastIndexOf(".jpg")!=-1){return "PICTURE";}else
if (TMP.lastIndexOf(".jpeg")!=-1){return "PICTURE";}else
if (TMP.lastIndexOf(".ico")!=-1){return "ICON";}else
if (TMP.lastIndexOf(".pcx")!=-1){return "PICTURE";}else
if (TMP.lastIndexOf(".wav")!=-1){return "SOUND";}else
if (TMP.lastIndexOf(".mid")!=-1){return "SOUND";}else
if (TMP.lastIndexOf(".mp3")!=-1){return "SOUND";}else
if (TMP.lastIndexOf(".avi")!=-1){return "VIDEO";}else
if (TMP.lastIndexOf(".mpg")!=-1){return "VIDEO";}else
if (TMP.lastIndexOf(".mpeg")!=-1){return "VIDEO";}else
if (TMP.lastIndexOf(".txt")!=-1){return "TEXT";}else
if (TMP.lastIndexOf(".ini")!=-1){return "TEXT";}else
if (TMP.lastIndexOf(".doc")!=-1){return "WORD";}else
if (TMP.lastIndexOf(".xls")!=-1){return "EXEL";}else
if (TMP.lastIndexOf(".ppt")!=-1){return "POWERPOINT";}else
if (TMP.lastIndexOf(".rtf")!=-1){return "RICH";}else
if (TMP.lastIndexOf(".htm")!=-1){return "HTML";}else
if (TMP.lastIndexOf(".html")!=-1){return "HTML";}else
if (TMP.lastIndexOf(".wrl")!=-1){return "VRML";} //else
return "UNKNOW";
}//End typeOfFile
public boolean onlyNum(){
boolean fail=true;
String temp = new String("0123456789.-");
for (int i=0;i<Text.length();i++){
if (temp.indexOf(Text.substring(i,i+1))==-1){fail=false; break;}
}//End For
if (Text.trim().equals("-") || Text.trim().equals("--") || Text.trim().equals("---")){fail = false;}
return fail;
}//End OnlyTExt
public String toString(){return Text;}//End toString
public void invCase(){
String temp = new String(Text.toUpperCase());
String TMP = new String("");
String result = new String("");
for (int i=0;i<Text.length();i++){
TMP=temp.substring(i,i+1);
if (TMP.equals(Text.substring(i,i+1))){
TMP = TMP.toLowerCase();
}else{TMP = TMP.toUpperCase();}//End IF
result=result+TMP;
}//End For
Text = result;
}//End InvCase
public void neg(){//Invierte cadenas Perro, orreP
String temp = new String("");
for (int i=Text.length();i>0;i--){/*System.out.println("REQ:"+i+":"+Text.length());*/temp=temp+Text.substring(i-1,i);}//End For
Text = temp;
}//End neg
public void multiply(String By){
String Temp = new String("");
for (int i=0;i<Text.length();i++){
Temp=Temp+By+Text.substring(i,i+1);
}//End for
Text = Temp;
}//End Multiply
public void toTitleCase(){
REQManipulation A=new REQManipulation(Text);
String TMP="";
String HEAD="";
String TAIL="";
String STORE="";
while (A.Text.length()>0){
TMP=A.REQ(" ");
if (TMP.length()>0){
HEAD=TMP.substring(0,1);HEAD=HEAD.toUpperCase();
if (TMP.length()>1) TAIL=TMP.substring(1,TMP.length()); else TAIL="";
TAIL=TAIL.toLowerCase();
}else{TAIL="";HEAD="";
}//End if
if (A.Text.length()>0) STORE=STORE+HEAD+TAIL+" "; else STORE=STORE+HEAD+TAIL;
}//End While
if (Text.length()!=STORE.length()) Text=STORE+" "; else Text=STORE;
}//End toTitleCase
public int countString(String ToFind){
int counter=0;
int pointer=0;
int maxpointer=Text.length();
int actualpointer=0;
while (pointer<maxpointer){
if ((actualpointer=Text.indexOf(ToFind, pointer))!=-1){
counter++;
pointer=actualpointer+ToFind.length();
}//end if
else {pointer=maxpointer;}
}//end while
return counter;
}//End CountString
public void urlEncode(){
REQManipulation Helper=new REQManipulation(Text);
Helper.repall("+","%2B");
Helper.repall("á","%E1");
Helper.repall("é","%E9");
Helper.repall("í","%ED");
Helper.repall("ó","%F3");
Helper.repall("ú","%FA");
Helper.repall("Á","%C1");
Helper.repall("É","%C9");
Helper.repall("Í","%CD");
Helper.repall("Ó","%D3");
Helper.repall("Ú","%DA");
Helper.repall("ñ","%F1");
Helper.repall("Ñ","%D1");
Helper.repall("ç","%E7");
Helper.repall("Ç","%C7");
Helper.repall("\"","%22");
Helper.repall(":","%3A");
Helper.repall(";","%3B");
Helper.repall(" ","+");
Helper.repall("$","%24");
Text=Helper.getText();
}
public void urlDecode(){
REQManipulation Helper=new REQManipulation(Text);
Helper.repall("+"," ");
Helper.repall("%2B","+");
Helper.repall("%E1","á");
Helper.repall("%E9","é");
Helper.repall("%ED","í");
Helper.repall("%F3","ó");
Helper.repall("%FA","ú");
Helper.repall("%C1","Á");
Helper.repall("%C9","É");
Helper.repall("%CD","Í");
Helper.repall("%D3","Ó");
Helper.repall("%DA","Ú");
Helper.repall("%F1","ñ");
Helper.repall("%D1","Ñ");
Helper.repall("%E7","ç");
Helper.repall("%C7","Ç");
Helper.repall("%22","\"");
Helper.repall("%3A",":");
Helper.repall("%3B",";");
Helper.repall("%24","$");
Text=Helper.getText();
}
} //end of class
|Contrate Nuestra asesoría, instalación y cursos en Sistemas Linux, Redes, etc. Acerca de este sitio web Webmaster | Volver Al Inicio | Compunauta Micro Linux (uLinux) El servidor en CD, sin innstalación. |