Cargando

Ir a contenido

X

Textarea





19 Respuestas de expertos

  AUTOR PREGUNTA

Publicado 30 marzo 2014 - 17:52
Buenas tardes,

Siguiendo de este post:
- http://www.solvetic....entras-escribo/
os formulo más cuestiones:
1) Exportar: Copiar el contenido del textarea y meterlo en 1 fichero TXT (realmente la extensión será otra, pero texto plano también) y preguntar si reemplazar contenido en caso de dar un nombre ya existente.
2) Importar: Copiar el contenido de 1 fichero TXT al textarea.

Creo que del textarea ya no tengo más dudas (si aparecen más ya las iré poniendo ;-)). Gracias también anticipadas,


PepBR
  • ¿Tienes la misma pregunta? Yo también
  • Volver arriba


Publicado 31 marzo 2014 - 00:14
Para exportar debes usar la clase JFileChooser, te dejo un pequeño ejemplo para que luego lo adaptes a tu programa:

String Texto = "El texto que proviene del textarea";
try{
//System.getProperty("user.dir") Abre el JFileChooser donde esta el ejecutable
   JFileChooser fc=new JFileChooser(System.getProperty("user.directorio"));
  fc.showSaveDialog(this); //Muestra el diálogo
  File Guardar =fc.getSelectedFile();
  if(Guardar !=null){
    FileWriter  Guardx=new FileWriter(Guardar);
    Guardx.write(Texto);
    Guardx.close(); //Cierra el fichero
   }
}
catch(IOException ioe){
System.out.println(ioe); //Muestra por consola los errores
}


Publicado 31 marzo 2014 - 00:18
Y para importar es un poco más laborioso pero asumiendo que estás trabajando con swing debería ser algo como lo siguiente:

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.text.*;

class CargarTextArea
{
    public static void main(String a[])
    {
	    final JTextArea edit = new JTextArea(30, 60);
	    edit.setText("uno\ndos\ntres");
	    edit.append("\ncuatro\ncinco");
	    JButton read = new JButton("Read CargarTextArea.txt");
	    read.addActionListener( new ActionListener()
	    {
		    public void actionPerformed(ActionEvent e)
		    {
			    try
			    {
				    FileReader reader = new FileReader( "CargarTextArea.txt" );
				    BufferedReader br = new BufferedReader(reader);
				    edit.read( br, null );
				    br.close();
				    edit.requestFocus();
			    }
			    catch(Exception e2) { System.out.println(e2); }
		    }
	    });
	    JButton write = new JButton("Write CargarTextArea.txt");
	    write.addActionListener( new ActionListener()
	    {
		    public void actionPerformed(ActionEvent e)
		    {
			    try
			    {
				    FileWriter writer = new FileWriter( "CargarTextArea.txt" );
				    BufferedWriter bw = new BufferedWriter( writer );
				    edit.write( bw );
				    bw.close();
				    edit.setText("");
				    edit.requestFocus();
			    }
			    catch(Exception e2) {}
		    }
	    });
	    JFrame frame = new JFrame("TextArea Load");
	    frame.getContentPane().add( new JScrollPane(edit), BorderLayout.NORTH );
	    frame.getContentPane().add(read, BorderLayout.WEST);
	    frame.getContentPane().add(write, BorderLayout.EAST);
	    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	    frame.pack();
	    frame.setLocationRelativeTo( null );
	    frame.setVisible(true);
    }
}


 

Publicado 31 marzo 2014 - 13:51
Para importar, podemos abrirlo con Javascript se requiere la función fopen. El siguiente código obtiene el contenido de un archivo llamado "miarchivo.txt"

Leemos el archivo, tambien podemos realizar un busqueda sql previamente y leer el nombre dle archiuvo de una base de datos

<script>
archivo = fopen(getScriptPath("miarchivo.txt"), 0);
longitud_archivo = flength(archivo); 
contenido = fread(archivo, longitud_archivo);

document.getElementById("texto").value = content;
</script>

El formulario con el textarea y un campo titulo para el nombre del archivo

<form action="guardar.php" method="post">
 <input type="text" name="titulo" id="titulo"/>
 <textarea name="texto" id="texto" cols="50" rows="5"></textarea>
 <input type="submit" value="enviar"/>
</form>

Luego un codigo php para guardar el archivo y chequear si existe o no para crealo o modificarlo



<? 
//el nombre del archivo lo puedes enviar como parametro o bien identificarlo por fecha
$archivo = $_POST['titulo'].".txt"; 
 $contenido=$_POST['texto'];

    if(file_exists($archivo))  {
        $mensaje = "El archivo $archivo se ha modificado";

        $fp=fopen(“archivo.txt”,”x”);
          fwrite($fp,$contenido);
   }  else     {
        $mensaje = "El archivo $archivo se ha creado";

        $fp=fopen(“archivo.txt”,”w”);
          fwrite($fp,$contenido);
    }
         fclose($archivo);
 ?>


   AUTOR PREGUNTA

Publicado 04 abril 2014 - 11:45
No he probado aún lo que me decís, ya que antes hago otras cosillas. :-P

Al hacer submit pierdo todo el contenido del textarea. ¿Hay algo (truco, script,...) para que el contenido permanezca (línea a línea)? En el mismo JSP ya recojo (getParameter) el valor del script (cuenta()), pero como os digo, el contenido del textarea desaparece.

Tengo 2 inputs:
1. type="hidden" name="caracteres"
2. type="submit" name="opciones" value="Opciones" <--

¿Se puede ocultar este botón (<--) tras hacer 'submit'? ¿Cómo? Supongo que un botón externo (al formulario) puede volver a mostrarlo de nuevo (¿O tiene que ser interno?).

Gracias de nuevo,


PepBR

   AUTOR PREGUNTA

Publicado 07 abril 2014 - 11:29
¿Nadie me responde? :-(

Si sustituyo 'submit' por 'button' (

Por favor Identificate o Registrate para poder ver este contenido

) entonces no recojo el valor del TextArea (request.getParameter("...")), pero se mantiene el texto introducido. También estoy bloqueado en cambiar el número de carácteres por el texto introducido (con saltos de línea), fuera del SCRIPT y del FORM.

Gracias,


PepBR

 

Publicado 07 abril 2014 - 16:34
Con el submit pierdes la información del TextArea porque lo qué hace es enviar la información al servidor y por ende recarga la página, sin embargo, puedes seguir usando button, pero atando el botón a un evento jQuery por usar algún framework de Javascript pero aquí lo más óptimo que puedes hacer es usar Ajax, de esta forma enviarás los valores del formulario de manera asíncrona y no tendrás que recargar la página y perder la información.

   AUTOR PREGUNTA

Publicado 07 abril 2014 - 16:50
¿ Y cómo sería en AJAX - JQuery?

Me interesa, esto, no perder la información. Gracias, George10,

EDITO:

Por favor Identificate o Registrate para poder ver este contenido


1. En esta web no tiene en cuenta los saltos de línea. Me gustaría tenerlos en cuenta.
2. No hay los ficheros response_*.php.
3. ¿Podría hacer request.getParamater("") dentro del JSP y meterlo en 1 variable? Fuera del FORM sólo hay DIV.

Gracias de nuevo,


PepBR

 

Publicado 07 abril 2014 - 23:18
De la página oficial te bajas la última versión:

Por favor Identificate o Registrate para poder ver este contenido



Luego en tu archivo js, implementas el siguiente código, para mandarle los datos a tu archivo que procesará los datos:

var dataPag= 'nombre='+ nombre+ '&email=' + email + '&telf=' + telf;
//alert (dataPag);return false;
$.ajax({
type: "POST",
url: "archivoprocesa",
data: dataPag,
success: function() {
	 $('#formu1').html("<div id='mensaje'></div>");
	 $('#mensaje').html("<h2>Data Enviada</h2>")
	 .append("<p>Gracias.</p>")
	 .hide()
}
});
return false;


   AUTOR PREGUNTA

Publicado 09 abril 2014 - 12:07
Buenos días,

jacosta: (importar): ¿Por qué pones "El texto que proviene del textarea"? ¿Es request.getParameter("nombreTextArea")? El directorio inicialmente podría ser C:\, pero el usuario tendría que moverse en sus directorios y buscar su fichero TXT. ¿En dónde iría tu ejemplo (JSP, Java,...)?

jacosta: (Exportar): Para mí Swing es nuevo (no Java a secas). Por lo que veo JTextArea y Jbutton hacen referencia al textarea y a button en JSP, ¿correcto? En JSP iría entre <% ... %>... :meditando

George10: Me comentas JQuery para utilizar Ajax. Luego me dices dónde descargarme JQuery (¿En dónde lo pongo?) y me pones 1 código con nombre, email, telf, archivoprocessa (¿?), 1 append y 1 hide. Sólo tengo 1 textarea y 1 texto (con saltos de línea)... Otra pregunta: ¿Production o development 1.11.0?

<script src="http://js.nicedit.com/nicEdit-latest.js">
type="text/javascript"> </script>
<script type="text/javascript">
function cuenta(){
// nicEditors.findEditor('prova').saveContent();
document.forms[0].caracteres.value=document.forms[0].prova.value.length;

};
function Ok()
{
nicEditors.findEditor("prova").saveContent();
document.forms[0].caracteres.submit();
}
</script>

<form action="#" method="post">
<textarea name="prova" rows="15" cols="1025" id="prova" onkeydown="cuenta()" onkeyup="cuenta()">
</textarea>
<input type="hidden" name="caracteres">
<input type="submit" name="opcions" value="Veure opcions">
</form>

Gracias por vuestras respuestas, pero no veo si me sirven o no, partiendo de 1 formulario con 1 textarea y 1 o 2 botones (hidden y submit/buton, o...).

Mis observaciones / restricciones:
1. No perder la información introducida en el textarea y recuperar el texto introducido (con saltos de línea).
2. Tengo que cambiar Cuenta() por Contenido(), recogiendo (getParameter) el texto del textarea y sin perderlo.
3. He probado nicEditors, pero entonces el getParameter no funciona (no sé cómo hacerlo antes del submit (

Por favor Identificate o Registrate para poder ver este contenido

y

Por favor Identificate o Registrate para poder ver este contenido

) y que getParameter funcione).
4. Importar de 1 fichero *.txt (*=cualquier nombre) a 1 textarea.
5. Exportar el contenido del textarea a *.txt (*=cualquier nombre).

Soy muy novato en JSP y en textarea (más de lo que pensaba). Os lo agradecería que me diérais todos los pasos a seguir, ya que con vuestras respuestas dadas en algún momento me pierdo, lo siento, :-(


PepBR


X