Solved

Writing a file online a WEB Browers

Posted on 2000-02-23
8
190 Views
Last Modified: 2010-03-05
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,ig;

# 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
0
Comment
Question by:jvras
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
8 Comments
 
LVL 8

Expert Comment

by:shlomoy
ID: 2550175
looks like it's going to work.
0
 

Author Comment

by:jvras
ID: 2550307
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
0
 
LVL 16

Expert Comment

by:maneshr
ID: 2550532
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
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 3

Accepted Solution

by:
monas earned 200 total points
ID: 2550626
put
$data =~ s/(\r|\035)//gi;

right after $data =~ s,</TEXT....

I'm little unsure about \035 but this should be code of ^Z in octal.

Good Look!
0
 

Author Comment

by:jvras
ID: 2552022
This is working correctly.
The code is for ^M but not for ^Z

Many thanks to monas

0
 
LVL 16

Expert Comment

by:maneshr
ID: 2552122
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.
0
 

Author Comment

by:jvras
ID: 2553988
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
0
 
LVL 16

Expert Comment

by:maneshr
ID: 2554493
you're welcome :-)
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Perl 101 11 91
transpose into pipe delemited 8 86
perl script to search for files containing text 3 102
Union rows in array that have common elements (Part 2) 4 94
I've just discovered very important differences between Windows an Unix formats in Perl,at least 5.xx.. MOST IMPORTANT: Use Unix file format while saving Your script. otherwise it will have ^M s or smth likely weird in the EOL, Then DO NOT use m…
In the distant past (last year) I hacked together a little toy that would allow a couple of Manager types to query, preview, and extract data from a number of MongoDB instances, to their tool of choice: Excel (http://dilbert.com/strips/comic/2007-08…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…

739 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question