Break Notepad to array

I have a notebook in which there are 100 line and each ending with CR and LF character. I need to insert each record in a table. I tried, but it's time consuming

Text is as

$GPRMC, 120442.000, A, N - 1257.4713, 07744.6606, E, 0.00, 84,48, 211115, A * 5TH
$GPRMC, 120442.000, A, N - 1457.4713, 07744.6606, E, 0.00, 84,48, 211115, A * 58
$GPRMC, 120442.000, A, N - 1457.4713, 07744.6606, E, 0.00, 84,48, 211115, A * 58
$GPRMC, 120442.000, A, N - 1457.4713, 07744.6606, E, 0.00, 84,48, 211115, A * 58
$GPRMC, 120442.000, A, N - 1257.4713, 07744.6606, E, 0.00, 84,48, 211115, A * 5TH
$GPRMC, 120442.000, A, N - 1257.4713, 07744.6606, E, 0.00, 84,48, 211115, A * 58

Each line I need to insert into a table

Text file attached.

Ranjeet_Singh wrote:

I need to insert each record in a table.

What is a "record"? If each line is a record, use "read text file" and configure it to 'read the lines' (right-click...)

Tags: NI Software

Similar Questions

  • RAID 0 disk replacement

    I have a pavilion of office e9280t.

    If I have to replace the RAID 0 drives in case of failure, which is currently 600 GB total together what type or size to replace by?

    Can take any size or it is intended only for about 600 GB?

    I know that readers should have the same capacity and type or duplicates of each other, but what about the size limit?

    The INTEL driver will automatically take care of everything, including the RAID 0 configuration, formatting, and reject if the size is beyond it is engineered capcacity?

    KnuckleHead wrote: I have a desktop e9280t Pavilion. If I have to replace the RAID 0 drives in case of failure, which is currently 600 GB total together what type or size to replace by? Can take any size or it is intended only for about 600 GB? I know that readers should have the same capacity and type or duplicates of each other, but what about the size limit? The INTEL driver will automatically take care of everything, including the RAID 0 configuration, formatting, and reject if the size is beyond it is engineered capcacity?

    Hello, KnuckleHead, here is the link to the specifications for your system. It shows that this system will allow a Raid array with these disk configurations.

    1 TB (2 x 500) 7200 RPM RAID 0 SATA 3 G (3.0 Gb/s)

     

    Also, it shows this configuration but doesn't mention Raid0, so do not know if this configuration is supported for a table, Raid0, but I would think so.

    2 TB (2 x 1 TB) 7200 RPM SATA 3 G (3.0 Gb/s)

    You should be aware that you must set up the Raid0 array before you can install the operating system.

    You can do this after you have installed two new hard drives, by starting the system and after that the HP Logo screen disappears, press the ctrl key and the key at the same time to enter the Intel Matrix Raid utility. Once there, you select the desired Raid Matrix type, in your case, Raid0, then select two drives for the Raid0 configuration table, save the settings and exit.

    The system should reboot and with the operating system disc in the optical drive, the system should boot the disk to the operating system for a new installation. During the installation process, you will see a screen that ask you where you want to install the operating system. You should see two partitions. The first partition is a partition of 100 MB Windows 7 creates for the Setup program and other files. Let this partion as what and select the larger partition for operating system installation.

    The operating system should proceed normally. You must back up all the data on the original Raid0 array since when you break a Raid array, you will lose all data on the hard drives. You will also lose your recovery restore partition that is located on the original Raid0 array.

    You also need a copy of Windows 7 from any disk from HP that have been created on the original array Raid0 recovery no stay would be valid for the new Raid0 array.

    This is possible, but is not for the faint of heart and you need a new drive of the Windows 7 operating system, unless you have the CV provided the upgrade disc. HP Windows 7 upgrade disk can be used as a disk of the new facility. You would need to enter the product key and activate the operating system after the installation.

  • V9 Acrobat JavaScript Alert Box - possible to add space or line break after each element of the array?

    I have a Document level Javascript used to identify empty mandatory fields and fires on shares of paper, print and save. The script identifies the required fields empty, counties and outputs of an alert box indicating the number of required fields empty and lists the name of the ToolTip fields. The script identifies the required fields with an asterisk at the end of each balloon.

    Is my question possible to add a space or a line break after the decimal point for each item?

    Here is a picture of the exit where the items listed are all grouped together.

    Alert box array items need space or line break.jpg

    Here is the code:

    function validateFields()

    {

    a counter for the number of empty fields

    var = 0 flg

    count all the fields of the form

    var n = this.numFields

    create a table to contain the names of the required fields

    If they are determined to be empty

    fArr var = new Array();

    Browse all fields and look for ones that are required

    all fields that have a ' *' in their ToolTip are required

    for (var i = 0; i < n; i ++) {}

    var fn = this.getNthFieldName (i);

    var f = this.getField (fn);

    ToolTip is the property of 'userName' of the fields\;

    TT = f.userName var

    test the ' *';

    If (TT. IndexOf('*')

    ! =-1 & & f.value == f.defaultValue) {}

    increment the counter of empty fields;

    FLG ++;

    Add the fields username (ToolTip) to the list of the names of fields empty.

    fArr [fArr.length] = tt;

    }

    }

    now display a message if there are blank fields

    if(FLG>0) {}

    App.Alert ("there are '+ flg + areas that require a value\n\n' + fArr, 3")

    }

    else {}

    This.Print ();

    }

    }

    The required property is very easy to use. It's just a Boolean (true/false) value, then you can use it like this in your code. Instead of this line:

    If (tt.indexOf('*')! =-1 & f.value == f.defaultValue) {}

    Use this:

    If (f.required == true & f.value == f.defaultValue) {}

  • Page with dynamic array breaks

    Hello!

    We built a LiveCycle process that get us data from an XML file and generate the PDF output of CA.

    However, although the elements are generated correctly in the table, only the first 20 records or more are included, generatin just a single page.

    There are about 200 cases in the XML file - we can not just to find how to set the XDP in LC designer so that we get a MultiPage PDF, containing all the records in 200 instead of only 20.

    We use a dynamic table by the following set up:

    Pagination: Following precedent

    On the binding tab, we checked the row to repeat for each item of data

    This table has been inserted using insert a table into the main menu, the wizard and it is inserted in a subform.

    All these configuration options are applied to the table row element.

    Any ideas?

    Thank you!

    Marcos

    Good,

    Then take a look at the object > subform for the page, subforms and the table. At the bottom of the hierarchy of the table, you have to "allow page breaks in content" checked.

    Hope that helps,

    Niall

    Ensure the dynamics

  • read several off file lvm 2D arrays

    Hello

    for the acquisition of my data, I join three tables 1 d in a 2D array. I then record several of these paintings in a file of lvm 2D, until she is larger than 500 KB. Here, I got her 'write to measure' express VI. When I'm reading the data, I have a problem:

    "the measure file read" express vi, seems to give only the first 2D table, which is located in the file! Each 2D table contains 75 values for each channel. I checked the content by drag / drop the file in Excel and Notepad. I see then all the tables, I saved in the file and not just the first. I tried to adjust the parameters in the "read the measurement file" VI as well, but nothing seems to help.

    I have attached a sample file of lvm and my VI of reading.

    It would be nice if someone could help it

    Simon

    Hello

    I don't really know which way you want to read the data.

    Do the different 2D picture belong together, which means that table 2 is just a continuation of the first?
    If this is the case, you can select 'Segment Headers' > 'No headers' in VI 'Write to file measure. "

    Then, select "File as read": read generic text file and adjust settings accordingly.

    Use the function 'Now read file' to test the settings.

    In addition, you may need to modify the indexes for the table to Index in your VI.

    However, this method has the obvious drawback of losing the header information.

    Alternatively, you can save the data in a PDM file, instead of a file of lvm. Here the headers are treated better.

    Select 'Header only' in the writing to the file of the measurement. When your then read the data, it will automatically read all the data.
    And you keep at least the first header information.

    If each 2D table should be read separately, you must use a different approach. Please let me know, if this is the case and that I will explain later.

    Kind regards

    Corinne Doppmann

    Technical sales engineer
    National Instruments

  • Break down and an object of a list/table of the index reference

    TestStand using I'm trying to figure out how to break down and an object reference to a table/list of the index. My sequence is attached. I received a few tips of the 3rd developer with VB code, what should be done. I'm having a problem translating in TestStand. VB code follows the description.

    I use .NET to run a 3rd party software using a sequence of imagery system and run 3rd party software tests. In TestStand, my "GetCurrentTests" approach, when an object for a specific sequence reference, returns a reference of type object ' object reference(system.collections.generic.list'1[Radiant.Imaging.TSEngine.ICommand]); expected return a list of tests in the sequence of part 3.

    Next steps "GetCurrentPattern" needs to index through this list in order to get and then define and display the display model of the specific test to start the specific test. This next step class is RadiantImaging.TSEngine.ICommand (interface) and returns an object reference (radiantImaging.PatternGenerator.Patterns.Patternbase): a reference to the model.

    What I'm confused about is decaying of the 'object reference(system.collections.generic.list'1[Radiant.Imaging.TSEngine.ICommand])' return value in order to provide the? indexed reference object for "Model of GetCurrent" step.

    VB code is provided below for me that shows how it can be done in VB. I'm not familiar enough with TestStand, .NET and VB to break down this >

    Any suggestions or advice is greatly appreciated.

    VB code:

    Public Class Form1

    Private PatternGenerator.IPatternGenerator MPG

    Private WithEvents mTestSequence as TSEngine.TestSequence Private Sub InitializeButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InitializeButton.Click

    TSEngine.Settings.MeasurementSource = TSEngine.MeasurementSources.Camera

    TSEngine.Settings.SaveMeasurementsToDatabase = False

    TSEngine.Settings.SaveResultsToDatabase = True

    TSEngine.Settings.SerialNumberAllowDuplicates = True

    mPG = TSEngine.CurrentPatternGenerator

    TSEngine.Initialize ("C:\PM 4616197.rdb Calibration")

    TSEngine.Databasename = "C:\default Alpha_PEK_Date.pts".

    TSEngine.InitializeCamera)

    End Sub

    Private Sub RunButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RunButton.Click

    mTestSequence = New TSEngine.TestSequence (1)

    Dim result as TSEngine.Tests.ResultEnum

    For i As Integer = 0 To mTestSequence.NumberTests

    Dim p As PatternGenerator.Patterns.PatternBase

    p = mTestSequence.CommandList (i). Model

    p.PatternGenerator = mi/gal

    mPG.MonitorType = PatternGenerator.Monitor.PrimaryPartial

    ' p.PatternGenerator.MonitorType = PatternGenerator.Monitor.PrimaryPartial

    p.PatternGenerator = mi/gal

    p.Show)

    result = mTestSequence.RunSingleTest (i)

    Dim results As List (Of TSEngine.IResult) = mTestSequence.CommandList (i). Result

    Results (i). Name

    mTestSequence.CommandList (i). ResultMeasurement.

    Next

    End Sub

    Technical support solution: "I spoke with R & D and they informed me that the type of data in question is a generic class that is not supported with the .NET adapter. You can change the data type of a code module to another using a data type of object reference, but you can not manipulate the generic classes within TestStand.

    "" "" You can find this information in aid of TestStand under NI TestStand environment reference help"TestStand adapters" adapters for .NET ' adapter .NET '.NET called settings ' settings not supported. Here, the solution would be to ask a code module that performs this task for you. »

    Change the settings for call .NET

    Parameters not supported

    The TestStand .NET adapter cannot call methods and properties that have arrays as parameters in staircase or return types and does not support structures that have shredded the members of the group.

    In addition, the .NET adapter does not support creating or call methods on generic classes.

    My solution was to implement the foregoing in VB.NET from TestStand .NET adapter does not support .NET generic data types.

  • How to get an array of integers to user in the User Interface

    Hi all. I'm not a very experienced user of the CVI. I have almost exclusively coding in LabVIEW but have a client who wants all of their work in the CVI.

    I've been very fruitful so far (set up a Modbus API from scratch that supports all types of connection) but am confused on how I can get the integer multiples of the user without limiting the number of integers I can get. Essentially, I need to be able to get an array of integers to the user.

    General information, I am building a user interface to test my Modbus API. There are Modbus functions to 'Write multiple registers' and 'write multiple coils. I want the user to be able to enter all the values they want to write in one command.

    What is the best way to get an array of integers through the user interface?

    The easiest way is probably to allow user input in a textbox control numbers: items can be separated by spaces, commas, or even a line break (using ctrl + Enter). You will then need to extract the string from the TextBox and analyzed for numeric values using any non-digit character as a separator: strspn (string, '0123456789'); can be used for this.

    More complex, another possibility is to use a table control to receive user input: you Dresses an empty table with a reasonable number of roews, or you need some codes to add new lines as long as the user fills all those already existing. On the other hand, it will be easier since data recovery in a simple statement, you will all return values: GetTableCellRangeVals (panelHandle, PANEL_TABLE, VAL_TABLE_COLUMN_RANGE (1), table, VAL_COLUMN_MAJOR);

  • Break a matrix into pieces

    Hello.

    I was wondering, what would be the best way to break an array of large column into pieces of a specific size?


  • ASC file in 2D array of Boolean

    Hey guys,.

    I was wondering if there is a method to download a *. CSA or *. DAT file to convert it to an array of Boolean 2D.

    For example, I would create a .asc or .dat file composed of strings using MATLAB to generate

    1 1 0 1 1 0 1 1

    0 1 0 0 1 0 0 1

    1 0 0 1 0 0 1 0

    and it would be to convert the string to an array of Boolean 2D of

    T T F T T F T T

    F T F F T F F T

    T F F T F F T F

    while I can ultimately use it to create a digital waveform graph changed like this:

    The goal is because I use the sampling frequencies of 0.1 second interval that spans 2-5 minutes.

    So to summarize:

    1. download a *. CSA or *. DAT file with a 2-D array of strings

    2 convert the file to create a Boolean matrix 2D to use create digital waveforms

    Any help will be appreciated. I know it's not much but I downloaded the table 2D to waveform *.VI for testing purposes.

    sdkpark wrote:

    However, when I tried first, he doesn't know how to separate each column in the *.asc file

    1 0 0 1 0 0

    0 1 1 0 1 1

    It turns out only to read the first column

    Please attach your VI instead of an empty image of sense.

    Reading spreadsheet file will read all the data if used 2D correctly. The defined delimiter is separating the elements and line break between the lines. For example, if you do not wire the delimiter, it will assume "tab" and that a single value is read by line if it's actually a space character. Try a delimiter of the 'space '.

  • Add line last 2d array index

    OK, I m already curse this bloody language for its illusion of "simple".

    I m doing the EASIER operation of any language: filling in a line down to a 2D array.  I have just can´t find a way to do it.

    I m create a table 1 d with data of type string resulting... then I try to add an array of existing channels and this error pops up when I use the function "Insert into array.

    OF COURSE I KNOW THAT THE DIMENSIONS ARE DIFFERENT!, DUH? PRECISELY! A 1 D TABLE SHOULD BE THE LINE OF A 2D ARRAY.

    HOW ON EARTH AM I SUPPOSED TO ADD A LINE OF THE SET DOWN TO A 2D ARRAY?

    Sorry, this kind of stupidity just pissing me off the coast.

    Thanks in advance for any help.

    Pedro

    pguillem wrote:

    OK, I m already curse this bloody language for its illusion of "simple".

    I m doing the EASIER operation of any language: filling in a line down to a 2D array.

    Let me guess - you want to take the 2D HISTORIAL table and add the result to the end of this. This isn't what you are doing. You take a 1 d table and try to write it in a 2D array, that's why it breaks.

    The important point to understand here, that's the basic concepts of the data flows, which should be explained in the first LV tutorials - functions operate on the data that you give them, and controls on the front panel are not magical data stores. They hold everything you put into it. If what you want to do, that's what I described, you will have to do it exactly the same way you would in c: A = A + B, where I am the substitution of + can be added. In this case, you need to read the value of the indicator, add to this value, and then rewrite it. You can do this by creating a local variable of indicator (and remember that local variables are not the same as C.) You can use them in the same way, but their main use is to provide points of secondary access to the controls on the front panel. If you use them to store data, you will find probably yourself written race condition critical, because LV tends to be much more parallel to C and they have not the Atomic protections for sequences of reading / writing).

    LV is relatively simple. If you suffer with it, I suppose you're one of the people who think much more easily in the field of this text according to use of languages. If this is the case, you might not enjoy yourself. In all cases, it must not to throw everything you know already in terms of LV, because this knowledge do not always translate correctly. You need to take, if you have it, is ordered practical programming, such as keeping your neat code (which isn't your example). I suggest also to take a step back and going through some tutorials, because it is certainly the kind of thing that is explained in them.

  • How to upgrade the enum labels when enum is inside an array of clusters?

    Hello gurus of LabVIEW,.

    I'm stuck with one aspect of the design and I was wondering if you could share some ideas on how to move beyond this: I want to fill an array of strings, and then complete an enum inside a table with string values.

    For the purposes of discussion, I'll break you in two actions steps, where it takes place before the second (sequential, not in parallel)

    Action - the user will first ask you to fill a table with 'strings '. The table might look like,

    row0 - "string0".

    Row1 - 'string1 '.

    row2 - "word2".

    and so on...

    Action 2 - whenever the user "action selects two" I would like to fill out an ENUM inside a cluster with the values of 'Action '. In other words, I am trying to dynamically write enum values.

    The cluster has several objects such as Boolean controls, String, control, AND YEAR ENUM (see attachment .png)

    I tried using the ring and enumerations at this stage and have failed him. I read somewhere that the enum/ring is in a cluster and the cluster within a table, what I'm trying to do is simply not possible. If this is the case, can you please throw my ideas, my ideas? :-)

    In advance, thank you very much.

    See you soon,.

    First of all, the question is your cluster is a strict type def and preventing you from updating the ropes of the ring then I turned into a normal type def.  I've also got rid of the sequence and the while loop they were not useful anyway.  Just unzip and run the VI then enter values in the table, as you enter data, that the ring is updated with the new value.

  • External DLL with struct array

    I am train (new to this) call an external dll.  The function prototype looks like this:

    int FUNCTION (int * count, struct List_t * list);

    Count is of type Long

    List_t is a structure that looks like:

    typedef struct List_t
    {
    char name [MAXCHARS];
    char file [MAXCHARS];
    double length;
    bool wired;
    bool DDD;
    };

    and the list is an array of length (MAX-1), where MAX is defined as 10 and MAXCHARS is 48.

    This is my last try:

    and I have the List parameter as "adapt to the type" and "pointer of table data.

    I get correct data, but not all.

    Thank you

    And increasingly what said tbob, you better make sure the entrance of County is never greater than 1, as the function could otherwise try to fill only element that you pass and what can AND will damage your memory eventually causing some breaks down, but has no need to plant immediately beyond the end of the table.

    What you should probably do is to replace the node Build array by Array Node initialization and son County control also at the entrance to the size of it. Set the number at 10 and use the number of output to resize the table using table to reshape the size that was filled in.

  • An array of strange command error

    Code of the model (from help document):

    GetNumCtrlArrayItems(ctrlArray, &count);)
    for (i = 0; i
    SetCtrlVal (panelHandle, GetCtrlArrayItem(ctrlArray, i), I have 2%);

    My Info to user interface:

    I would define 2 control, here is my Panel arrays and tables

    My OK button call return code:

    int CVICALLBACK (int, int control, int event Panel Ok,
    void * callbackData, int eventData1, int eventData2)
    {
    int, temp_control, County;
    switch (event)
    {
    case EVENT_COMMIT:
    GetNumCtrlArrayItems(CTRLARRAY_2, &count);)
    for (i = 0; i
    {
    temp_control = GetCtrlArrayItem (CTRLARRAY_2, i);
    ResetTextBox (panelHandle, temp_control, "test");
    }
    break;
    }
    return 0;
    }

    Here's the problem:

    I want to change the text in the text box, as defined by the control array, we should call it

    GetNumCtrlArrayItems (CTRLARRAY, &count);) and GetCtrlArrayItem (CTRLARRAY, i);

    but, when I click on ok, funtion GetNumCtrlArrayItems back-4.

    And, I use CTRLARRAY_2 instead of CTRLARRAY, when I click the ok button, the result is like this

    Who can explain this to me?  Is this a bug of Labwindows/CVI 2013? Thank you very much.

    As you can read in the help, you do not use the name of constant control in this function; Instead, you must call GetCtrlArrayFromResourceID to obtain the handle to be used in the following functions on this component.

    The error you receive correctly indicates invalid handle.

  • Factory restore / Boot Order RAID 0 array?

    I have a 'mobile 'current enforcement office (laptop) XP Pro SP2 with dual hard drives in a RAID 0 array.  For various reasons, I want to put the machine in its factory out-of-the-box condition using discs of recovery/restoration of the manufacturer (essentially the application of Norton Ghost). I did my due diligence regarding the restoration of the machine and 'reconstruction' from there, but the machine does not start on boot from the restore disc CD.  I do not venture into the BIOS often... the existing boot priority order is as follows:

    1. USB FDC:

    2 PCISCSI: FTTX Ary1

    3 IDEO_M: QSI CD-RW/DVD-ROM

    4 IDEO_S: _NEC DVD + /-RW

    5. PCI LAN:

    6.

    7 etc.

    I don't have a built-in floppy drive. I want the machine to start from #3 (my first optical drive).  In the order of precedence of the BIOS Boot, I simply move #3 to the #1 or #2 position?  Will be other items then simply drop into their existing order?

    I do not know how does RAID 0 of the table is on the boot order selection, but I don't want to spoil anything.  I appreciate your help and your expertise.

    Hi Aravaipa,

    · On what CD drive you insert the disc?

    · The operating system was preinstalled on the computer?

    · If so, what the number and model of the computer?

    · If it was custom build provide the serial number and model of the motherboard?

    · Have you have saved data on the computer?

    I suggest you to back up data before performing the procedure below:

    1. If the computer is preinstalled on RAID 0 configuration then you might need to break the Raid by changing the variable speed drive (ATA controller) to Normal or IDE

    2. as you have two CD/make ROM DVD readers like the first and the second in the boot sequence and make the method of trial and error to see what DVD Rom detects the recovery disk

    Note: Change to the BIOS/complementary metal oxide semiconductor (CMOS) settings can cause serious problems that may prevent your computer from starting properly. Microsoft cannot guarantee that problems resulting from the configuration of the BIOS/CMOS settings can be solved. Changes to settings are at your own risk. You can contact the manufacturer of the computer for better assistance.

    With regard to:

    Samhrutha G S - Microsoft technical support.

  • Insert Page breaks in Documents

    I need to insert page breaks in some documents and cannot find information on how to do it.  On win 98 it was control (enter) but this does not work on Vista.  Can someone help me on this stupid problem, please?  I would be Greatful SO I can at least do SOMETHING with Vista!

    Without knowing the program, it is impossible to tell you how to make a page break (they are all different).  Notepad or Wordpad supports the pagebreak feature (CTRL-enter as you say for Microsot Word {version today as well} and a few others that I wasn't aware that it worked in Windows 98 supplied "processing" programs more than it does today).  Maybe you were using a different program, and then (as Word or WordPerfect or Works or something like that).

    If you have no Microsoft Office (so do not Microsoft Word), then I strongly suggest you download the OpenOffice free at www.openoffice.org , which reflects a large part of the core functionality of the Office (with the exception of Outlook) and has a program called writer which is a program of processing excellent - better by far than what comes with Vista.  It can even open and work with Microsoft Office documents (even those of 2007 and I believe that the beta of 2010).  It will certainly have a page break function (as well as MANY other features that come with the office suites only expensive (but again, this is free and despite this, it is excellent).)  If you do not have Microsoft Office or another suite purchased offfice, then I HIGHLY recommend you download and use this set of programs instead of what comes with Vista (although there are times when what you really need is an option such as Notepad - cheap and Notepad is also good for making batch script files if you are into that sort of thing).  But if you do a real word processor, you must definitely pass.  If you go, try CTRL + entry for a page break and if that is not working then check page break in helping get the correct keyboard command - but I bet it's the same thing.

    Don't be too upset that this means that you need a 3rd party program "do something with Vista.  OpenOffice is so much better that it is not yet a comparison value.  The truth is that products delivered with Vista are just not as good as some of those available on the open market (be it for a price or sometimes free).  I happen to love Vista Center backup and restore (but it's really good in more expensive versions of Vista (business and above)- and yet, there is a 3rd best product part out there for that as well (Acronis: http://www.acronis.com/homecomputing/products/trueimage/ but it is not free).)

    There are some Vista programs that may be useful.  Some people use Microsoft Mail and Microsoft Contacts as long as their email client (and customer contact) - Although many who start this way switch to Microsoft Live Mail (it's a little better than Microsoft Mail), and of course, if you have Microsoft Office, you should definitely switch to Outlook (which is MUCH better, but it costs money that the Office is not free).  As a free alternative, many use Mozilla Thunderbird http://www.mozillamessaging.com/en-US/thunderbird/ as, yet once, it is a better product with more features and options (and it's free Unlike Outlook).  The program Microsoft Search in Vista is very good if you take the time to learn how to use wisely and has need of no alternative.

    Remember that none of these other programs would work without Windows Vista (or some other OS) behind it - so it does not serve an important purpose.  You wouldn't be able to post on this site without Vista and a browser.  If you use Internet Explorer, it's kind of like using Vista because version 7 comes with Vista and cannot be added or removed (it's part of the base OS) - If you're probably using IE8 that was the upgrade (and a value of upgrade).

    I hope this helps.

    Good luck! Lorien - MCSA/MCSE/network + / A +.

Maybe you are looking for