malloc() vs "new" vs HeapAlloc() vs ...

I'm implementing a "doubly" linked list data structure.  My
linked list will contain more than 300,000 nodes, so I'd
like to conserve as much memory as possible.
My list nodes will be C++ structures defined like this :

     typedef struct tagNode
     {
        int    x, y;
        char c;
        NODE *next, *prev;
     } NODE;

Alternatively, I could use a C++ object to implement this
node.  ie :

        class Node
        {
           public:
             int    x, y;
             char c;
             Node *next, *prev;
        };

My questions are :

1) Which node type will require less overhead,
     the "struct" data type, or the C++ class object??
     I'm thinking that C++ objects will have more
     memory overhead, but I'm not certain.

2) What is the best way to allocate these objects at
     runtime??   C++ and Windows provide a large
    selection of  memory allocation routines, ie malloc(),
    "new", HeapAlloc(), etc...  Which method would
    you guys suggest??

 Thanks!

---------
S



 Posted Via Binaries.Net Premium Usenet Newsgroup Services
----------------------------------------------------------
    ** SPEED ** RETENTION ** COMPLETION ** ANONYMITY **
----------------------------------------------------------        
                http://www.binaries.net
0
rman (13)
5/19/2004 1:57:52 AM
vc.mfc 33608 articles. 0 followers. Follow

8 Replies
2359 Views

Similar Articles

[PageSpeed] 7

Shizuka wrote:

>I'm implementing a "doubly" linked list data structure.  My
>linked list will contain more than 300,000 nodes, so I'd
>like to conserve as much memory as possible.
>My list nodes will be C++ structures defined like this :
>
>     typedef struct tagNode
>     {
>        int    x, y;
>        char c;
>        NODE *next, *prev;
>     } NODE;
>
>Alternatively, I could use a C++ object to implement this
>node.  ie :
>
>        class Node
>        {
>           public:
>             int    x, y;
>             char c;
>             Node *next, *prev;
>        };
>
>My questions are :
>
>1) Which node type will require less overhead,
>     the "struct" data type, or the C++ class object??
>     I'm thinking that C++ objects will have more
>     memory overhead, but I'm not certain.

For what you've shown, they're equivalent in terms of memory usage, and you
should use the latter. Note that most people consider it good style to
declare one variable per declaration statement. Note also that the only
difference between a struct and a class is in the default accessibility of
bases and members; structs default to public, while classes default to
private. They're otherwise equivalent.

The former won't compile anyway, but if you must use C, here's how to do it:

     typedef struct Node
     {
        int x;
        int y;
        char c;
        struct Node* next;
        struct Node* prev;
     } Node;

There's no need to use "tagNode" instead of "Node" for the struct tag; it
doesn't serve any useful purpose. Finally, unless you have a good reason to
put the link fields at the end of the struct, you may find advantage in
putting them at the front, especially if you ever write generic list
functions in a C program.

>2) What is the best way to allocate these objects at
>     runtime??   C++ and Windows provide a large
>    selection of  memory allocation routines, ie malloc(),
>    "new", HeapAlloc(), etc...  Which method would
>    you guys suggest??

In C++, you would normally use new. However, with 300,000 nodes, that's an
awful lot of overhead, because each node located on the heap requires some
housekeeping information, probably on the order of 4-8 bytes or so. A
special purpose allocator may be called for, one that manages one or more
big blocks that hold nothing but Nodes, and maintains a free list within
each block. This approach can essentially eliminate the per-object heap
overhead, which will run into megabytes in your case if you use plain old
new or malloc for each and every node. Drawbacks? Well, if a NodeBlock can
hold 1,000 nodes, you can't free it unless none of its nodes are in use.

Then again, 300,000 nodes is a really big list, and those next/prev fields
add up to a couple of megabytes even when using the special block allocator.
Is there any reason you can't use an array, or better yet, a class like
std::vector? Why do you *need* to use a linked list? BTW, if you really do
need to use a list, the STL provides std::list. I don't think VC provides a
special block allocator though, so you'd still have to write your own, but
at least you wouldn't have to write the list manipulation functions.

-- 
Doug Harrison
Microsoft MVP - Visual C++
0
dsh (2498)
5/19/2004 4:19:51 AM
"Doug Harrison [MVP]" <dsh@mvps.org> wrote in message
news:vjmla0d102m8jq045gbvrmmeoac51ofmqs@4ax.com...
> Shizuka wrote:
>
> Then again, 300,000 nodes is a really big list, and those next/prev fields
> add up to a couple of megabytes even when using the special block
allocator.
> Is there any reason you can't use an array, or better yet, a class like
> std::vector? Why do you *need* to use a linked list?
>

  I have a function that generates n-combinations, and it saves them in
  a linked list.  Therefore, my list size will be variable.  It could hold
  hundreds, thousands, or millions of combinations.  I'm using a
  linked list because I'd like to cull out the unwanted combos.
  So you see, my list grows and shrinks at run-time!

>
> Is there any reason you can't use an array?
>

  An array sounds like a good idea for cases when my combo list
  is somewhat smaller.  Is it possible to store C structures in an array
without
  using the "new" operator?  I'll probably use this structure :

         typedef struct _combo_
         {
            BOOL isMarked;
            BYTE combo[5];
         } COMBO;

  So, then I want to create an array like this :

  COMBO all_combos[300000];

  Can I implement something like this??

  Thanks!

  -------
  S



 Posted Via Binaries.Net Premium Usenet Newsgroup Services
----------------------------------------------------------
    ** SPEED ** RETENTION ** COMPLETION ** ANONYMITY **
----------------------------------------------------------        
                http://www.binaries.net
0
rman (13)
5/19/2004 4:55:54 AM
In article <40aabf15$1_1@127.0.0.1>, rman@goodnet.com says...
> I'm implementing a "doubly" linked list data structure.  My
> linked list will contain more than 300,000 nodes, so I'd
> like to conserve as much memory as possible.
> My list nodes will be C++ structures defined like this :
> 
>      typedef struct tagNode
>      {
>         int    x, y;
>         char c;
>         NODE *next, *prev;
>      } NODE;
> 
> Alternatively, I could use a C++ object to implement this
> node.  ie :
> 
>         class Node
>         {
>            public:
>              int    x, y;
>              char c;
>              Node *next, *prev;
>         };
> 
> My questions are :
> 
> 1) Which node type will require less overhead,
>      the "struct" data type, or the C++ class object??

Given that the contents are essentially identical, I'd expect to see 
no difference at all.

> 2) What is the best way to allocate these objects at
>      runtime??   C++ and Windows provide a large
>     selection of  memory allocation routines, ie malloc(),
>     "new", HeapAlloc(), etc...  Which method would
>     you guys suggest??

If you need to save memory, I'd consider modifying the definition a 
bit -- if (for example) you store even a small number of data items 
in each node, you can reduce overhead substantially.

As far as allocation goes, for a large number of small blocks like 
this, new or malloc will probably do quite a bit better than HeapAloc 
and such.  Even so, this is a situation that might easily justify 
writing a custom allocator, which would probably allow you to save 
even more.

-- 
    Later,
    Jerry.

The universe is a figment of its own imagination.
0
jcoffin1 (194)
5/19/2004 6:15:29 AM
See below...
On Tue, 18 May 2004 18:57:52 -0700, "Shizuka" <rman@goodnet.com> wrote:

>I'm implementing a "doubly" linked list data structure.  My
>linked list will contain more than 300,000 nodes, so I'd
>like to conserve as much memory as possible.
****
For one thing, you should arrange the struct so that fields are arranged from widest to
smallest, e.g.,
NODE *next, *prev;
int x,y;
char c;

would be better, because if you added two chars, they would possibly each take 4 bytes
because of alignment. Then you would want to 
#pragma pack(1)
the structure. By arranging widest-to-smallest, you get a very slight performance
improvement for fetching aligned data items

What makes you think 300,000 is a terribly large number? I see 20 bytes here, plus the
usual allocator overheads (8-16 bytes) so you would be using at most 10MB, that is, an
infinitesimal part of your address space, and on most modern machines about 1%-2% of the
physical memory. This is too small to worry about.

On a heavily-loaded system, however, what can kill you is paging traffic caused by having
these structures spread out all over the place. Most LISP systems found that the overhead
of keeping lists in arrays paid for itself by reducing paging overhead caused by creating
a massive working set.

Since the overhead of any allocation is about the same size as your tiny struct, you could
reduce the size by a factor of 2 by using a vector representation. To reduce compaction
time (which could become dominant if you do a lot of insertions or deletions) you could
have a flag saying if an entry was valid, and consider linking all the invalid locations
together to form a fast-allocation list. You could also think of allocating vectors of,
say, 50K elements each, so you don't have massive reallocate-and-copy operations to expand
the vectors; the nice thing about C++ is that you could make this totally transparent to
the application, that is, you could implement [ ] so it looked like you were doing linear
addressing but in the implementation you could jump from segment to segment. What is
appropriate will depend upon the actual usage patterns you need. LISP machines of the
1980s used these techniques to encode lists in arrays, and when an insertion was done, a
segment could be split in two pieces, and the cell linked into the chain, that is, to
insert B into an array AC to get the sequence ABC, where A and C could be hundreds or
thousands of elements, it would be split into A->B->C. Recompaction was the topic of
dozens of papers on LISP implementations.

When in doubt, measure.
					joe

>My list nodes will be C++ structures defined like this :
>
>     typedef struct tagNode
>     {
>        int    x, y;
>        char c;
>        NODE *next, *prev;
>     } NODE;
>
>Alternatively, I could use a C++ object to implement this
>node.  ie :
>
>        class Node
>        {
>           public:
>             int    x, y;
>             char c;
>             Node *next, *prev;
>        };
>
>My questions are :
>
>1) Which node type will require less overhead,
>     the "struct" data type, or the C++ class object??
****
A struct IS a class! Read the C++ standard. The only difference is that it implicitly has
all its members declared public, whereas a class has them implicitly declared as
protected. Otherwise, they are just different syntax for the same thing. For example:

struct Node {
     Node() { next = prev = NULL; }
     void Unlink() { prev->next = next; next->prev = prev; prev = next = NULL; }
     int x, y;
    char c;
    Node * next, *prev;
} Node;

Note that you can put a constructor in a struct, and a method, and if you wanted, virtual
methods. 
****
>     I'm thinking that C++ objects will have more
>     memory overhead, but I'm not certain.
****
No basis for this assumption. 
****
>
>2) What is the best way to allocate these objects at
>     runtime??   C++ and Windows provide a large
>    selection of  memory allocation routines, ie malloc(),
>    "new", HeapAlloc(), etc...  Which method would
>    you guys suggest??
****
new. You ARE using C++, right? So why use an obsolete method (malloc) or a
platform-specific method (heapalloc)? And if you were to add a constructor, it would only
be invoked if you did new. So why waste intellectual effort worrying about how to do
something badly, when a perfectly correct and appropriate method is defined?

By the way, a bit of single-stepping will show that the default 'new' constructor calls
'malloc', so it is obvious that there can be no difference in the space requirements.
****
>
> Thanks!
>
>---------
>S
>
>
>
> Posted Via Binaries.Net Premium Usenet Newsgroup Services
>----------------------------------------------------------
>    ** SPEED ** RETENTION ** COMPLETION ** ANONYMITY **
>----------------------------------------------------------        
>                http://www.binaries.net

Joseph M. Newcomer [MVP]
email: newcomer@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
0
newcomer (15973)
5/19/2004 7:47:07 AM
Shizuka wrote:

>  I have a function that generates n-combinations, and it saves them in
>  a linked list.  Therefore, my list size will be variable.  It could hold
>  hundreds, thousands, or millions of combinations.  I'm using a
>  linked list because I'd like to cull out the unwanted combos.
>  So you see, my list grows and shrinks at run-time!

If you're frequently inserting or deleting items from the middle of the
sequence, a doubly linked list can do that in O(1) time, which could make a
big difference for a huge sequence. That's a good reason to use a list.

>  An array sounds like a good idea for cases when my combo list
>  is somewhat smaller.  Is it possible to store C structures in an array
>without  using the "new" operator?

Of course!

>I'll probably use this structure :
>
>         typedef struct _combo_
>         {
>            BOOL isMarked;
>            BYTE combo[5];
>         } COMBO;

If you must use that struct definition approach, use "typedef struct COMBO".
There's no reason to give the struct tag a different name than the typedef.
In C++, you can simply write:

         struct Combo
         {
            BOOL isMarked;
            BYTE combo[5];
         };

Also, I wouldn't use all caps for the name; all caps are typically
considered reserved for macros. Finally, unless you can recite the subtle
rules concerning identifiers that start with an underscore or contain two
underscores in a row, don't use such identifiers yourself.

>  So, then I want to create an array like this :
>
>  COMBO all_combos[300000];
>
>  Can I implement something like this??

Sure. Large arrays should not be declared as local variables, though. That
one would overflow the default stack allocation of 1 MB. A better approach
is std::vector, e.g.

std::vector<Combo> v(300000);

That gives you a contiguous array of 300000 Combos allocated on the heap.
You said something earlier about "n-combinations". If you know the number of
these before you start generating them, that might argue for std::vector,
but other considerations such as the frequent insertion/deletion from the
middle may trump it. You really just have to look at all the ways you need
to use the data structure before you can decide on the best one.

-- 
Doug Harrison
Microsoft MVP - Visual C++
0
dsh (2498)
5/19/2004 3:00:57 PM
"Joseph M. Newcomer" wrote:
> 
> What makes you think 300,000 is a terribly large number? I see 20 bytes here, plus the
> usual allocator overheads (8-16 bytes) so you would be using at most 10MB, that is, an
> infinitesimal part of your address space, and on most modern machines about 1%-2% of the
> physical memory. This is too small to worry about.

Something to consider is the impact of the debug runtime library. I have
an app that performs maybe 50000 new or delete operations on small
memory
blocks during its processing. For a debug build, the cost of the memory
allocations dwarfs the other processing (because of all the additional
checking), such that it runs around an order of magnitude slower than
a release build.

There are ways around it (don't redefine new as DEBUG_NEW, don't link
to the debug CRT,...) but I preferred to put up with it to maintain
the reassurance of heap integrity checks and leak detection, even if
debugging became painful at times.

Cheers

mark-r

-- 
A banana flies like fruit
Arrow flies like thyme
0
mark2145 (42)
5/19/2004 3:33:21 PM
In article <kosma09fcaulkddi812fr7cte7ps1om6jj@4ax.com>, dsh@mvps.org 
says...

[ ... ]

> If you're frequently inserting or deleting items from the middle of the
> sequence, a doubly linked list can do that in O(1) time, which could make a
> big difference for a huge sequence. That's a good reason to use a list.

Only rarely -- the problem is that before you can do that O(K) 
insertion or deletion, you normally have to do an O(N) traversal to 
get to the right spot in the list.  This makes the overall time to do 
that insertion or deletion in the middle of the sequence O(N).

Just for comparison, a tree provides O(log2 N) traversal, insertion 
and deletion, making the overall time for the insertion or deletion 
in the middle of the sequence O(log2 N).

This makes a huge difference for a big sequence.  That's a good 
reason not to use a list.

[ ... ]
 
> You said something earlier about "n-combinations". If you know the number of
> these before you start generating them, that might argue for std::vector,
> but other considerations such as the frequent insertion/deletion from the
> middle may trump it. You really just have to look at all the ways you need
> to use the data structure before you can decide on the best one.

One possibility I haven't seen mentioned is a dynamic structure (tree 
or list) of deques.  For example, to store 300,000 items, it might 
make sense to limit the size of an individual deque to 1000 items, 
and have up to 300 nodes.  Technically the list traversal remains O
(N), but only involves around 150 operations on average.  Inserting 
an item into an individual node requires moving an average of 250 
items.

That gives an average of about 400 operations to insert an item 
anywhere in 300,000 items, compared to 150,000 operations just to 
find the right spot in the list with one item per node.  Of course, a 
B-tree would do even better, but in this case the number of items is 
sufficiently small that the difference will be primarily theoretical.

This also reduces the pointer overhead considerably -- the exact 
pointer overhead will depend on the implementation of deque, but will 
probably be under 1% -- a considerable improvement over the 50% (or 
so) for the a linked list with one item per node.

-- 
    Later,
    Jerry.

The universe is a figment of its own imagination.
0
jcoffin1 (194)
5/20/2004 12:33:44 AM
And a map can do O(k) for k a constant; under ideal  conditions (rarely realized) it can
be O(1), but your analysis of the search time is accurate.

At one time, when I needed O(k) for a small constant k search of a long list, I did it by
creating a side vector that was sorted in the same order as the list (the qsort call
actually used pointers in the side vector and compared the same fields that were used for
the insertion). I used bsearch to search the side vector, O(log n), but due to space
limitations on the embedded system I could not have a complete represetation, so I did one
side vector entry for every m list entries (m = 10 in the initial version), so a lookup
took O(log n) to get into the list, and O(5) to find the correct element. I kept track of
the number of insertions, and when m got "too large" in "too many places" (this was about
15 years ago, so I forget the exact numbers I used) I recomputed the side vector so it
went back to m=10. I was then able to perform lookups, insertions, etc. in hard realtime,
where the O(n) search was way out of line.

Performance doesn't matter until it matters. Then it matters a lot. 

In this case, I reduced O(n) (for n > 1000) to O(log n) + O(5), or about 17 probes.

In another case, I spent some time building what is called a "perfect hash", which is a
CMap-type of hash, where you tweak the hash parameters to minimize conflicts in the hash
buckets, resulting in ideally O(1) to do any lookup. We got O(1.2) which was close enough,
for most cases. A few bad cases the best we could do was O(1.8), and we never saw anything
below O(1.1), even under the best of conditions. But we didn't need to spend more time
optimizing. 

The other suggestions you make are also quite interesting, and would optimize various
costs in nice ways.

Bottom line: there is no single "right" solution, but there is a fascinating large space
to play in.

Note here that both this response and my above notes tend to suggest that (a) space is
probably irrelevant, (b) time matters and (c) composition of known techniques can produce
solutions that can be orders of magnitude better any one technique by itself can produce.
				joe


On Wed, 19 May 2004 18:33:44 -0600, Jerry Coffin <jcoffin@taeus.us> wrote:

>In article <kosma09fcaulkddi812fr7cte7ps1om6jj@4ax.com>, dsh@mvps.org 
>says...
>
>[ ... ]
>
>> If you're frequently inserting or deleting items from the middle of the
>> sequence, a doubly linked list can do that in O(1) time, which could make a
>> big difference for a huge sequence. That's a good reason to use a list.
>
>Only rarely -- the problem is that before you can do that O(K) 
>insertion or deletion, you normally have to do an O(N) traversal to 
>get to the right spot in the list.  This makes the overall time to do 
>that insertion or deletion in the middle of the sequence O(N).
>
>Just for comparison, a tree provides O(log2 N) traversal, insertion 
>and deletion, making the overall time for the insertion or deletion 
>in the middle of the sequence O(log2 N).
>
>This makes a huge difference for a big sequence.  That's a good 
>reason not to use a list.
>
>[ ... ]
> 
>> You said something earlier about "n-combinations". If you know the number of
>> these before you start generating them, that might argue for std::vector,
>> but other considerations such as the frequent insertion/deletion from the
>> middle may trump it. You really just have to look at all the ways you need
>> to use the data structure before you can decide on the best one.
>
>One possibility I haven't seen mentioned is a dynamic structure (tree 
>or list) of deques.  For example, to store 300,000 items, it might 
>make sense to limit the size of an individual deque to 1000 items, 
>and have up to 300 nodes.  Technically the list traversal remains O
>(N), but only involves around 150 operations on average.  Inserting 
>an item into an individual node requires moving an average of 250 
>items.
>
>That gives an average of about 400 operations to insert an item 
>anywhere in 300,000 items, compared to 150,000 operations just to 
>find the right spot in the list with one item per node.  Of course, a 
>B-tree would do even better, but in this case the number of items is 
>sufficiently small that the difference will be primarily theoretical.
>
>This also reduces the pointer overhead considerably -- the exact 
>pointer overhead will depend on the implementation of deque, but will 
>probably be under 1% -- a considerable improvement over the 50% (or 
>so) for the a linked list with one item per node.

Joseph M. Newcomer [MVP]
email: newcomer@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
0
newcomer (15973)
5/20/2004 5:06:48 AM
Reply:

Similar Artilces:

Images do not display in signature file for new emails
I created a SIGNATURE file to automatically be included in all NEW EMAILS I create. I have an IMAGE (Clipart) that I have embedded in the signature, but it will not display. I AM able to see images in my email. I can MANUALLY insert the image and it displays fine. When I look at the properties for the placeholder for where the image should display (there is a rectangular box with a RED X), Outlook is trying to load the image from a folder in the Documents and Settings/"user name"/Application Data/Microsoft/Signatures//"user name"_files folder. The file IS THERE,...

Adding a new user
I'm trying to add a new user to the network with e-mail access. I haven't done this is many years. I copy a previous user so that he will enherit the same permissions and settings but the e-mail addresses do not change over. I can't seem to create a mailbox for him even though Exchange says that it does. Can anyone help me???? Right click on the user, Exchange Tasks. Create mailbox. If that option isn't there then the mailbox already exists but the RUS hasn't run so you can't see it. Either manually run the RUS or use your outlook to send an email to the SMTP...

Our new website
This website is for artist, freelancers, programmers, writers, translators. All who is looking for work. If you are a skilled professional use page "Add profile" to create your profile. Also this website is for those who is looking for skilled professional. If you are looking for a professional use page "Projects" to post a project. www.ewho.us ...

Installing to new computer
I currently use MS 2001 Aust version with Windows 98. I have just brought a new computer with windows 2000 and the latest internet explorer and Nortons anti virus systemworks. Can someone please give me some advise, or point me to a FAQ, on how to re install MS 2001 so that I don't run into the common problems that come up in these posts. For instance, Do I install MS 2001 before or after Norton and internet explorer after installing the program do I insert my data using the backup file or a copy of the .mny file? Should I run the salvage on the existing file before copying? Should...

1 new Airport + 1 License + 2 Computers with Office = Trouble
OK, here is my problem. I have one G3 imac, one g4 imac and one g4 laptop computer. i put my office for mac on the g4 imac and g4 laptop computers. as far as i can tell this is not a problem, hence the note below off of the microsoft website. "The license agreement for Office v. X allows you to install your licensed copy of Office on a single computer, such as a desktop computer or workstation, and allows you, as the primary user of such computer, to install a second copy on your portable computer, such as a laptop, for your own personal use. The license agreement does not allow you to ...

Budget
One of my major gripes about Money and its inclusion of scheduled bills is that fact that revising an existing bill has a retrospective effect. I think I've just figured out how to overcome that. I combined Bill Woods' comments about putting a termination date in all scheduled bills, with my previous knowledge that new scheduled bills affects only future budget months. What I've determined is that, if a bill changes for the future, don't change the existing bill. Put a termination date in it, then create a new bill containing the new deposit/payment information. If you l...

New Email alerts not showing up
Hi, When a new email arrives I am not able to see a notification. I went to Tools->Options->Email Options -> Advanced Options and everything is set correctly. Inspite of this I am unable to see the notification. It would be great if anybody could help. Thanking you, Adi. Assuming this is Office 2003: Right click on the Task Bar Click on Properties, Customize Scroll down to Past Items On the envelope icon, change "Hide When Inactive" to "Always Show". >-----Original Message----- >Hi, > When a new email arrives I am not able to see a notifica...

No New Workbook Annoyance
Hello, I have this problem where after running my macro, Excel no longer loads a new workbook automatically; the user has to either press Ctrl +N or go to File->New... It's a minor annoyance, but I was hoping to have my macro not need the user to do this everytime they open up Excel. The macro code is shown below: Sub AutoExec() Dim file_Check As Object Set file_Check = CreateObject("Scripting.FileSystemObject") If file_Check.FileExists(Selection.Application.Path & "\XLSTART \Excel2Wiki.xls") = False Then ActiveWorkbook.SaveAs Filename:=...

New migrated users dont have Exchange attributes
Hi All, After Exchange 2k3 SP1 installation user migrated with Active Directory Migration Tool don´t receive Exchange 2k3 attributes. Users migrated before SP1 installation, has these attributes. Any suggestion ? Very thank´s ...

Outlook 2007 (RTM) New Mail Notification still not fixed?
I've searched the groups and found people experiencing problems with the new mail notification in Outlook 2007. The main problem is that the mail icon in the system tray will only appear when new mail arrives in the DEFAULT store inbox and stays there. If a rule moves the email to a different folder, no mail icon will show up, nor will it show up if email is delivered to an INBOX, but one that is not the default store (i.e. when using an exchange account and a POP account). So....I'm using the final Enterprise version, and the problem still exists. Rules can be created to show the...

Why won't my AutoShape defaults apply to new shapes?
I am following the directions to set a new Autoshape with yellow fill, black line, 4" wide, and wrapped text. But when I create a new shape (the square on the drawing toolbar) the yellow fill and and black line apply but the width and text wrap do not. In other words my new shape is standard 1" x 1" with with no text wrap. AFAIK there's no way to set a new default size (except maybe with an AddIn) In 2007 the word wrap default can be set but not in earlier versions. -- john ATSIGN PPTAlchemy.co.uk Free PPT Hints, Tips and Tutorials http://www.ppta...

Exported PST issues
I have been trying to import an 'exported pst' using the export function (not copying the pst as I did not know that should be the way to back them up). I have been getting the 'not personal folders file' message regardless of all the help I have been getting from this newsgroup (thank you all). This includes the repair tool, using file open, using file import pst, etc... All into either Outlook 2002 and 2003. I went back through my years of exported .pst's and found that my oldest version (the client was probably Office 2002 (XP) or earlier), which is not muc...

ann i got my new phone and i scratched my balls.
Now who the FUCK cares? ...

how to scan an image into new email message.
anyone know how to scan an image directly into a new outlook email as an attachment, with out saving the image to a disk manualy? -- 5khzgjf9e001@sneakemail.com The scanning software may have a "scan to email" function. James <See.My.Sig@The.Bottom.com> wrote: > anyone know how to scan an image directly into a new outlook email as > an attachment, with out saving the image to a disk manualy? Nothing can be on your computer without being on your disk, just like you cannot have a thought without it residing in your brain. -- Brian Tillman Brian Tillman wr...

new hosting for me
Ill have my website back up tonight. I had to get new hosting . I got it at http://isphost.org they had my site back online fast. Thanks Ted ...

Pulling Specific Rows from a Table onto a New Sheet
I have a table consisting of multiple rows and columns on a sheet and I need to break out certain rows depending on a specific value in the column into a new sheet. For example, I have a list with multiple "companies", "contract numbers", "contract dates", "contract amounts", "payment dates", etc... I need to break out all the rows of a specific company into another sheet. On that sheet I need to break it out even further by "contract number" to show what has been paid and what has not (which is in the original table). I would try t...

GnuPG with New Version of Outlook 10
Outlook doesn't, or at least didn't have native support for PGP/GPG. There were plug-ins that alleviated this problem however. I was wondering if anyone here had used GnuPG <http://gpg4win.org/>, specifically the GpgOL plug-in with Outlook 10? GPG4Win use to work quite well with Outlook and I was interested if that camaraderie will continue. -- Carmel Never forget: 2 + 2 = 5 for extremely large values of 2. Try it and let us know how well it works. :) As an FYI - it won't work with the 64bit version of Outlook 2010. Add-ins will need to be recompiled i...

New versions of outlook client and auto replies
I am trying to get our IT guy to put an auto reply on messages with attachments that come in to one specific email address. We use an Exchange Server. He says that the newer versions of outlook client only send one reply a week to avoid a looping problem. Does anyone know if this is correct or is he just trying to avoid putting on a autoreply as he is afraid of that looping effect. (auto reply to auto reply to auto reply etc.) Thanks Wendy Outlook 2003 has a rule that can be setup to not Reply to Auto Reply Messages "Wendy" wrote: > > I am trying to get our IT guy to pu...

referencing cell contents, after deleting and shifting new contents into cell
Greetings all, on Sheet 2 of my workbook I reference some cells from Sheet 1. ie. "=Sheet1!D3" I have Sheet1 setup as a schedule. Since sheet1 is a schedule, its columns are days of the week.. and I constantly add days to the end of it (Columns F,G,H,I..etc..etc). When today is over, I delete columns A and B, and columns C and D shift over and become the new A and B. However on sheet 2, the reference is lost even though new values are shifted over into Columns A & B. Is there a way for the Sheet2 to keep the referencing A and B from sheet1 once the columns in Sheet1 are ...

Can't "Save As" a new filename
Hi. I'm using MSOffice97 on a WindowsXP computer. I can't create a new workbook by using the File/SaveAs menu command. When I try, the error message says [paraphrased]: idmxl8.xla could not be found. Check the spelling & the path, etc. True -- Explorer can't find that file name either on this computer or on the old one, where "SaveAs" still works. I've tried uninstalling and re-installing both Excel and all of Office several times, to no avail. After using Excel for so many years, I use it for practically everything, and the only work-around I've ...

new 2003 server/exchange owa issue
So I built a new 2003 server, and installed exchange. Moved everyone over to the new exchange server and all is well. When I try accessing the new server via I.E. I get nothing. When I access the old server via I.E. I'm prompted to login , and all is good. How do I get the new server to accept OWA requests? My last step... thanks! Sean Try this: http://support.microsoft.com/kb/327843 "Sean Branam" <sbranam@coronado.k12.ca.us> wrote in message news:u1SiPZ6OFHA.2748@TK2MSFTNGP09.phx.gbl... > So I built a new 2003 server, and installed exchange. > Moved everyone...

Globally creating new personal folders into exchange mailboxes
Hello All, Is there a setting or GPO of some sort to pull down and create a new folder on all exchange users? So that when they open up their outlook/OWA they will have an extra folder(ie. spam) in addition to their regular default folders such as Inbox, Drafts..etc. Thanks in advance, ...

No more new font maybe applied in this workbook
How do i resolve this problem. [No more new font maybe applied in this workbook] Anyone can advise. Thank you Perhaps these will help: XL2000: Error Copying Worksheets Containing Charts http://support.microsoft.com/default.aspx?scid=KB;en-us;q215573 XL97: How to Turn Off Automatic Font Scaling in All Charts http://support.microsoft.com/default.aspx?scid=KB;en-us;q292263 In article <0fab01c3fb68$07e7fb00$a401280a@phx.gbl>, "HM" <areillys@pacific.net.sg> wrote: > How do i resolve this problem. > > [No more new font maybe applied in th...

"display a notification message when new mail arrives" checkbox resets
Hi there, I have an annoying little problem here. I have a new windows XP PC running Office XP (2002). In MS Outlook I have set my "display a notification message when new mail arrives" setting, but every time I exit and reenter the application this checkbox is no longer marked. It gets reset for some reason. I have downloaded all patches from Microsoft's site, but to no avail. Any suggestions are appreciates. Thanks in advance. Mike ...

Change Password
All, We are in the process of implementing Great Plain and we setup user with password to change after initial login. We are getting the following error: "The password change failed for an unknown reason. Enter a different password or contact your system administrator" I deleted the password and recreated it and still with the same problem. Any help would be appreciated. Jamal ------=_NextPart_0001_314A02C1 Content-Type: text/plain Content-Transfer-Encoding: 7bit Hello, Thanks for posting to Newsgroups. I suspect that your using Dynamics GP 9.0 and have moved SQL serv...