#!/usr/bin/perl

use strict;

use lib 'd:/Programs/Perl/lib';
use Utils;
use JFile;

my $Dir = ($ARGV[0])? $ARGV[0] : '';
while($Dir eq '' or !-d $Dir) {
	print "Input source data folder>>";
	$Dir = <>;
	Utils::DelSpace($Dir);
	last if(-d $Dir);
	print "  Error: [$Dir] is not a folder\n";
}

my $fmask = '^\d{14}\.txt$';
my @files = sort glob("$Dir/*.txt");

for(my $i = 0 ; $i < @files ; $i++) {
	print "$i: $files[$i]\n";
	my $NewFileName = &GetNewFileName($files[$i]);
	Utils::CopyFile($files[$i], $NewFileName);
#last;
}

exit;

sub GetNewFileName
{
	my ($fname) = @_;
	
print "File: [$fname]\n";
	my $in = new JFile($fname, "r");
	if(!$in) {
		print "Error: Can not read [$fname]\n";
		return 0;
	}
	
	$in->SkipTo("\\[Info 1\]");
	my $RegionName = &GetKeyVal($in, "Region Name");
print "  Region: [$RegionName]\n";
	my $SampleName = &GetKeyVal($in, "Sample");
print "  Sample: [$SampleName]\n";
	my $Comments = &GetKeyVal($in, "Comments");
print "  Comments: [$Comments]\n";
	$in->Close();

	my ($drive, $directory, $filename, $ext, $lastdir, $filebody) = Deps::SplitFilePath($fname);
	my $NewFileNameBody = "$filebody-$SampleName-$RegionName";
	$NewFileNameBody =~ s/\s/_/g;
	$NewFileNameBody =~ s/\\/_/g;
	$NewFileNameBody =~ s/\//_/g;
	my $NewFileName;
	for(my $c = 1 ; $c < 1000 ; $c++) {
		$NewFileName = sprintf("$NewFileNameBody-%d.txt", $c);
		last if(!-e $NewFileName);
	}
print "  New filename: $NewFileName\n";
	
	return $NewFileName;
}

sub GetKeyVal
{
	my ($in, $key) = @_;
#print "key [$key]\n";
	my $line = $in->SkipTo("$key=");
#print "l: $line";
	my ($key, $val) = ($line =~ /^(.*?)=(.*)\s*$/);
	return $val;
}
