Sorting Text

Has anyone writting a program that asks the user for a text file and then the program sorts the
lines alphabetically and saves the result to another file?  For example, a sample run of the
program might be:

     Enter name of text file to be sorted:  C:\filename.txt
     Enter name of output file:  C:\filename2.txt
     Sorted C:\filename.txt and saved to C:\filename2.txt
strider031598Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

vsinhaCommented:
Yes

I have implemented it by reding the text a line at a time and inserting them into a linked list.

However most Operating Systems have a very powerful sort utility which may be easier to use than writing a program.

Do you want a more detailied algorithm or source-code?
0
nietodCommented:
Is this a homework assignment?
0
strider031598Author Commented:
vshina:  yes, I would like a source code.
nietod:  no, it's not a homework assignment.  I need a quick program that will
            sort text alphabetically (I'm writing my collection of CDs on a .txt file).
0
Cloud Class® Course: C++ 11 Fundamentals

This course will introduce you to C++ 11 and teach you about syntax fundamentals.

footlooseCommented:
Simple way: go to DOS prompt, say:

type unsorted.txt | sort > sorted.txt

If you insist on a program: RTFM on qsort.
0
strider031598Author Commented:
What's RTFM on qsort?
0
NexialCommented:
Simple solution is mentioned above:

  sort < usorted.txt > sorted.txt

where sort is the standard DOS sort filter.

Try 'help sort'  or sort /?  on your system at the DOS prompt.

The mks toolkit has a better sort filter if necessary.

The unix sort is at least as good as the mks one.

RTFM = READ THE (bleeped out) MANUAL

To write a program in C or any of it's derivatives to do this
use C's qsort function call, well documented in any standard
manual or on the MAN pages of any UNIX style system.   It is also in the standard on-line help of the DOS/WINxxx run time packages.

If you want to implement the quicksort (qsort) algorithm yourself, I highly recommend Knuth's "Sorting and Searching", Volume III of "The Art of Computer Programming", which covers the theory in detail.

0
strider031598Author Commented:
Does anyone have the source to this program?
0
LucHoltkampCommented:
RTFM means Read The ****ing Manual...it's a UNIX thing
A program layout using STL:
  Read the file line by line, each line into a string
  Store the strings in a vector<string>
  sort the vector
  write the vector to a new file

// Begin of code file
#include <string>
#include <vector>
#include <iostream.h>
#include <fstream.h>
#include <algorithm>

int main()
{
ifstream in("infile.txt");
vector<string> sorted;
while(!in.eof())
{
  string tmp;
  in >> tmp;
  sorted.insert(tmp);
}

ofstream out("sorted.txt");
sort(sorted.begin(), sorted.end()); // or: sort(sorted.begin(), sorted.end(), less<string>);
for(vector<string>::iterator i(sorted.begin()); i != sorted.end(); ++i)
  out << *i;

return 0;
}
// End of File

Or something like it. Its not tested or even compiled but it should give you an idea of a simple approach to the problem.

.luc.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
C++

From novice to tech pro — start learning today.