473,386 Members | 1,790 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

Python vs Visual Basic

I want to create a program that will ask a user a series of questions
and then generate a Microsoft Word document whose content is dictated
by the answers. I am not a professional programmer, and I understand
only a little about OO programming. Should I

a) stick to -- *gasp* -- Visual Basic to accomplish my goal;

b) use Python, with which I am somewhat familiar, and which I would
prefer to use; or

c) find another hobby because I am only going to end up hurting
myself?

I am aware of the COM tools within Python, but I have not been able to
find documentation that makes much sense. Any pointers to good,
basic-level documentation would be much appreciated.
Jul 18 '05 #1
8 10678
Orange Free wrote:
I want to create a program that will ask a user a series of questions
and then generate a Microsoft Word document whose content is dictated
by the answers. I am not a professional programmer, and I understand
only a little about OO programming. Should I

a) stick to -- *gasp* -- Visual Basic to accomplish my goal;

b) use Python, with which I am somewhat familiar, and which I would
prefer to use; or

c) find another hobby because I am only going to end up hurting
myself?

I am aware of the COM tools within Python, but I have not been able to
find documentation that makes much sense. Any pointers to good,
basic-level documentation would be much appreciated.


I'm sure either language will be fine for the "asking questions"
part. In either case the hard times come in order to generate the
word document -- if you want to drive Microsoft Word for the purpose,
which is marginally easier from VB but not so much as to matter,
you need to learn something about the MS Word object model, which
IS quite rich and complicated.

May I suggest an alternative? Perhaps you might be satisfied with
generating a foo.rtf rather than foo.doc file. Now, the RTF format
isn't much easier or better documented than the DOC format, but it
has the advantage that RTF format files are TEXT. Thus, you could
prepare a "TEMPLATE" RTF file, using recognizable placeholders for
or around the parts of contents you may want to change; the
process of "generating the output" then becomes quite simple:
read the template RTF file, remove placeholders and contained
text around pieces you want to omit, substitute placeholders for
parts you need to substitute, remove all other placeholders only,
emit the resulting text, done. There are many templating systems
you can find on the net for Python, but, really, doing your own
is no biggie either.
Alex

Jul 18 '05 #2
Alex Martelli wrote:

Orange Free wrote:

May I suggest an alternative? Perhaps you might be satisfied with
generating a foo.rtf rather than foo.doc file. Now, the RTF format
isn't much easier or better documented than the DOC format, but it
has the advantage that RTF format files are TEXT.


I just looked at some RTF's, and they contain Ascii character 10's (\n)
not paired with Ascii character 13's (\r). This is not a TEXT
format file according to MS's OS's. If you try to write this data from
Python as a text file, you'll get the \r's inserted automatically, the
contents of the file will change, and who knows what will result.

Still, the rtf format is a good one because other programs more
affordable than MS Word do a reasonably good job of reading and
writing it.

Al
Jul 18 '05 #3

"Orange Free" <or**********@yahoo.ca> wrote in message
news:sl*************************@localhost.localdo main...
I want to create a program that will ask a user a series of questions and then generate a Microsoft Word document whose content is dictated by the answers. I am not a professional programmer, and I understand only a little about OO programming. Should I

a) stick to -- *gasp* -- Visual Basic to accomplish my goal;

b) use Python, with which I am somewhat familiar, and which I would
prefer to use; or

c) find another hobby because I am only going to end up hurting
myself?

I am aware of the COM tools within Python, but I have not been able to find documentation that makes much sense. Any pointers to good,
basic-level documentation would be much appreciated.


Mark Hammond, who wrote the Windows extensions that include the COM
tools, also wrote Python Programming on Win 32. Oreilly's page
http://www.oreilly.com/catalog/pythonwin32/
has a link to the following sample chapter
http://www.oreilly.com/catalog/pytho...pter/ch12.html
Chapter 12 Advanced Python and COM.

Several c.l.py posts have given other examples of COM programming.

TJR
Jul 18 '05 #4
On Mon, 13 Oct 2003 07:56:45 -0700, ac*****@easystreet.com wrote:
Alex Martelli wrote:

Orange Free wrote:

May I suggest an alternative? Perhaps you might be satisfied with
generating a foo.rtf rather than foo.doc file. Now, the RTF format
isn't much easier or better documented than the DOC format, but it
has the advantage that RTF format files are TEXT.


I just looked at some RTF's, and they contain Ascii character 10's (\n)
not paired with Ascii character 13's (\r). This is not a TEXT
format file according to MS's OS's. If you try to write this data from
Python as a text file, you'll get the \r's inserted automatically, the
contents of the file will change, and who knows what will result.


I just looked at an RTF file generated by MS Word. It had standard
MS-DOS line ends.

I believe that RTF doesn't much care which line-end convention you
use. RTF is meant to be a platform independent interchange file, so I
suspect programs importing them are expected to handle all common
conventions and the programs creating them probably use whatever line
end convention is normal on that platform.

Line ends are actually mostly irrelevant in RTF files. Paragraph
breaks, for instance, are specified by the '\par' RTF command. Even if
you put a line break in the middle of a text word, it doesn't seem to
break the word up once imported into Word.

I believe the line end counts as whitespace where RTF requires
whitespace, but that is its only significance. Other than that it is
ignored. Though I haven't double checked, so don't sue me if there are
some cases where that isn't true.

Certainly in the context of Alex Martellis suggestion, the "what will
result" is basically no problems whatsoever. Well, OK, I suppose the
file size will get a few bytes shorter ;-)
--
Steve Horne

steve at ninereeds dot fsnet dot co dot uk
Jul 18 '05 #5
<posted & mailed>

Alex Martelli wrote:
Orange Free wrote:
I want to create a program that will ask a user a series of
questions and then generate a Microsoft Word document whose
content is dictated
by the answers. I am not a professional programmer, and I
understand
only a little about OO programming. Should I

[snip]
May I suggest an alternative? Perhaps you might be satisfied with
generating a foo.rtf rather than foo.doc file. Now, the RTF
format isn't much easier or better documented than the DOC format,
but it
has the advantage that RTF format files are TEXT.


I've read that the latest version of MS Word (or MS Office?) heavily
uses XML. If that's true, perahps you should consider generating
foo.xml that follows the MS Word XML document definition (again, if
there is such a thing).

Here is a quote from Tim Bray:

<quote>When asked how XML-enabling will make a difference in MS
Office, Bray quickly zeroes in on what in his view is the key
differentiator in an XML-enabled Office suite vs the current one.
"The important thing," he explains, "is that Word and Excel (and of
course the new XDocs thing) can export their data as XML without
information loss. It seems Word can also edit arbitrary XML
languages under the control of an XML Schema, but I'm actually more
excited by the notion of Word files also being XML files."</quote>

And here is a link to the complete article:

http://www3.sys-con.com/xml/rotate.cfm

[snip]

Dave

--
Dave Kuhlman
http://www.rexx.com/~dkuhlman
dk******@rexx.com
Jul 18 '05 #6
Stephen Horne wrote:

Certainly in the context of Alex Martellis suggestion, the "what will
result" is basically no problems whatsoever. Well, OK, I suppose the
file size will get a few bytes shorter ;-)


That's good. I've seen some RTF's that end with a binary 0 byte.
That's not text either, but the RTF's I looked at today, probably
created by Abiword or Open Office, don't have it.

Can't RTF's contain arbitrary binary data embedded within (eg images)?
Al
Jul 18 '05 #7
Can't RTF's contain arbitrary binary data embedded within (eg images)?

From the RTF specification:

Pictures
An RTF file can include pictures created with other applications. These
pictures can be in hexadecimal (the default) or binary format.
Jul 18 '05 #8
Dave Kuhlman wrote:
...
questions and then generate a Microsoft Word document whose
... May I suggest an alternative? Perhaps you might be satisfied with
generating a foo.rtf rather than foo.doc file. Now, the RTF
... I've read that the latest version of MS Word (or MS Office?) heavily
uses XML. If that's true, perahps you should consider generating
foo.xml that follows the MS Word XML document definition (again, if


If it's OK to generate a MS Word document file that's only readable
by Windows/XP or however they call their latest version, Dave is most
probably right. In most cases in which I've been asked to generate
Office files, compatibility to previous releases (generally back to
Office'97) was a requirement, expressed or implied (many non-techies don't
realize this requirement isn't _automatically_ satisfied...) so I tend to
assume it -- sorry, I should have made it explicit (but then so should the
OP have, so we're even:-).
Alex

Jul 18 '05 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

13
by: Allison Bailey | last post by:
Hi Folks, I'm a brand new Python programmer, so please point me in the right direction if this is not the best forum for this question.... I would like to open an existing MS Excel spreadsheet...
65
by: Anthony_Barker | last post by:
I have been reading a book about the evolution of the Basic programming language. The author states that Basic - particularly Microsoft's version is full of compromises which crept in along the...
8
by: Will | last post by:
I just discovered Python and looked briefly at one of the tutorials for beginners... It looks a lot like the old Command line Basic... I'm sure it does much more but... 1 - Can you create...
14
by: BOOGIEMAN | last post by:
Well that's it, how do I make Windows Application with Python ??? Is there simple way that works 100% ? How can I rework visual design done in VS 2003 to use it for my python program ?
32
by: Mike Cox | last post by:
As you may or may not know, Microsoft is discontinuing Visual Basic in favor of VB.NET and that means I need to find a new easy programming language. I heard that Python is an interpreted language...
12
by: Rex Eastbourne | last post by:
Hi, I'm interested in running a Python interpreter in Emacs. I have Python extensions for Emacs, and my python menu lists "C-c !" as the command to run the interpreter. Yet when I run it I get...
35
by: John Coleman | last post by:
Greetings, I have a rough classification of languages into 2 classes: Zen languages and tool languages. A tool language is a language that is, well, a *tool* for programming a computer. C is the...
23
by: gord | last post by:
As a complete novice in the study of Python, I am asking myself where this language is superior or better suited than others. For example, all I see in the tutorials are lots of examples of list...
122
by: Edward Diener No Spam | last post by:
The definition of a component model I use below is a class which allows properties, methods, and events in a structured way which can be recognized, usually through some form of introspection...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.