MasterDrive.it   
Vai indietro   MasterDrive.it > Web Development e Scripting > Perl, Python, Ruby, Lua



Rispondi
 
Strumenti della discussione Modalità di visualizzazione
Vecchio 28-03-2006, 15:03   #1 (permalink)
Utente della community

 L'avatar di grimreaper

 
339 Messaggi

grimreaper novizio della comunita' ( + 10 )
[Perl] If semplice su file di grosse dimensioni

Ciao a tutti,
ho un problema su un file di un bel po' di righe (circa 700000) ho bisogno di un meccanismo del genere.
Se il primo carattere della riga è un carattere alfanumerico passa alla successiva.. mentre se il carattere è un "blank" (uno spazio) aggiungi 50 spazi all'inizio riga. Un mio amico programmatore (che spero di riiuscire portare qui) al volo mi ha dato questo script (non funzionante).

open(F, "file.txt");
foreach(@file) {
if($_ !~ /^\w/) {
$_ = $spaces . $_;
}
print F $_
}
close(F);

sapreste correggerlo?
Vi ringrazio.

__________________
- GRiM[R]eaPeR -

PS: L'avatar è tutta scena.
grimreaper non è in linea   Bookmark and Share Rispondi quotando
Vecchio 28-03-2006, 16:02   #2 (permalink)
Esperto della community

 L'avatar di albertonissa

 
2,353 Messaggi

albertonissa e' una persona affidabile ( + 250 )albertonissa e' una persona affidabile ( + 250 )albertonissa e' una persona affidabile ( + 250 )
dovrebbe funzionare:

codice:
#!/usr/bin/perl
use strict;

my $inputfile = "file_in.txt";
my $outputfile = "file_out.txt";
my $buffer = "";
my $buflen = 3000;
my $spazi = "";

for(my $i = 0; $i < 50; $i++) {
  $spazi .= " ";
}

open (my $inhandle, "<", $inputfile) or die ("Non ho potuto aprire il file di input: $!");
open (my $outhandle, ">", $outputfile) or die ("Non ho potuto aprire il file di output: $!");

while(read ($inhandle, $buffer, $buflen)) {
  if($buffer =~ /^\s/) {
    $buffer = $spazi . $buffer;
  }

  print ($outhandle, $buffer);
}

close ($inhandle);
close ($outhandle);
albertonissa non è in linea   Bookmark and Share Rispondi quotando
Vecchio 28-03-2006, 16:21   #3 (permalink)
Utente della community

 L'avatar di grimreaper

 
339 Messaggi

grimreaper novizio della comunita' ( + 10 )
Ciao..
mi mostra solo i primi 50 a video senza salvare niente sul file di output


Correzione.. li scorre tutti .. cmq niente output
__________________
- GRiM[R]eaPeR -

PS: L'avatar è tutta scena.

Ultima modifica di grimreaper : 28-03-2006 a 16:25.
grimreaper non è in linea   Bookmark and Share Rispondi quotando
Vecchio 28-03-2006, 17:10   #4 (permalink)
Esperto della community

 L'avatar di albertonissa

 
2,353 Messaggi

albertonissa e' una persona affidabile ( + 250 )albertonissa e' una persona affidabile ( + 250 )albertonissa e' una persona affidabile ( + 250 )
beh, non ho qui perl per provarlo, comunque usalo come base e correggi quel che c'e' di sbagliato
albertonissa non è in linea   Bookmark and Share Rispondi quotando
Rispondi

Strumenti della discussione
Modalità di visualizzazione

Regole d'invio
Non puoi inserire discussioni
Non puoi inserire repliche
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è attivo
Le smilies sono attive
Il codice IMG è attivo
il codice HTML è disattivato
Trackbacks are attivo
Pingbacks are attivo
Refbacks are disattivato

Salto del forum

Discussioni simili
Discussione Ha iniziato questa discussione Forum Risposte Ultimo messaggio
[VBA] Lettura e scrittura File Di Testo dragone bianco VBA Tutorials & How-To 0 27-09-2006 18:00
Interagire con i file - 1° parte freezer Visual Basic 6 Tutorials & How-To 0 18-11-2005 10:51
Gestione dei file: tipi di file freezer Visual Basic 6 Tutorials & How-To 0 18-11-2005 10:50
Gestione di file e directory Maxell1985 GNU/Linux Tutorials & How-To 0 17-11-2005 19:39
netmeeting Massimo70 Visual Basic 6 20 26-05-2005 19:16


Tutti gli orari sono GMT +2. Attualmente sono le 09:56.


Powered by vBulletin versione 3.8.0
Copyright © 2000 - 2010, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.2.0

Valid XHTML 1.0 Transitional  Creative Commons License

Eccetto dove diversamente specificato, i contenuti pubblicati in questa comunità sono rilasciati sotto Licenza
Creative Commons Attribuzione-Non commerciale-Condividi allo stesso modo 2.5 Italia License.
La comunita' di MasterDrive.it non e' responsabile di eventuali imprecisioni presenti nelle pagine.