Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: Outlook/Palm/PocketMirror users, take note...

by perlmoth (Hermit)
on Jul 08, 2003 at 18:15 UTC ( #272371=note: print w/ replies, xml ) Need Help??


in reply to Outlook/Palm/PocketMirror users, take note...

I have made some changes to help Palm III owners. The Palm III has a size limit on Memo files of 4 Kb. The following code will chop up large files into chunks of 4 Kb and create a separate Outlook note for each chunk, giving each a part number:


#!/usr/bin/perl -w # Takes the text file(s) specified on the command line and puts them # into Outlook notes. If you have a Palm pilot and use Chapura's # PocketMirror, then Outlook notes get copied into Palm memos when # you synchronise. use strict; use diagnostics; use Win32::OLE; use Win32::OLE::Const; my $Outlook = get_outlook_handle(); # Outlook OLE constants my $olc = Win32::OLE::Const->Load($Outlook); # We have to expand all wild-cards, because the Windows command shell # doesn't. We only want plain, text files, and we want to read them # whole, not a line at a time. @ARGV = map { glob } @ARGV; @ARGV = grep { -f && -T } @ARGV; undef $/; while (<>) { # Code to chop up input files into 4000 byte blocks. Required # because of the Palm III's 4 Kb memo limit. if (length >= 4000) { my $counter = 1; my @part = /.{1,4000}/gs; foreach (@part) { my $title = "$ARGV part $counter"; create_outlook_note($title, $_); $counter++; } } else { create_outlook_note($ARGV, $_); } } sub get_outlook_handle { my $Outlook; # Make sure we are on windows die "This script is only good for Windows." unless ($^O eq "MSWin32" +); # Make sure we have Outlook, and that it is running. Chicken out if # either of these is not the case. eval {$Outlook = Win32::OLE->GetActiveObject('Outlook.Application')} +; die "Outlook not installed." if $@; die "Outlook needs to be running." unless defined $Outlook; return $Outlook; } # Create an Outlook note, putting the title on the first line of the # note sub create_outlook_note { my ($title, $body) = @_; # New note my $note = $Outlook->CreateItem($olc->{olNoteItem}); $note->{Body} = "$title\n$body"; # Optional note properties. $note->{Categories} = "Business"; $note->{Width} = 800; $note->{Height} = 600; $note->{Top} = 20; $note->{Left} = 20; # Close and save note. $note->close($olc->{olSave}); }



Also, using the following Emacs lisp code in the _emacs file will call the program making sure the current buffer file name is put in the first line of the Outlook note:

;; Make F9 key copy the entire buffer to a new MS Outlook note (global-set-key [f9] ' copy-buffer-to-outlook-note) ; Copy entire buffer to MS Outlook note (defun copy-buffer-to-outlook-note () "Copy current buffer to MS Outlook note." (interactive) (shell-command (format "%s %s" "perl c:/perl/txt2note.pl" buffer-fi +le-name)))


Comment on Re: Outlook/Palm/PocketMirror users, take note...
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://272371]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (6)
As of 2015-07-03 18:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (55 votes), past polls