jvras
asked on
Writing a file online a WEB Browers
This is a part of a script Perl to write a file to the Server. This write it in DOS Format.
My question is what to do with this script to write it in UNIX Format ?
sub write {
my ($directory, $filename, $data, $url) = @_;
my ($fullfile, $new);
(!$filename) and return "Edit File: No filename was entered!";
($directory =~ m,/$,) ? ($fullfile = "$directory$filename") : ($fullfile = "$directory/$filename");
existing file.
$new = 1;
(&exists($fullfile)) and ($new = 0);
$data =~ s,</TEXT-AREA,</TEXTAREA,i g;
# Write the file to the system.
open(FILE,">$fullfile") or &cgierr ("Can't open: '$fullfile'.\nReason: $!");
print FILE $data;
close(FILE);
if (&exists($fullfile)) {
($new eq 'yes') ?
return ("Edit File: '$filename' has been created.") :
return ("Edit File: '$filename' has been edited.");
}
else {
return ("Edit File: Cannot save '$filename'. Check permissions.");
}
}
Thank you for helping.
jvras
My question is what to do with this script to write it in UNIX Format ?
sub write {
my ($directory, $filename, $data, $url) = @_;
my ($fullfile, $new);
(!$filename) and return "Edit File: No filename was entered!";
($directory =~ m,/$,) ? ($fullfile = "$directory$filename") : ($fullfile = "$directory/$filename");
existing file.
$new = 1;
(&exists($fullfile)) and ($new = 0);
$data =~ s,</TEXT-AREA,</TEXTAREA,i
# Write the file to the system.
open(FILE,">$fullfile") or &cgierr ("Can't open: '$fullfile'.\nReason: $!");
print FILE $data;
close(FILE);
if (&exists($fullfile)) {
($new eq 'yes') ?
return ("Edit File: '$filename' has been created.") :
return ("Edit File: '$filename' has been edited.");
}
else {
return ("Edit File: Cannot save '$filename'. Check permissions.");
}
}
Thank you for helping.
jvras
looks like it's going to work.
ASKER
No, it's not working.
I change a perl script online and after rewrite it it's give an error.
The reason is that it's writed in DOS Format.
I have to remove the ^M and ^Z characters.
What is the code for that in this script? And where I have to place it.
Thanks
jvras
I change a perl script online and after rewrite it it's give an error.
The reason is that it's writed in DOS Format.
I have to remove the ^M and ^Z characters.
What is the code for that in this script? And where I have to place it.
Thanks
jvras
try adding this ....
open(FILE,">$fullfile") or &cgierr ("Can't open: '$fullfile'.\nReason: $!");
binmode(FILE); ## Add this line to your program
Let me know if it works
open(FILE,">$fullfile") or &cgierr ("Can't open: '$fullfile'.\nReason: $!");
binmode(FILE); ## Add this line to your program
Let me know if it works
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
This is working correctly.
The code is for ^M but not for ^Z
Many thanks to monas
The code is for ^M but not for ^Z
Many thanks to monas
to make it work for ^Z try this
$data=~ s/^Z//g;
NOTE: the above is not 2 chars (^ and Z) but a single char.
you can reproduce that single char in the following way, assuming you are on a UNIX based system and use vi editor.
To get ^Z char:
In vi
* press escape
* press i
* press CTRL + V and keeping the CTRL key depressed press Z.
that will give you the ^Z char. You can use the same method to reproduce ^M.
* press escape again
if you want i can send you the script, via email, as an attachment since i cannot directly paste the code here.
$data=~ s/^Z//g;
NOTE: the above is not 2 chars (^ and Z) but a single char.
you can reproduce that single char in the following way, assuming you are on a UNIX based system and use vi editor.
To get ^Z char:
In vi
* press escape
* press i
* press CTRL + V and keeping the CTRL key depressed press Z.
that will give you the ^Z char. You can use the same method to reproduce ^M.
* press escape again
if you want i can send you the script, via email, as an attachment since i cannot directly paste the code here.
ASKER
maneshr
Thanks for reply but I know the vi editor how to make special characters.
Your first responce about binmode isn't working. That is what I also thinking before but the answer of monas is
the best one.
Still thank you.
jvras
Thanks for reply but I know the vi editor how to make special characters.
Your first responce about binmode isn't working. That is what I also thinking before but the answer of monas is
the best one.
Still thank you.
jvras
you're welcome :-)