Hello there trojan.
I'm trying to get a line in this format:
#include "background.inc"
#declare atomos=
union{
sphere{< -3.5400 , 2.8462 , 0.0708 >Re}
So i change this line and i get blank lines in the files.
What's wrong with that?
as well I need to put another lines on the top of each file.
print FH "sphere={<", join(",", split),"Re}",">\n";
This is my file.
Would be great to calculate something inside this script.
Sorry guys I'm a Fortran programmer and i met that perl it's a great choose to do this job.
#!/usr/bin/perl -w
#Este script separa en bloques la informacion de las posiciones atomicas obtenidas
#Al usar fil2xyz, es decir usa un archivo que contiene posiciones atomicas en bloques.
#use strict;
print "El archivo de posiciones debe estar en el directorio actual\n";
system pwd;
print "\n";
print "Dame el nombre del archivo de entrada:\n";
$infile = <STDIN>;
chomp $infile;
# checamos si el archivo existe
until (-f $infile) { # -f significa checar si hay un archivo con este nombre
print "Ese archivo no existe\n";
$infile = <STDIN>;
chomp $infile;
}
# Se crea el directorio para los archivos de salida
print "\n";
print "Nombre del directorio que contendra los archivos xyz?\n";
$output_directory = <STDIN>;
chomp $output_directory;
# Verifico que no exista ese nombre de directorio.
while (-d $output_directory) { #
print "Ya existe ese directorio, intenta otro nombre\n";
$output_directory = <STDIN>;
chomp $output_directory;
}
# Si no existe ese directorio, entonces procede a crearse
mkdir ($output_directory, 0777) || die "No se puede crear $output_directory";
opendir (OUTPUTDIR, $output_directory) || die "No se puede abrir $output_directory";
# parametros
print "\n";
###################################################################
# principal
###################################################################
#Creo archivos de acuerdo al numero de pasos que tengo.
open (INFILE, $infile);
my $number = 1;
open FH, ">$output_directory/$number.dat" or die "No puedo abrir [$number.dat]";
#print FH " #include "background.inc"\n";
#print FH "#declare atomos=\n";
#print FH "union {\n";
#abro el archivo como escritura.
while(<INFILE>) {
chomp;
if(/\s*$/) {
# \s indica espacio, caracter en blanco,tab o newline
close FH;
$number++;
open FH, ">$output_directory/$number.dat" or die "No se puede abrir [$number.dat]";
next;
}
print FH "sphere={<", join(",", split),"Re}",">\n";
}
close FH;
close FH;
close INFILE;
print "***** Se acabo el proceso*****\n";
print "$number Archivos creados\n";
I'm trying to get a line in this format:
#include "background.inc"
#declare atomos=
union{
sphere{< -3.5400 , 2.8462 , 0.0708 >Re}
So i change this line and i get blank lines in the files.
What's wrong with that?
as well I need to put another lines on the top of each file.
print FH "sphere={<", join(",", split),"Re}",">\n";
This is my file.
Would be great to calculate something inside this script.
Sorry guys I'm a Fortran programmer and i met that perl it's a great choose to do this job.
#!/usr/bin/perl -w
#Este script separa en bloques la informacion de las posiciones atomicas obtenidas
#Al usar fil2xyz, es decir usa un archivo que contiene posiciones atomicas en bloques.
#use strict;
print "El archivo de posiciones debe estar en el directorio actual\n";
system pwd;
print "\n";
print "Dame el nombre del archivo de entrada:\n";
$infile = <STDIN>;
chomp $infile;
# checamos si el archivo existe
until (-f $infile) { # -f significa checar si hay un archivo con este nombre
print "Ese archivo no existe\n";
$infile = <STDIN>;
chomp $infile;
}
# Se crea el directorio para los archivos de salida
print "\n";
print "Nombre del directorio que contendra los archivos xyz?\n";
$output_directory = <STDIN>;
chomp $output_directory;
# Verifico que no exista ese nombre de directorio.
while (-d $output_directory) { #
print "Ya existe ese directorio, intenta otro nombre\n";
$output_directory = <STDIN>;
chomp $output_directory;
}
# Si no existe ese directorio, entonces procede a crearse
mkdir ($output_directory, 0777) || die "No se puede crear $output_directory";
opendir (OUTPUTDIR, $output_directory) || die "No se puede abrir $output_directory";
# parametros
print "\n";
###################################################################
# principal
###################################################################
#Creo archivos de acuerdo al numero de pasos que tengo.
open (INFILE, $infile);
my $number = 1;
open FH, ">$output_directory/$number.dat" or die "No puedo abrir [$number.dat]";
#print FH " #include "background.inc"\n";
#print FH "#declare atomos=\n";
#print FH "union {\n";
#abro el archivo como escritura.
while(<INFILE>) {
chomp;
if(/\s*$/) {
# \s indica espacio, caracter en blanco,tab o newline
close FH;
$number++;
open FH, ">$output_directory/$number.dat" or die "No se puede abrir [$number.dat]";
next;
}
print FH "sphere={<", join(",", split),"Re}",">\n";
}
close FH;
close FH;
close INFILE;
print "***** Se acabo el proceso*****\n";
print "$number Archivos creados\n";