# CREATING UPDATE FILE FEATURE my $tmp = "$workingDir/CR/EGIS_table.txt"; open(my $fh, '<:encoding(UTF-8)', $tmp) or die "Could not open file '$tmp' $!"; my @rows = <$fh>; chomp @rows; if ($updatefile) { # logical and operator if the update=1 and the filename exist then go down my $tmp = "$workingDir/CR/EGIS_table.txt"; open(my $fh, '<:encoding(UTF-8)', $tmp) or die "Could not open file '$tmp' $!"; my @rows = <$fh>; chomp @rows; #FORMAT AND PAD THE FIELDS WITH SPACES IN LEFT JUSTIFIED BEFORE WRITING TO FILE $file_requesterName = sprintf('%-30s',$file_requesterName); $file_requesterEmail = sprintf('%-35s',$file_requesterEmail); $file_reqtype = sprintf('%-15s', $file_reqtype); $file_region = sprintf('%-15s',$file_region); $file_Serial_Number = sprintf('%-15s', $file_Serial_Number); $file_aiws_OSS_IP_pri = sprintf('%-15s', $file_aiws_OSS_IP_pri); $file_aiws_OSS_IP_sec = sprintf('%-15s', $file_aiws_OSS_IP_sec); $file_temp_SGW_IP_pri = sprintf('%-15s', $file_temp_SGW_IP_pri); $file_temp_SGW_IP_sec = sprintf('%-15s', $file_temp_SGW_IP_sec); $file_bts_site_id = sprintf('%-15s', $file_bts_site_id); $file_req_date = sprintf('%-15s', $file_req_date); $file_NOC_Update_req = sprintf('%-19s', $file_NOC_Update_req); $file_OSS_enm = sprintf('%-11s', $file_OSS_enm); $file_category = sprintf('%-15s', $file_category); $file_RNC_Name = sprintf('%-10s', $file_RNC_Name); $file_submission_status = sprintf('%-15s',$file_submission_status); $file_additionalnotes = sprintf('%-100s',$file_additionalnotes); # WRITING TEMPORARY UPDATED ROW INTO TEMPORARY FILE TO BE USED LATER IN UPDATING THE EGIS_table.txt (MASTER TABLE) my $temporary_fileName = "$workingDir/CR/EGIS_table_oneline.txt"; open ($fh, '>', $temporary_fileName) or die $!; `echo "$file_requesterName $file_requesterEmail $file_reqtype $file_region $file_Serial_Number $file_aiws_OSS_IP_pri $file_aiws_OSS_IP_sec $file_temp_SGW_IP_pri $file_temp_SGW_IP_sec $file_bts_site_id $file_req_date $file_NOC_Update_req $file_OSS_enm $file_category $file_RNC_Name $file_submission_status $file_additionalnotes \n" > $temporary_fileName`; close ($fh); # END OF WRITING TEMPORARY UPDATED ROW INTO TEMPORARY FILE TO BE USED LATER IN UPDATING THE EGIS_table.txt (MASTER TABLE) my $index=1; # UPDATE THE ARRAY INDEX THAT WAS EDITED BY THE USER foreach my $row(@rows) { next if $row =~ /REQUESTER_NAME/; # SKIP THE HEADER OF THE TABLE if ($index == $submit_button) { # IF ARRAY INDEX = SUBMIT_BUTTON THEN UPDATE THE CONTENT OF AN ARRAY. Example index=13 and you change the requester name to Alvin and hit the submit button, only index 13 will be updated. print "The Submit Button was Pressed and the array index=" . $submit_button; @rows[$submit_button] = $file_requesterName . $file_requesterEmail . $file_reqtype . $file_region . $file_Serial_Number . $file_aiws_OSS_IP_pri . $file_aiws_OSS_IP_sec . $file_temp_SGW_IP_pri . $file_temp_SGW_IP_sec . $file_bts_site_id . $file_req_date . $file_NOC_Update_req . $file_OSS_enm . $file_category . $file_RNC_Name . $file_submission_status . $file_additionalnotes; print "ROWS=@rows[$submit_button]"; } $index++; } $index--; # print "Array Index Total Row=" . $index; # STORE TEMPORARILY THE UPDATED DATA HERE my $EGIS_table_fileName_tmp = "$workingDir/CR/EGIS_table_tmp.txt"; open(EGIS_table_fileName_tmp_fh, '>:encoding(UTF-8)', $EGIS_table_fileName_tmp) or die "Could not open file '$EGIS_table_fileName_tmp' $!"; # ORIGINAL FORMATTED FILE WITH PADDED with space COLUMNS my $EGIS_table_fileName = "$workingDir/CR/EGIS_table.txt"; open(EGIS_table_fileName_fh, '<:encoding(UTF-8)', $EGIS_table_fileName) or die "Could not open file '$EGIS_table_fileName' $!"; # FILE THAT HOLDS THE USER CHANGED ROW my $EGIS_table_fileName_oneline = "$workingDir/CR/EGIS_table_oneline.txt"; open(EGIS_table_fileName_oneline_fh, '<:encoding(UTF-8)', $EGIS_table_fileName_oneline) or die "Could not open file '$EGIS_table_fileName_oneline' $!"; # STORE THE CONTENT OF EGIS_TABLE_ONELINE.TXT into variable my $oneline_content; open(my $fh, '<', $EGIS_table_fileName_oneline) or die "cannot open file $EGIS_table_fileName_oneline"; { local $/; $oneline_content = <$fh>; } close($fh); print "One line txt file content=$oneline_content"; my $j=0; print "*SUBMIT_BUTTON=$submit_button*"; while (my $row = ) { chomp $row; print "Hello"; my $row_length = length($row); print "THE LENGTH OF ROW=$row_length"; $j++; if ($j==$submit_button) { # IF THE ROW IS THE DATA TO BE CHANGED then OPEN THE FILE AND REPLACE THE ROW WITH UPDATED ONE print "***** Matching Row Found ******"; print "From File Row=$row*"; $row = "$file_requesterName $file_requesterEmail $file_reqtype $file_region $file_Serial_Number $file_aiws_OSS_IP_pri $file_aiws_OSS_IP_sec $file_temp_SGW_IP_pri $file_temp_SGW_IP_sec $file_bts_site_id $file_req_date $file_NOC_Update_req $file_OSS_enm $file_category $file_RNC_Name $file_submission_status $file_additionalnotes"; print "New Row=$row*"; `echo $row >> $EGIS_table_fileName_tmp`; # THIS IS NOT WORKINGGGGGGGGGGGGGGGGGGGGGGGGG! } else { # IF THE ROW IS NOT TO BE CHANGED JUST WRITE IT DOWN AS IS print "***** NotMatching Row Found Writing straight to EGIS_table_tmp.txt******"; print $row; `echo $row >> $EGIS_table_fileName_tmp`; # THIS IS NOT WORKINGGGGGGGGGGGGGGGGGGGGGGGGG! } } close (EGIS_table_fileName_tmp_fh); close (EGIS_table_fileName_fh); copy $EGIS_table_fileName_tmp, $EGIS_table_fileName; } # END OF CREATING UPDATE FILE FEATURE