Foros del Web » Programando para Internet » ASP Clásico »

Limitar tamaño de texto

Estas en el tema de Limitar tamaño de texto en el foro de ASP Clásico en Foros del Web. Hola a tod@s: Tengo un archivo de texto donde recogo las páginas de donde vienen mis visitas. Cómo puedo limitar el tamño del texto para ...
  #1 (permalink)  
Antiguo 26/09/2003, 06:10
 
Fecha de Ingreso: diciembre-2001
Ubicación: Vigo
Mensajes: 38
Antigüedad: 23 años, 4 meses
Puntos: 0
Limitar tamaño de texto

Hola a tod@s:

Tengo un archivo de texto donde recogo las páginas de donde vienen mis visitas.

Cómo puedo limitar el tamño del texto para que no sea excesivamente grande. P.Ej:

Si tiene más de 80 líneas, eliminar las 5 primeras?

Gracias por vuestra ayuda. Un saludote.
__________________
El que estudia, olvida; el que lee, aprende; y el que hace, sabe (Algún autodidacta, supongo...)
  #2 (permalink)  
Antiguo 26/09/2003, 09:05
Avatar de lexus  
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 4 meses
Puntos: 4
De acuerdo

supongamos que tienes un campo en un formulario que se llame mensaje.

cuando procesamos el mensaje lo filtramos asi:

mensaje= request.form("mensaje")
'si es muy largo borramos el resto.
'500 palabras

if len(mensaje) > 500 then
' si es mayor a 500 cortamos el resto.
mensaje = left(mensaje,499)
'si es menor a 500 lo dejamos igual
end if


' luego guardas en la base de datos o en el archivo de texto la variable "mensaje".


claro que es mucho mejor hacer la verificacion con javascript antes de enviarla al servidor, asi el usuario ve que su mensjae es muy largo y lo arreglara antes de procesarlo, asi no te qeudaran mensajes cortados e incoerentes, si necesitas el codigo en javascript que te valide un formulario para restringir cantidad de caracteres me avisas que yo lo tengo.

espero te sirva de algo..
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com
  #3 (permalink)  
Antiguo 29/09/2003, 04:23
 
Fecha de Ingreso: diciembre-2001
Ubicación: Vigo
Mensajes: 38
Antigüedad: 23 años, 4 meses
Puntos: 0
Gracias, lexus, pero me parece que no me has entendido bien.
No estoy hablando de formularios, sino de un archivo de texto (.txt), en le cual escribo la URL de la página de donde vienen las visitas. Para que no se acumulen demasiadas líneas, debo eliminar las primeras para que el archivo no sea demasiado grande. Espero haberme explicado.
Gracias de todos modos.
__________________
El que estudia, olvida; el que lee, aprende; y el que hace, sabe (Algún autodidacta, supongo...)
  #4 (permalink)  
Antiguo 04/10/2003, 20:37
(Desactivado)
 
Fecha de Ingreso: octubre-2003
Mensajes: 92
Antigüedad: 21 años, 7 meses
Puntos: 0
De acuerdo

Aqui te dejo un ejemplo en vbscript que ultiliza len para contar caracteres.

Código PHP:
<script language="VBScript">

 
dim txt

 sub Contar
()
  
txt text.value 
  
if  Len(txt) = "160" then 
    msgbox 
"Se ha llegado al limite de caracteres"
   
end if
 
end sub
</script>

<textarea name="txt" language="VBSCript" OnKeyPress="Contar()"></textarea> 
Recuerda que si ultlizas un form para enviar datos tendrias que ponerle nombre al form.:

Código PHP:
<form action="" name="form" method=""
entonces cambiaria el valor de la variable txt y seria asi.

txt = form.text.value

txt - Es la variable
form - Es el nombre del formulario
text - Es el nombre del textarea

Para cajas de texto input se ultiliza lenght

Última edición por Radar; 04/10/2003 a las 20:38
  #5 (permalink)  
Antiguo 04/10/2003, 23:54
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
pero eso es vbscript client-side... no vale para el foro ASP
__________________
...___...
  #6 (permalink)  
Antiguo 10/10/2003, 06:13
 
Fecha de Ingreso: diciembre-2001
Ubicación: Vigo
Mensajes: 38
Antigüedad: 23 años, 4 meses
Puntos: 0
Vuelvo a insistir en que no se trata de un formulario. Es un archivo de texto.
Los Chicos de Microsoft son yankies 100%: Inventan el WriteLine para escribir, pero no inventan el DeleteLine para borrar.... o estoy equivocado ...?
__________________
El que estudia, olvida; el que lee, aprende; y el que hace, sabe (Algún autodidacta, supongo...)
  #7 (permalink)  
Antiguo 10/10/2003, 10:03
 
Fecha de Ingreso: diciembre-2001
Ubicación: Rosario (SF)
Mensajes: 193
Antigüedad: 23 años, 4 meses
Puntos: 0
la verdad que lo que queres hacer es bastantecomplicado con un txt, por que no usas una base de datos?
la otra es copiar la cantidad de líneas que te interesan adentro de un array y borrar el txt o generarlo de nuevo donde bolcas el array y le sumas la linea del URL nuevo.
pero no es mucho laburo para el server cada vez que entra una persona?
me imagino tambien le metes una cookie para que no te haga eso si esta navegando tu propio sitio y no te guarde las direcciones locales?
__________________
Saludos

Facu
  #8 (permalink)  
Antiguo 10/10/2003, 10:40
 
Fecha de Ingreso: diciembre-2001
Ubicación: Vigo
Mensajes: 38
Antigüedad: 23 años, 4 meses
Puntos: 0
Gracias, Facu.

Lo del array no se me había ocurrido, pero parece que es un poco lioso, porque no solo guardo la dirección, sino también fecha, hora, etc. Me tendré que decantar por la base de datos, pero la verdad es que el archivo de texto iba de perilla para esto.

Lo que me extraña es que alguien haya trabajado con archivos de texto y a nadie le haya surgido esta cuestión.

En fin, un saludo a todos y gracias por vuestra paciencia.
__________________
El que estudia, olvida; el que lee, aprende; y el que hace, sabe (Algún autodidacta, supongo...)
  #9 (permalink)  
Antiguo 10/10/2003, 11:22
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
exacto Julio...
los expeirtos de mocosoft se olvidaron del comando deleteLine para el manejo de archivo, lo que si puedes hacer es una rutina que dado el archivo y la palabra o frase a buscar haga un replace por espacios en blanco...

no es lo mas docto pero es lo unico que se me ocurrio cuando tuve que hacer algo similar...

Código PHP:
Public Function DeletePalabra(filenamepalabra)

     
Dim content
    
     Set fs
=Server.CreateObject("Scripting.FileSystemObject")

     
Set f=fs.OpenTextFile(Server.MapPath(filename), 1)
     
content f.ReadAll
         content 
replace(contentpalabra"")
     
f.Close
     Set f
=fs.CreateTextFile(filename,true)
     
f.write(Server.MapPath(content))
     
f.Close
     Set f
=nothing
     Set fs
=nothing

  End 
Function 
lo otro seria borrar por linea donde tendrias que darle la linea que deseas eliminar..o sea mas bien recorrer again el archivo y reescribirlo saltandote la linea X.

Código PHP:
Public Function BorrarLinea(filenamelinea)

     
Set fs=Server.CreateObject("Scripting.FileSystemObject")

     
Dim countcontent
     count 
0
         
     Set f
=fs.OpenTextFile(Server.MapPath(filename), 1)

      do while 
f.AtEndOfStream false
     
        count 
count 1
            
If linea <> count Then        
         content 
content f.ReadLine "<br>"
        
Else
           
f.ReadLine
        End 
If
  
      
loop
         
     f
.Close

     Set f
=fs.CreateTextFile(filename,true)
     
f.write(Server.MapPath(content))
     
f.Close
     Set f
=nothing
     Set fs
=nothing
         
  End 
Function 
saludos
  #10 (permalink)  
Antiguo 11/10/2003, 11:01
 
Fecha de Ingreso: diciembre-2001
Ubicación: Vigo
Mensajes: 38
Antigüedad: 23 años, 4 meses
Puntos: 0
Gracias, bankazipp.

Me has dado una idea. Este es el código que he desarrollado. Seguro que se puede mejorar, pero lo he sacado hace un rato y funciona correctamente.

Vamos a trabajar con 3 variables:

num_lineas = Total de líneas que tiene el fichero.
maximo = El número máximo de líneas que deseamos que tenga al final.
lineas_borrar = (obvio: num_lineas - maximo ).

El script consta de loas siguientes pasos:
1º .- Abrimos el archivo en modo lectura para saber cuantas líneas tiene el fichero.
2º .- Lo volvemos a abrir . Recorremos sin parar las líneas que no nos interesan. Las siguientes las guardamos en la variable contenido.
3º .- Lo volvemos a abrir en modo escritura y agregamos los datos
Ahí va el código...



num_lineas=0
maximo=136
strNombre=(Server.MapPath("web") & "\" & "fichero.txt")
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objTS= objFSO.OpenTextFile(strNombre,1,True)
Do While not objTS.AtEndOfStream
num_lineas=num_lineas+1 'Recorremos el fichero y calculamos el número total de líneas
objTS.SkipLine
Loop
ObjTS.Close
Set objTS=Nothing
If num_lineas >= maximo Then
lineas_borrar = num_lineas - maximo
contenido=""
Set objTS = objFSO.OpenTextFile(strNombre,1,True)
Do While not objTS.AtEndOfStream=True
If objTS.Line >= lineas_borrar Then 'Si la línea del fichero es superior a las líneas a borrar
contenido_linea=objTS.ReadLine & VbCrlF
contenido=contenido & contenido_linea 'Le agregamos la línea a la variable contenido
End If
If objTS.AtEndOfStream=True Then
Exit Do
End If
If contenido_linea="" Then
objTS.SkipLine
End If
Loop
objTS.Close
Set objTS = objFSO.OpenTextFile(strNombre,2,True)
objTS.Write(contenido) ' Colocamos el nuevo resultado en el fichero
objTS.Close
End If
Set objTS=Nothing
Set objFSO=Nothing


Como digo, los maestros lo podreis depurar, pero lo he hecho aprisa, y por lo menos funciona. Un saludo a todos y gracias.
__________________
El que estudia, olvida; el que lee, aprende; y el que hace, sabe (Algún autodidacta, supongo...)
  #11 (permalink)  
Antiguo 11/10/2003, 15:25
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
me parece....como mejora te aconsejo dejar el bucle en una funcion para que el codigo se vea mas orenado y limpio.

saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:47.