Newsgroup: it.comp.lang.perl
Titolo: Come si elimina una riga da un file?

Salve a tutti,
ho questo problemino:
devo gestire via perl un file di testo che contiene in ogni riga questi
dati:
mail:password (a capo)
mail1:password1
... e cosi' via
Sono riuscito a inserire in automatico nuove righe,
ora mi si pone il problema opposto:
devo eliminare una certa riga conoscendo il campo mail.
Cercando qua e la' ho trovato questo script:
-----------------------------------------------
require '
cgi-lib.pl
';
print "Content-Type: text/html\n\n";
&ReadParse(*input);
$busca = $input{'mail'};
$dat ="j:/sendmail/smusers.txt";
open (DAT,"$dat") || print "Non posso aprire smusers.txt!!";
print "<font face=verdana size=+1>Buscando $busca  en
smusers.txt....<br><br>";
$encuentra=0;
while (<DAT>) {
		if (/$busca/) { $encuentra++; print " - "; print $_; print "<br>"; }
	}
close (DAT);
if (  $encuentra >= 1 ) { print "<br><font face verdana size=+2
color=#ff0000>
Se han encontrado coincidencias!!</font><br>";}
if (  $encuentra == 0 ) { print "<br>No se han encontrado
coincidencias<br>";}
ora, se gli passo il campo mail (
file.pl?mail=pippo
)
mi esplora il file e mi dice se il campo c'e' o meno.
Io vorrei eliminarlo.Come si fa?
E se poi volessi ordinare il file in ordine alfabetico?
Grazie mille
PS vi ricordo che di perl non ci capisco quasi nulla quindi mi servirebbe un
file completo che faccia
tutto da solo.
Ho letto che per ordinare il file potrei fare
print sort { $a cmp $b} @linea; o qualcosa del genere ma come ci metto il
file nell'array $linea[i] ???
Dal momento che non leggo sempre il forum vi inviterei a scrivere alla mia
mail
Alessandro Carbone
Responsabile Settore Informatico
----------------------------------------------------
F.D.G. Editrice Europea s.r.l..
V.Assab, 15 --- 20132 Milano
T.   
+39 02 2825972
 (interno)
T.   
+39 02 26112015
   (centralino - 30 linee)
Fax 
+39 02 2619154
email 
alexc...@moditalia.net
--------------------------------------------------
-- 
Posted from [213.26.17.132] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 mail
 Ti rendi conto delle tue parole?
 "Non me ne frega niente del vostro linguaggio o del vostro newsgroup, quindi 
 fate questo lavoro per me gratis, speditemelo a casa, zitti e pedalare."
 
 Quasi un mito nella sua tristezza.
 Tra l'altro una riga si elimina riscrivendo tutto il file da capo senza la
 riga in questione. Non c'e' altro modo.
 Maurizio
 
-- 
Maurizio M. Munafo' / 
mmmu...@netscape.net
"Consider Phlebas, who was once handsome and tall as you" (T.S.Eliot)

 riga in questione. Non c'e' altro modo.
C'e' sempre piu' di una soluzione...
bye
silvio




Beh. Francamente preferisco la soluzione 'semplice', rispetto ad aprire 
il file con DB_File/$DB_RECNO e rimuovere la sola riga incriminata :)
Poi naturalmente dipende dal tipo di file.


 il file con DB_File/$DB_RECNO e rimuovere la sola riga incriminata :)
be', certo: cosi' come c'e' sempre piu' di una soluzione, c'e' sempre una
soluzione migliore delle altre.
bye
silvio

 ha scritto nel messaggio
news:NEBBJPDLELFCBFIIMEL...@moditalia.net...




&ReadParse(*input);
$busca = $input{'mail'};
$dat ="j:/sendmail/smusers.txt";


$encuentra=0;

close (DAT);


PS vi ricordo che di perl non ci capisco quasi nulla quindi mi servirebbe un
file completo che faccia
tutto da solo.
Ho letto che per ordinare il file potrei fare
print sort { $a cmp $b} @linea; o qualcosa del genere ma come ci metto il
file nell'array $linea[i] ???
Dal momento che non leggo sempre il forum vi inviterei a scrivere alla mia
mail
Alessandro Carbone
