Jason Balicki wrote:
> What I'm trying to do with the following code is convert
> some iCal files so that a specific application will read
> them.
> 
> The problem is that this application can't deal with
> entries that have a date but no time.
> 
> (Full examples below.)  For example, if I have a
> 
> DTSTART:20050616
> 
> in the file, I want to convert it to:
> 
> DTSTART:20050616T070000Z
> 
> But with my code below this line prints as:
> 
> T070000Z20050616
> 
I ran your code by removing the outer loop and placing the data as __DATA__ . 
The output I got was:
BEGIN:VEVENT
UID:sm_cal_evt_20050523T201350Z_example_com
SEQUENCE:0
PRIORITY:5
DTSTAMP:20050523T201350Z
CREATED:20050523T201350Z
LAST-MODIFIED:20050523T201350Z
STATUS:
DTSTART:20050616T070000Z
SUMMARY:Someguy - PTO
DESCRIPTION:
COMMENT:
DTEND:20050616T170000Z
X-SQ-EVTDOMAIN:zeffert_com
X-SQ-EVTCREATOR:mikeprice
X-SQ-EVTLASTUPDATOR:someguy
X-SQ-EVTOWNERS:kodak,someguy,*
X-SQ-EVTREADABLEUSERS:
X-SQ-EVTWRITEABLEUSERS:
X-SQ-EVTPARENTCALENDARS:sm_cal_20050401T193810Z_example_com
END:VEVENT

        The above seems to be what you stated you wanted.  I did nothing else 
in processing. I am running on AS Perl 5.8.3 build 809

Here is the code I executed:
while ( <DATA> ) {
        chomp $_;
        if (/DTSTART:/) {
                my $startline= $_ . "T070000Z\n";
                print $startline;
        }
        elsif (/DTEND:/) {
                s/$/T170000Z\n/;
                print $_;
        }
        elsif (/X-SQ-EVTOWNERS:/) {
                my $ownerline = join "", $_, ",*\n";
                print $ownerline;
        }
        else {
                print $_."\n";
        }
 }

__DATA__
BEGIN:VEVENT
UID:sm_cal_evt_20050523T201350Z_example_com
SEQUENCE:0
PRIORITY:5
DTSTAMP:20050523T201350Z
CREATED:20050523T201350Z
LAST-MODIFIED:20050523T201350Z
STATUS:
DTSTART:20050616
SUMMARY:Someguy - PTO
DESCRIPTION:
COMMENT:
DTEND:20050616
X-SQ-EVTDOMAIN:zeffert_com
X-SQ-EVTCREATOR:mikeprice
X-SQ-EVTLASTUPDATOR:someguy
X-SQ-EVTOWNERS:kodak,someguy
X-SQ-EVTREADABLEUSERS:
X-SQ-EVTWRITEABLEUSERS:
X-SQ-EVTPARENTCALENDARS:sm_cal_20050401T193810Z_example_com
END:VEVENT

Wags ;)
> overwriting instead of appending the time value.
> 
> It seems like this should be simple, and because
> of that I'm getting kind of frustrated with this
> -- damn it I should be able to do this.
> 
> I've tried several different things and they all
> overwrite instead of append.
> 
> I've tried:
> 
> s/$/T070000Z\n/;
> my $startline=$ . "T070000Z\n";
> and
> my $startline= join "",$_,"T070000Z\n";
> 
> And get the same results with each of them.
> 
> My code:
> (the last stanza, where I append a ",*" is because
> I'm also trying to convert the data to a public
> calendar too.  But it does the same thing, overwrites
> the beginning of the line instead of appending.)
> 
> #!/usr/bin/perl
> # convert
> # usage: convert <filenames>
> use warnings;
> use strict;
> 
> foreach my $argnum (0 .. $#ARGV){
>         my $inputfile = $ARGV[$argnum];
>         open FILE, '<', $inputfile or die "Cannot open $inputfile:
> $!"; 
> 
>                 while ( <FILE> ) {
>                         chomp $_;
>                         if (/DTSTART:/) {
>                                 my $startline= $_ . "T070000Z\n";
>                                 print $startline;
>                         }
>                         elsif (/DTEND:/) {
>                                 s/$/T170000Z\n/;
>                                 print $_;
>                         }
>                         elsif (/X-SQ-EVTOWNERS:/) {
>                                 my $ownerline = join "", $_, ",*\n"/;
>                                 print $ownerline;
>                         }
>                         else {
>                                 print $_."\n";
>                         }
>                 }
> 
>         close FILE;
> }
> 
> Sample data:
> 
> BEGIN:VEVENT
> UID:sm_cal_evt_20050523T201350Z_example_com
> SEQUENCE:0
> PRIORITY:5
> DTSTAMP:20050523T201350Z
> CREATED:20050523T201350Z
> LAST-MODIFIED:20050523T201350Z
> STATUS:
> DTSTART:20050616
> SUMMARY:Someguy - PTO
> DESCRIPTION:
> COMMENT:
> DTEND:20050616
> X-SQ-EVTDOMAIN:zeffert_com
> X-SQ-EVTCREATOR:mikeprice
> X-SQ-EVTLASTUPDATOR:someguy
> X-SQ-EVTOWNERS:kodak,someguy
> X-SQ-EVTREADABLEUSERS:
> X-SQ-EVTWRITEABLEUSERS:
> X-SQ-EVTPARENTCALENDARS:sm_cal_20050401T193810Z_example_com
> END:VEVENT
> 
> Thanks in advance for any help,
> 
> --J(K)



*******************************************************
This message contains information that is confidential
and proprietary to FedEx Freight or its affiliates.
It is intended only for the recipient named and for
the express purpose(s) described therein.
Any other use is prohibited.
*******************************************************


--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to