Por favor ayudarme Iceman

jorge
07 de Agosto del 2002
Hola buenas que tal va todo, yo aqui con un lio de la ostia, porque no se ni como hacer esto, espero que tu puedas ayudarme.Te cuento un poquillo haber si sabes.
Mi aplicacion consta de un formulario y tiene 3 campos que son los principales. Tengo que conseguir que la aplicacion guarde el tercer campo(el llamado causa) como una ruta completa.Hasta ahora se esta guardando solo la ultima palabra de una ruta como campo definitorio por ejemplo yo introduzco /usr/saux/loquesea y solo se guarda "loquesea" sin la ruta completa y se ha de poner toda la ruta con los backSlash.Me han dicho que las barras van a dar problemas.
Creo que la solucion es hacer un metodo o una clase integrado en la clase Generator.java que lea,identifique y codifique los "slash" que componen la causa y lo transforman en algun codigo de uso no comun.Puede ser el 666.cunado lea tres 6 seguidos lo interpretara como un slash.
Eso es todo que no es poco, espero que me puedas ayudar por favor, te lo agradezo muchisimo.
Te envio el codigo de la clase generator.java y el formulario con 3 campos.
Saludos y muchas gracias por todo.

FORMULARIO
-----------------
<html>
<head>
<%@ page language="java" %>
<%@ page import="Fecha " %>
<% String fecha=Fecha.calcularFecha();%>

<title>Creacion de formularios</title>
<SCRIPT LANGUAGE="JavaScript" SRC="validaciones.js"></SCRIPT>
</head>
<form name="creadorForm" method="Get" action="<%=application.getInitParameter("xmlcreadorForm")%>" >

<table>
<tbody>
<tr>
<td>Clase</td>
<!-- <td><input type="text" name="eventotxt" ONKEYPRESS='if ((event.keyCode ==92) || (event.keyCode == 47)) event.returnValue = false;'></td>-->
<td><input type="text" name="eventotxt"></td>
</tr>
<tr>
<td>Origen</td>
<!--<td><input type="text" name="subsourcetxt" ONKEYPRESS='if ((event.keyCode ==92) || (event.keyCode == 47)) event.returnValue = false;'> </td>-->
<td><input type="text" name="subsourcetxt"></td>
</tr>
<tr>
<td>Causa</td>
<!--<td><input type="text" name="probeargtxt" ONKEYPRESS='if ((event.keyCode ==92) || (event.keyCode == 47)) event.returnValue = false;'><br></td>-->
<td><input type="text" name="probeargtxt"></td>
</tr>
</tbody>
</table>

GENERATOR.JAVA
------------------------


import java.io.*;
import java.util.Properties;


public class Generator {


// ruta completa al fichero plantilla
// p. ej. "c:/patricia/plantillas/plantilla.html"
private String templateFile = null;
// aqui se guarda el contenido del fichero plantilla
private String templateText = null;
// aqui se guarda el contenido del fichero plantilla una vez modificado
private String modifyedTemplateText = null;
// directorio donde se dejaran las paginas personalizadas
// p. ej. "c:/resin-2.1.0/doc"
private String destinationDirectory = null;

// en esta variable se guarda el contenido del fichero de datos
private String data = null;

// este objeto guarda toda la informacion sobre la pagina a construir
private Pagina page= null;

// en el constructor se pasa la plantilla a cargar y el directorio destino de las
// paginas personalizadas
public Generator(String templateFile, String destinationDirectory, Pagina p) {
this.templateFile = templateFile;
this.destinationDirectory = destinationDirectory;
this.page = p;
}


// carga en memoria el contenido del fichero plantilla para pagina final
public void loadTemplate() throws FileNotFoundException, IOException {
BufferedReader br = null;
br = new BufferedReader(new FileReader(templateFile));
String inLine = "";
templateText = "";
while(inLine!=null) {
templateText = templateText + inLine;
inLine = br.readLine();
}
br.close();
}



public void translateTemplate() {
translateTemplate(true);
}

// modifica el texto de la plantilla por el personalizado
public void translateTemplate(boolean salidaHtml) {

modifyedTemplateText = replace(templateText,"%%%SUB_SOURCE%%%",page.getSubSource());
// etc//////////////////////////////////////////////////////////////////////////////
modifyedTemplateText = replace(modifyedTemplateText, "%%%EVENTO%%%",page.getEvent());
modifyedTemplateText = replace(modifyedTemplateText, "%%%PROBE_ARG%%%",page.getProbeArg());
modifyedTemplateText = replace(modifyedTemplateText, "%%%DESCR%%%",page.getDescription());
modifyedTemplateText = replace(modifyedTemplateText, "%%%MINOR%%%",page.getMinor());
modifyedTemplateText = replace(modifyedTemplateText, "%%%CRITICAL%%%",page.getCritical());
modifyedTemplateText = replace(modifyedTemplateText, "%%%HARMLESS%%%",page.getHarmless());
//modifyedTemplateText = replace(modifyedTemplateText, "%%%AUTOMATICA_1%%%",page.getAccionAut());
//modifyedTemplateText = replace(modifyedTemplateText, "%%%CONDICION_1%%%",page.getCondition());

modifyedTemplateText = replace(modifyedTemplateText, "%%%FECHA%%%",page.getDate());
modifyedTemplateText = replace(modifyedTemplateText, "%%%MODIFICACION%%%",page.getModificator());
String info = page.getInfo();
if(info!=null) {
modifyedTemplateText = replace(modifyedTemplateText, "%%%INFOPERADORES%%%",info);
} else {
modifyedTemplateText = replace(modifyedTemplateText, "%%%INFOPERADORES%%%","");
}

///////////////////////////////////////////////////////////////////////////////////
///// SI LAS 3 LISTAS VAN A SALIR COMO HTML
if (salidaHtml)
{

String acc = "<ul>";
for (int i=0; i< page.getNumAccionesOp(); i++ )
{
acc = acc +"<li>" + page.getAccionOp(i) +"</li>";
}
acc = acc + "</ul>";
modifyedTemplateText = replace(modifyedTemplateText,"%%%OPERATOR%%%",acc);

acc = "<ul>";
for (int i=0; i< page.getNumCondition(); i++ )
{
acc = acc +"<li>" + page.getCondition(i) +"</li>";
}
acc = acc + "</ul>";
modifyedTemplateText = replace(modifyedTemplateText,"%%%CONDICION_1%%%",acc);

acc = "<ul>";
for (int i=0; i< page.getNumAccionesAut(); i++ )
{
acc = acc +"<li>" + page.getAccionAut(i) +"</li>";
}
acc = acc + "</ul>";
modifyedTemplateText = replace(modifyedTemplateText,"%%%AUTOMATICA_1%%%",acc);
} else {
///// SI LAS 3 LISTAS VAN A SALIR EN UN TEXT AREA
String acc = "";
for (int i=0; i< page.getNumAccionesOp(); i++ )
{
acc = acc +"" + page.getAccionOp(i) +"n";
}
acc = acc + "";
modifyedTemplateText = replace(modifyedTemplateText,"%%%OPERATOR%%%",acc);

acc = "";
for (int i=0; i< page.getNumCondition(); i++ )
{
acc = acc +"" + page.getCondition(i) +"n";
}
acc = acc + "";
modifyedTemplateText = replace(modifyedTemplateText,"%%%CONDICION_1%%%",acc);

acc = "";
for (int i=0; i< page.getNumAccionesAut(); i++ )
{
acc = acc +"" + page.getAccionAut(i) +"n";
}
acc = acc + "";
modifyedTemplateText = replace(modifyedTemplateText,"%%%AUTOMATICA_1%%%",acc);
}




}

public String getTranslatedTemplate() {
return modifyedTemplateText;
}


// escribe en un fichero (si no existe lo crea) el texto personalizado
public void writeFile() throws IOException {
String miEvento=page.getEvent();
String miProbearg=page.getProbeArg();
String miSubSource=page.getSubSource();
BufferedWriter bw = null;
PrintWriter pw = null;

// crear el directorio destino si no existe
//File aux = new File(destinationDirectory+page.getDirDestino());
//aux.mkdirs();



// File destinationFile = new File(destinationDirectory+page.getDirDestino()+"\index.html");
//File destinationFile = new File(destinationDirectory+page.getDirDestino()+ File.separator + miEvento+"."+miProbearg+"."+ miSubSource +".html");
//File destinationFile = new File(destinationDirectory+ File.separator + miEvento+"."+miProbearg+"."+ miSubSource +".html");
File destinationFile = new File(destinationDirectory + page.getNameDestino() + ".html");

destinationFile.createNewFile();
bw = new BufferedWriter(new FileWriter(destinationFile));
pw = new PrintWriter(bw);
// escribimos en el fichero destino
pw.println(modifyedTemplateText);
pw.flush();
pw.close();
}


// modifica en la cadena target todas las ocurrencias de la subcadena from por to
private String replace(String target, String from, String to) {
if ((target == null) ||
(from == null))
return target;

if (to == null)
to = "";

String cab,cola;
int lenF = from.length();
int lenT = to.length();
int i = (-lenT);
while (true) {
i = target.indexOf(from, i+lenT);
if (i == -1)
return target;
cab = target.substring(0,i);
cola = target.substring(i+lenF,target.length());
target = cab + to + cola;
}
}
/////////////////////////////////////
/////////////////////////////////////
/////////////////////////////////////

public void generateDataFile() {
data = "";
data = data + "event="+page.getEvent()+"n";
data = data + "sub_source="+page.getSubSource()+"n";
data = data + "probe_arg="+page.getProbeArg()+"n";
data = data + "description="+page.getDescription()+"n";
data = data + "minor="+page.getMinor()+"n";
data = data + "critical="+page.getCritical()+"n";
data = data + "harmless="+page.getHarmless()+"n";
data = data + "fecha="+page.getDate()+"n";
data = data + "modificacion="+page.getModificator()+"n";
for(int i=0; i< page.getNumAccionesOp();i++) {
data = data + "actions_op_"+i+"="+page.getAccionOp(i)+"n";
}
for(int i=0; i< page.getNumCondition();i++) {
data = data + "conditions_"+i+"="+page.getCondition(i)+"n";
}
for(int i=0; i< page.getNumAccionesAut();i++) {
data = data + "actions_aut_"+i+"="+page.getAccionAut(i)+"n";
}
String info = page.getInfo();
if (info!=null)
{
data = data + "operator_info="+info+"n";
} else {
data = data + "operator_info=n";
}

}


public void writeDataFile() throws IOException {
String miEvento=page.getEvent();
String miProbearg=page.getProbeArg();
String miSubSource=page.getSubSource();
BufferedWriter bw = null;
PrintWriter pw = null;
// crear el directorio destino si no existe

//File aux = new File(destinationDirectory+page.getDirDestino());
//aux.mkdirs();
// crear el fichero destino
// System.out.println("El diretctorio destino es "+destinationDirectory+page.getDirDestino());

//File destinationFile = new File(destinationDirectory+page.getDirDestino()+miEvento+"."+miProbearg+"."+ miSubSource +".txt");
//File destinationFile = new File(destinationDirectory+miEvento+"."+miProbearg+"."+ miSubSource +".txt");
File destinationFile = new File(destinationDirectory + page.getNameDestino() + ".txt");
//Ojo la linea de abajo la modifiqué el 5-6-02 por la de encima de esta linea
//File destinationFile = new File(destinationDirectory+page.getDirDestino()+File.separator+"data.txt");

destinationFile.createNewFile();
bw = new BufferedWriter(new FileWriter(destinationFile));
pw = new PrintWriter(bw);
// escribimos en el fichero destino
pw.println(data);
pw.flush();
pw.close();
}

public Pagina loadDataFile(String event, String subSource, String probeArg) throws IOException, NullPointerException {
// InputStream is = getClass().getResourceAsStream(File.separator+subSource+File.separator+event+File.separator+probeArg+File.separator+"data.txt");
//InputStream is = getClass().getResourceAsStream(File.separator+event+File.separator+subSource+File.separator+probeArg+File.separator+"data.txt");
InputStream is = getClass().getResourceAsStream(Pagina.getNameDestino(event,probeArg,subSource)+ ".txt");
System.out.println("busca:"+Pagina.getNameDestino(event,probeArg,subSource)+ ".txt");
Properties info = new Properties();
info.load(is);

String a = info.getProperty("minor");

Pagina p = new Pagina();
p.setEvent(info.getProperty("event"));
p.setProbeArg(info.getProperty("probe_arg"));
p.setSubSource(info.getProperty("sub_source"));
p.setDescription(info.getProperty("description"));
p.setMinor(info.getProperty("minor"));
p.setCritical(info.getProperty("critical"));
p.setHarmless(info.getProperty("harmless"));
p.setDate(info.getProperty("fecha"));
p.setModificator(info.getProperty("modificacion"));

String lista = "";
String s = "";
int i = 0;
s = info.getProperty("actions_op_0");
while(s!=null){
lista = lista + s + "n";
i++;
s = info.getProperty("actions_op_"+i);
}
p.setAccionesOp(lista);

lista = "";
s = "";
i = 0;
s = info.getProperty("actions_aut_0");
while(s!=null){
lista = lista + s + "n";
i++;
s = info.getProperty("actions_aut_"+i);
}
p.setAccionesAut(lista);

lista = "";
s = "";
i = 0;
s = info.getProperty("conditions_0");
while(s!=null){
lista = lista + s + "n";
i++;
s = info.getProperty("conditions_"+i);
}
p.setCondition(lista);


String in = info.getProperty("operator_info");
if (in!=null)
{
p.setInfo(in);
} else {
p.setInfo("");
}
return p;
}


}