Foros del Web » Programación para mayores de 30 ;) » Programación General »

buscar y remplazar en archivo

Estas en el tema de buscar y remplazar en archivo en el foro de Programación General en Foros del Web. Hola amigos tengo un archivo con texto html necesito buscar una palabra en el archivo y remplazarla .... y guardar el mismo texto con la ...
  #1 (permalink)  
Antiguo 22/04/2002, 08:47
 
Fecha de Ingreso: noviembre-2001
Mensajes: 108
Antigüedad: 22 años, 5 meses
Puntos: 2
buscar y remplazar en archivo

Hola amigos tengo un archivo con texto html necesito buscar una palabra en el archivo y remplazarla .... y guardar el mismo texto con la palabra remplazada ayudenmen

un amigo
  #2 (permalink)  
Antiguo 22/04/2002, 23:16
Avatar de Max13  
Fecha de Ingreso: octubre-2000
Ubicación: Mx
Mensajes: 1.229
Antigüedad: 23 años, 6 meses
Puntos: 0
Re: buscar y remplazar en archivo

Esto lo saque de un CGI para postales que hice hace muuuuuucho tiempo:

$palabra="Una palabra";
$reemplazar="Palabra a reemplazar";
open(FILE1,"< archivo.txt");
@uno=<FILE1>;
close FILE1;

for($i=0;$i<@uno;++$i)
{
$uno[$i]=~ s/\$palabra/$reemplazar/;
}

open(FILE1,"> archivo.txt");
print FILE1 @uno;
close FILE1;
Y eso es to to to todo amigos.

<font color="GRAY" size="-2" face="Arial">[B]
El poder no es tenerlo todo
El poder es unirse con el mundo invisible
El ser a uno con los espíritus
Y nosotros uno con ellos,
Nuestro corazón es el corazón de ellos
Desnudo ante el río de la vida
  #3 (permalink)  
Antiguo 23/04/2002, 09:59
 
Fecha de Ingreso: noviembre-2001
Mensajes: 108
Antigüedad: 22 años, 5 meses
Puntos: 2
Re: buscar y remplazar en archivo

oye no lo tienes completo ?

como lo ejecuto .

A y hace resto no te encontraba como estas?
  #4 (permalink)  
Antiguo 26/04/2002, 16:51
 
Fecha de Ingreso: noviembre-2001
Mensajes: 108
Antigüedad: 22 años, 5 meses
Puntos: 2
Re: buscar y remplazar en archivo

oye como se lo coreo al archivo??
  #5 (permalink)  
Antiguo 27/04/2002, 00:21
Avatar de Max13  
Fecha de Ingreso: octubre-2000
Ubicación: Mx
Mensajes: 1.229
Antigüedad: 23 años, 6 meses
Puntos: 0
Re: buscar y remplazar en archivo

#!F:/Perl/bin/perl
#Arriba cambia la direccion de perl por la de tu servidor

###########################Variables a Configurar###########################
################################################## ##########################

#Cambia la URL de la siguiente linea por la URL de tu mensaje de confirmación
#de envio de la postal
print &quot;Location: http://localhost/servicios/postales/enviada.htm\n\n&quot;;

#Cambia la URL de la siguiente linea por tu URL donde tengas almacenados las
#imagenes de fondo
$basefondos=&quot;http://localhost/servicios/postales/fondos/&quot;;

#Cambia la URL de la siguiente linea por la URL de las imagenes
$baseimagenes=&quot;http://localhost/servicios/postales/imagenes/&quot;;

#Cambia la ruta de la siguiente linea por la ruta absoluta donde se guardaran
#las postales enviadas, no olvides darle el Permiso 755
$basearchivos=&quot;/Sites/WebBolt/servicios/postales/archivos/&quot;;

#Cambia la URL de la siguiente linea por la URL donde tengas los midis
$basemidis=&quot;http://localhost/midis/&quot;;

#Cambia el ell numerdo de $EXPIREDAYS por el numero de dias a los que quieres
#que se borren las postales
$EXPIREDAYS=15;

#Para mandar mails con sistemas WinNT u otros que no posean sendmail, descomenta
#la siguiente linea y pon como comentario la segunda que empieza con $mailProg
#use Net::SMTP;
#Y si vas a usar sendmail descomenta la siguiente linea
#$mailProg = '/usr/sbin/sendmail';
###########################Fin de la congiguracion de variables##############
################################################## ###########################
#A partir de aqui ya no cambies nada exepto las lineas de Configuracion de envio
#de mail de notificación

use CGI;
use CGI::Carp qw/fatalsToBrowser/;

  #6 (permalink)  
Antiguo 27/04/2002, 00:22
Avatar de Max13  
Fecha de Ingreso: octubre-2000
Ubicación: Mx
Mensajes: 1.229
Antigüedad: 23 años, 6 meses
Puntos: 0
Re: buscar y remplazar en archivo

$postal=new CGI;
$imagenp=$baseimagenes.$postal-&gt;param('imagen');
$fondop=$basefondos.$postal-&gt;param('fondo');
$colordefondop=$postal-&gt;param('colordefondo');
$titulop=$postal-&gt;param('titulo');
$paranamep=&quot;&lt;A href=mailto:&quot;.$postal-&gt;param('paramail').&quot;&gt;&quot;.$postal-&gt;param('paraname').&quot;&lt;/A&gt;&quot;;
$denamep=&quot;&lt;A href=mailto:&quot;.$postal-&gt;param('denamemail').&quot;&gt;&quot;.$posta l-&gt;param('dename').&quot;&lt;/A&gt;&quot;;
$musicap=&quot;&lt;EMBED SRC=$basemidis&quot;.$postal-&gt;param('musica').&quot; HIDDEN=FALSE AUTOSTART=TRUE VOLUME=100 WIDTH=150 HEIGHT=50 &gt;&lt;/EMBED&gt;&quot;;
$temp=$postal-&gt;param('musica');
$temp=~ s/\_/\ /;
$musicap=$temp.&quot;&lt;BR&gt;\n&quot;.$musicap;
$colortextop=$postal-&gt;param('colortexto');
$textop=$postal-&gt;param('texto');
if($imagenp=~ /\.swf/)
{
$imagenp=&quot;&lt;embed src=&quot;.$imagenp.&quot; quality=high bgcolor=#000000 width=522
height=87 type=\&quot;application/x-shockwave-flash\&quot;
pluginspage=\&quot;http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\&quot;
border=\&quot;0\&quot; vspace=\&quot;0\&quot; hspace=\&quot;0\&quot;&gt;&lt;/embed&gt;&quot;;
}
else
{
$imagenp=&quot;&lt;A href=\&quot;http://www.webbolt.cjb.net/servicios/postales/\&quot;&gt;
&lt;IMG src=\&quot;&quot;.$imagenp.&quot;\&quot; border=\&quot;0\&quot; alt=\&quot;Postal\&quot;&gt;&lt;/A&gt;&quot;;
}
$ext=&quot;.htm&quot;;

($sec,$min,$hour,$mday,$mon,$year) = localtime(time);

if ($mday&lt;10)
{$mday='0'.$mday}
if ($mon&lt;10)
{
$mon+=1;
$mon='0'.$mon;
}
else
{$mon+=1;}

$year+=1900;
$archivo=$mday.$mon.$year.$hour.$min.$sec.$ext;
open(FILE1,&quot;&lt; plantilla.htm&quot;)||die &quot;No puedo abrir sendmail por que $!&quot;;
@uno=&lt;FILE1&gt;;
close FILE1;

for($i=0;$i&lt;@uno;++$i)
{
$uno[$i]=~ s/\$fondo/$fondop/;
$uno[$i]=~ s/\$colordefondo/$colordefondop/;
$uno[$i]=~ s/\$colortexto/$colortextop/;
$uno[$i]=~ s/\$titulo/$titulop/;
$uno[$i]=~ s/\$de/$denamep/;
$uno[$i]=~ s/\$para/$paranamep/;
$uno[$i]=~ s/\$imagen/$imagenp/;
$uno[$i]=~ s/\$texto/$textop/;
$uno[$i]=~ s/\$musica/$musicap/;
}

open(FILE2,&quot;&gt; $basearchivos$archivo&quot;)||die &quot;No puedo abrir sendmail por que $!&quot;;
print FILE2 @uno;
close FILE2;
  #7 (permalink)  
Antiguo 27/04/2002, 00:22
Avatar de Max13  
Fecha de Ingreso: octubre-2000
Ubicación: Mx
Mensajes: 1.229
Antigüedad: 23 años, 6 meses
Puntos: 0
Re: buscar y remplazar en archivo

$paramail=$postal-&gt;param('paramail');
$demail=$postal-&gt;param('demail');
$asunto=$postal-&gt;param('dename').&quot; te envio una postal&quot;;
$mensaje= &quot;Hola &quot;.$postal-&gt;param('paraname').&quot;, has recivido una postal que ha sido
mandada desde Ciber Postales Web Bolt 2001. Puedes recoger tu postal desde la siguiente
dirección:\n\n
http://www.webbolt.cjb.net/servicios/postales/archivos/$archivo\n\n
Esperamos que tengas un buen día.\n\n&quot;;

###########################Configuracion de envio de mail de notificación#######
#Si descomentaste la linea #use Net::SMTP; deja las siguientes lineas como estan
#hasta #Fin de sendmail, si vas a usar sendmail, entonces descomentalas
#open (MAIL,&quot;|$mailProg -t&quot;)||die &quot;No puedo abrir sendmail por que $!&quot;;
#;
#print MAIL &quot;To: $paramail\n&quot;;
#print MAIL &quot;Reply-to: $demail\n&quot;;
#print MAIL &quot;From: $demail\n&quot;;
#print MAIL &quot;Subject: $asunto\n\n&quot;;
#print MAIL &quot;$mensaje&quot;;
#close (MAIL);
#Fin de sendmail

#Si descomentaste la linea #use Net::SMTP; descomenta las siguientes lineas
#hasta #Fin de SMTP y si usaras sendmail dejalas tal como estan
#$smtp = Net::SMTP-&gt;new('here.com');#En lugar de here.com pon el nombre de un
#servidor SMTP
#$smtp-&gt;mail($paramail);
#$smtp-&gt;to($paramail);
#$smtp-&gt;data();
#$smtp-&gt;datasend(&quot;To: $paramail\n&quot;);
#$smtp-&gt;datasend(&quot;From: $demail\n&quot;);
#$smtp-&gt;datasend(&quot;\n&quot;);
#$smtp-&gt;datasend(&quot;$mensaje\n&quot;);
#$smtp-&gt;dataend();
#$smtp-&gt;quit;
#Fin de SMTP
###########################Fin de configuracion de envio de notificacion########

opendir(DIRE,$basearchivos);
@archivos=grep(/$ext/,readdir(DIRE));
closedir(DIRE);
foreach $archivo(@archivos)
{
if (-M &quot;$basearchivos/$archivo&quot; &gt; $EXPIREDAYS)
{
unlink(&quot;$basearchivos/$archivo&quot;);
}
}
exit;
  #8 (permalink)  
Antiguo 27/04/2002, 00:24
Avatar de Max13  
Fecha de Ingreso: octubre-2000
Ubicación: Mx
Mensajes: 1.229
Antigüedad: 23 años, 6 meses
Puntos: 0
Re: buscar y remplazar en archivo

Es el CGI para postales, completito, puedes mandar ya sea imagenes o animaciones flash, ademas de que incluye midis, al enviar alguna postal, el mismo cgi checa las postales que ya caducaron(de acuerdo a los días que le des tú), y las borra.


Espero que te sirva, ah, además, necesita un archivo más que sera la plantilla de las postales, o sea, el diseño base, que es el siguiente:
  #9 (permalink)  
Antiguo 27/04/2002, 00:26
Avatar de Max13  
Fecha de Ingreso: octubre-2000
Ubicación: Mx
Mensajes: 1.229
Antigüedad: 23 años, 6 meses
Puntos: 0
Re: buscar y remplazar en archivo

Plantilla:
La plantilla es un archivo HTML el cual sirve como base para crear las postales, este archivo es como su nombre lo indica, una plantilla, puedes usar el archivo que viene junto con el script o bien puedes usar el tuyo propio, el unico requisito es que tenga el nombre de plantilla.htm y este debe ser colocado en el mismo directorio del script.

Si deseas crear tu propia plantilla asegurate de colocar las siguientes palabras dentro de el:

$titulo
Esta variable se sustituira por el titulo de la postal.

$de
Esta variable se sustituira por el nombre de la persona quien envia la postal

$para
Esta variable se sustituira por el nombre de la persona que recibe la postal

$imagen
Sera sustituida por la imagen seleccionada al enviar la postal

$texto
Se sustituira por el texto enviado a la persona que recibe la postal

$musica
Esto sera cambiado por la melodia seleccionada al enviar la postal, recuerda que estas deben de ser de tipo midi

La etiqueta &lt;BODY&gt; del archivo plantilla ponlo de la siguiente forma:

&lt;BODY bgcolor=&quot;$colordefondo&quot; background=&quot;$fondo&quot; text=&quot;$colortexto&quot;&gt;

Donde $colordefondo sera substiuido por el color seleccionado en la postal, de no seleccionarse ningun quedara en blanco

$fondo sera substiuido por el fondo seleccionado en la postal, de no seleccionarse ningun quedara en blanco

$colordetexto se substituira por el color del texto seleccionado

Eso es todo con respecto al archivo plantilla.htm
  #10 (permalink)  
Antiguo 27/04/2002, 00:27
Avatar de Max13  
Fecha de Ingreso: octubre-2000
Ubicación: Mx
Mensajes: 1.229
Antigüedad: 23 años, 6 meses
Puntos: 0
Re: buscar y remplazar en archivo

Los objetos necesarios para la pagina mediante la cual se enviaran las postales son:

UN RADIO Con el nombre de &quot;imagen&quot; para seleeccionar la imagen o el nombre del SWF de flash
UN RADIO Con el nombre de &quot;fondo&quot; para seleccionar el fondo
UN RADIO Con el nombre de &quot;colordefondo&quot; para seleccionar el color de fondo
UN TEXT Con el nombre de titulo para poner el titulo
UN TEXT Con el nombre de paraname para poner el nombre de quien recibira la postal
UN TEXT Con el nombre de paramail para poner el e-mail de quien recibira la postal
UN TEXT Con el nombre de dename para poner el nombre a quien se envia la postal
UN TEXT Con el nombre de demail para poner el e-mail a quien se envia la postal
UN SELECT Con el nombre de &quot;musica&quot; para seleccionar la musica de fondo
UN SELECT Con el nombre de &quot;colortexto&quot; para seleccionar el color del texto
UN TEXTAREA Con el nombre de &quot;texto&quot; para poner el texto a enviar junto con la postal

Nota:
Dentro del SELECT &quot;musica&quot;, el valor de cada OPTION debe ser el nombre del archivo midi de la canción seleccionada Ejemplo:
&lt;SELECT name=&quot;musica&quot; size=&quot;4&quot;&gt;
&lt;OPTION&gt;Ninguna&lt;/OPTION&gt;
&lt;OPTION value=&quot;4_non_blondes-whats_up.mid&quot;&gt;4 Non blondes - What's up&lt;/OPTION&gt;
&lt;OPTION value=&quot;alejandro_saenz_corazon_partio.mid&quo t;&gt;Alejandro Saenz - Coraz&amp;ograve;np artio&lt;/OPTION&gt;
&lt;OPTION value=&quot;alex_sintek_mis_impulsos_sobre_ti.mid& quot;&gt;Alex Sintek- Mis impulsos_sobre_ti&lt;/OPTION&gt;
&lt;/SELECT&gt;

Para el select del color del texto en el value de cada option debes de poner el nombre en ingles del color, o su codigo en hexadecimal.

&lt;SELECT name=&quot;colortexto&quot;&gt;
&lt;OPTION value=&quot;BLUE&quot;&gt;Azul&lt;/OPTION&gt;
&lt;OPTION value=&quot;WHITE&quot;&gt;Blanco&lt;/OPTION&gt;
&lt;OPTION value=&quot;BROWN&quot;&gt;Cafe&lt;/OPTION&gt;
&lt;OPTION value=&quot;GRAY&quot;&gt;Gris&lt;/OPTION&gt;
&lt;OPTION value=&quot;BLACK&quot;&gt;Negro&lt;/OPTION&gt;
&lt;OPTION value=&quot;#FF0000&quot;&gt;Rojo&lt;/OPTION&gt;
&lt;OPTION value=&quot;#00FF00&quot;&gt;Verde&lt;/OPTION&gt;
&lt;/SELECT&gt;
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 04:18.