I run a website for my Son who teaches safe driving to (predominantly)
firefighters around the country. I started it around seven years ago. I am not a
pro at this. I started a list of classes he has taught and update it every time
he teaches. It's grown quite large. It starts with the first classes taught and
scrolls down to the most recent. A friend of mine who is a professional software
guy and writes apps, looked at it and suggested that the list be in reverse,
with the most recent classes being at the top. It would be a daunting task to
redo this whole list manually. I was wondering if there's any program that I
could copy and paste into, and then have it reverse the order? Here's a link to
the page if it helps. I have a feeling that I'll be sitting in front of the
keyboard doing this by hand, but it doesn't hurt to ask. Thanks.
http://www.drivetosurvive.org/past_seminars.htm
I would use a scripting language for that. While PERL is more
powerful (and in terms of job skills, more of an asset on your
resume), I like AWK for its simplicity. A free version is GAWK,
and a port for Windows is available via the Gnuwin32 packages.
http://gnuwin32.sourceforge.net/packages/gawk.htm
First I write a program in AWK (stored in reverse.txt).
The first line has no conditionals on it, so it executes once
for each line of text. It stores the entire input file, into memory,
in the array "x". The variable "NR" is "number of records" and
is an automatic variable. $0 stands for the whole line of text,
while things like $1 stand for the first word in the line and so
on. So the first program line "memorizes" the file by storing it in an
array. This isn't a good idea, if your list is bigger than system
memory
But since we know the input list is small and finite,
this method is OK.
{x[NR] = $0}
END { while ( NR > 0 ) print x[NR--] }
The second line only executes, when the input file is exhausted
and completely processed. Now, the array is read out in reverse order.
The print statement, just takes whole lines stored in "x" and prints
them. The variable NR is "post-decremented" until it hits zero.
I copied the program from here. but as far as I can remember, this
is actually copied out of the original Awk book (I think it may
have been an example in there).
http://www.unix.com/shell-programming-scripting/35832-reversing-order-lines-file.html
The command I issued in command prompt, looked like this.
Reverse.txt is the script to run, while the other files are for I/O.
(All the files are in the folder with the gawk program, because
I never set these things up properly. I know what files it needs
and just stage them when I have a job to do.)
gawk -f reverse.txt < thelist.txt > revlist.txt
The < and > are for stdin and stdout redirection respectively.
That tells the gawk program to get input from "thelist" and
put the output in "revlist". I can use Notepad to work on
any of those files.
Here is your list, ROT13 encoded. Just do a ROT13 on it, and you
should be ready to go.
There is nothing magic about ROT13. This is just to prevent
a search engine from indexing it directly. Whether they ROT13
stuff for themselves, I don't know.
If your newsreader doesn't have ROT13, you can use
www.rot13.com,
paste in the list, and push the button to get the list back. Then,
compare to make sure nothing got corrupted.
****************** revlist.txt ************************
Yvgvgm Sver Pbzcnal, Yvgvgm CN, Sroehnel, 2012
ZpPbaaryyfohet Sver Pbzcnal, Shygba Pbhagl CN, Sroehnel, 2012
Jngresbeq Sver Qrcnegzrag, Revr Pbhagl CN, Wnahnel, 2012
Wbuafbaohet Sver Qrcnegzrag, Ryx Pbhagl CN, Wnahnel 2012
Zbhag Gebl Sver Qrcnegzrag, Cvggfohet CN, Wnahnel, 2012
Oheyvatgba Gbjafuvc Sver Qrcnegzrag, Oheyvatgba Pbhagl AW, Wnahnel, 2012
Uraqrefba Uvtu Fpubby, Jrfg Purfgre CN, Wnahnel, 2012
Cbggfgbja Sver Qrcnegzrag, Cbggfgbja CN, Abirzore, 2011
Uniresbeq Gbjafuvc Sver Qrcnegzrag, Uniregbja CN, Abirzore, 2011
Znecyr Gbjafuvc Cbyvpr Qrcnegzrag, Oebbznyy CN, Abirzore, 2011
Jbbqynja Sver Qrcnegzrag, Fbhgu Juvgrunyy CN, Abirzore, 2011
Terraoebbx Sver-RZF, Terraoebbx AW, Bpgbore, 2011
Cbggfgbja Uvtu Fpubby, Cbggfgbja CN, Bpgbore, 2011
Obgfjbegu Sver Erfphr, Arjgbja PG, Bpgbore, 2011
Cevaprgba Whapgvba Sver Pbzcnal, Cevaprgba Whapgvba AW, Bpgbore, 2011
Frn Oevtug Sver Qrcnegzrag, Frn Oevtug AW, Frcgrzore, 2011
Ynjeraprivyyr Sver Pbzcnal, Ynjeraprivyyr AW, Znl, 2011
Enqabe Sver Pbzcnal, Jnlar CN, Znl, 2011
Rffrk Pbhagl Pbyyrtr Cbyvpr Npnqrzl, Prqne Tebir AW, Znl, 2011
Svir Cbvagf Sver Pbzcnal, Jvyzvatgba QR, Znl, 2011
Pbybavn Sver Qrcnegzrag, Pbybavn AW, Znl, 2011
Svefg Jrfg Purfgre Sver Pbzcnal, Jrfg Purfgre CN, Ncevy, 2011
Orgury Sver Pbzcnal, Orgury CN, Ncevy, 2011
Znaurvz Sver Pbzcnal, Ynapnfgre CN, Ncevy, 2011
Yvatyrfgbja Sver Pbzcnal, Yvatyrfgbja CN, Znepu, 2011
Pevfqry Pbafgehpgvba Tebhc, Fbhgu Cynvasvryq AW, Znepu, 2011
Vfryva Sver Qrcnegzrag, Vfryva AW, Znepu, 2011
Qrynjner Pvgl Sver Pbzcnal, Qrynjner Pvgl QR, Znepu, 2011
Dhneelivyyr Sver Pbzcnal, Ynapnfgre CN, Znepu, 2011
Objznafivyyr Sver Pbzcnal, Ohssnyb AL, Znepu, 2011
Qhapnaaba RZF, Qhapnaaba CN, Znepu, 2011
Yvggyr Ebpxl Uvyy Sver Pbzcnal, Cevaprgba AW, Sroehnel, 2011
Nirary Sver Qrcnegzrag, Nirary AW, Sroehnel, 2011
Yvoregl Ubfr Pbzcnal, Jvyyyvnzfgbja CN, Sroehnel, 2011
Gerkyregbja Sver Pbzcnal, Gerkyregbja CN, Wnahnel, 2011
Yvoregl Pbeare Sver Pbzcnal, Fbzrefrg Pbhagl AW, Wnahnel, 2011
Orexryrl Urvtugf Sver Qrcnegzrag, Orexryrl Urvtugf AW, Wnahnel, 2011
Zbagtbzrel Gbjafuvc Sver Pbzcnal Ab. 2, Cevaprgba AW, Wnahnel, 2011
Pbapbeqivyyr Sver naq Cebgrpgvir Nffbpvngvba, Pbapbeqivyyr CN, Abirzore, 2010
Gubeauhefg Sver Pbzcnal, Ynpxnjnaan CN, Bpgbore, 2010
Rirergg Sver Pbzcnal, Orqsbeq Pbhagl CN, Bpgbore, 2010
Jrfg Geragba Sver Pbzcnal, Zrepre Pbhagl AW, Bpgbore, 2010
Rngbagbja Sver Qrcnegzrag, Zbazbhgu AW, Frcgrzore, 2010
Puevfgvnan Sver Pbzcnal, Puevfgvnan CN, Frcgrzore, 2010
Craaflyinavn Fgngr Sversvtugref Pbairagvba, Yhmrear Pbhagl CN, Frcgrzore, 2010
Crexnfvr Sver Pbzcnal, Crexnfvr CN, Frcgrzore, 2010
Ubpxrffva Sver Pbzcnal, Ubpxrffva QR, Frcgrzore, 2010
Nrgan Ubfr, Ubbx naq Ynqqre Pbzcnal, Arjnex QR, Whar, 2010
Rnfg Crgrefohet Sver Pbzcnal, Ynapnfgre CN, Whar, 2010
ZpPbaaryyfohet Sver Pbzcnal, Shygba Pbhagl CN, Znl, 2010
Ervaubyqf Sver Pbzcnal, Ynapnfgre CN, Znl, 2010
Ynapnfgre RZF, Ynapnfgre CN, Ncevy, 2010
Berynaq Sver Pbzcnal, Berynaq CN, Ncevy, 2010
Frrylivyyr Sver Pbzcnal, Jnlar Pbhagl CN, Ncevy, 2010
Arj Rtlcg Sver Pbzcnal, Bprna Pbhagl AW, Ncevy, 2010
Fgnssbeq Gbjafuvc Sver Pbzcnal, Bprna Pbhagl AW, Znepu, 2010
Senaxyva Sver Pbzcnal, Punzorefohet CN, Znepu, 2010
Unabire Gbjafuvc Ibyhagrre Sver Pbzcnal, Orguyrurz CN, Znepu, 2010
Cvbarre Sver Pbzcnal, Rcuengn CN, Sroehnel, 2010
Ynhelf Fgngvba Sver Pbzcnal, Ynhelf Fgngvba CN, Sroehnel, 2010
Gbcgba Sver Pbzcnal, Gbcgba CN, Sroehnel, 2010
Hccre Fnhpba Sver Qrcnegzrag, Hccre Fnhpba CN, Sroehnel, 2010
Ybjre Zrevba Sver Qrcnegzrag, Tynqjlar CN, Sroehnel, 2010
Zrqsbeq Snezf Sver Pbzcnal, Gnoreanpyr AW, Sroehnel, 2010
Craela Sver Pbzcnal, Ynapnfgre CN, Sroehnel, 2010
Oenqsbeq Gbjafuvc Sver Qrcnegzrag, ZpXrna Pbhagl, CN, Wnahnel, 2010
Oerfynh Ubfr Pbzcnal, Unabire CN, Wnahnel, 2010
Fcevat Gbjafuvc Sver Qrcnegzrag, Jrfg Ynja CN, Wnahnel, 2010
Ory Nve Sver Pbzcnal, Ory Nve ZQ, Abirzore, 2009
Svir Cbvagf Sver Pbzcnal, Jvyzvatgba QR, Abirzore, 2009
Fuvcyrl Raretl, Lbex CN, Abirzore, 2009
Unabire Gbjafuvc Sver Pbzcnal, Orguyrurz CN, Abirzore, 2009
Purygraunz Sver Pbzcnal, Purygraunz CN, Bpgbore, 2009
Fntvanj Pbhagl Zvpuvtna, Bpgbore, 2009
Cnenqvfr Sver Pbzcnal, Ynapnfgre Pbhagl CN, Bpgbore, 2009
Jrfg Tebir Sver Pbzcnal, Jrfg Tebir CN, Frcgrzore, 2009
Arjgbja Fdhner Sver Pbzcnal, Arjgbja Fdhner CN, Whar, 2009
Orejla Sver Pbzcnal, Orejla CN, Whar, 2009
Nrgan Ubfr, Ubbx naq Ynqqre Pbzcnal, Arjnex QR, Whar, 2009
Havba Sver Pbzcnal, Pneyvfyr CN, Znl, 2009
Punzoref Uvyy Sver Pbzcnal, Fjngnen CN, Znl, 2009
Rirfunz Gbjafuvc Sver Qrcnegzrag, Rirfunz AW, Znl 2009
Tbfura Sver Pbzcnal, Jrfg Purfgre CN, Ncevy, 2009
Sver Qrcnegzrag Vafgehpgbe'f Pbasrerapr, Vaqvnancbyvf VA, Ncevy 2009
Zvyyinyr Sver Qrcnegzrag, Cvggfohetu CN, Ncevy 2009
Gubeaqnyr Sver Pbzcnal, Purfgre Pbhagl CN, Ncevy 2009
Cbeg Craa Sver Pbzcnal, Cbeg Craa QR, Znepu, 2009
Cubravkivyyr Sver Qrcnegzrag, Cubravkivyyr CN, Znepu, 2009
Enqabe Sver Pbzcnal, Jnlar CN, Znepu, 2009
Cebterff Sver Pbzcnal, Qnhcuv Pbhagl CN, Znepu, 2009
Ivetvavn Fgngr Sver Puvrs'f Pbasrerapr, Evpuzbaq IN, Sroehnel, 2009
Xvamre Sver Pbzcnal, Xvamre CN, Sraehnel, 2009
Znephf Ubbx Genvare Sver Qrcnegzrag, Znephf Ubbx CN, Sroehnel, 2009
Craela Sver Pbzcnal, Ynapnfgre Pbhagl CN, Sroehnel, 2009
Svir Cbvagf Sver Pbzcnal, Jvyzvatgba QR, Wnahnel, 2009
Frpbaq Nynezref Erfphr Fdhnq, Jvyybj Tebir CN, Wnahnel, 2009
Tneerggsbeq Qerkry Uvyy Sver Pbzcnal, Qerkry Uvyy CN, Wnahnel, 2009
Ybjre Nyyra Sver Pbzcnal, Phzoreynaq Pbhagl CN, Qrprzore, 2008
Yrjrf Sver Qrcnegzrag, Yrjrf QR, Qrprzore, 2008
Pbzzhavgl Nzohynapr bs Nzoyre, Nzoyre CN, Qrprzore, 2008
Cbeg Craa Sver Pbzcnal, Cbeg Craa QR, Abirzore, 2008
Oenaqljvar Uhaqerq Sver Pbzcnal, Jvyzvatgba QR, Abirzore, 2008
Qvfgevpg 3 Genvavat Nffbpvngvba, Arj Ubyynaq CN, Abirzore, 2008
Puevfgvnan Sver Pbzcnal, Puevfgvnan QR, Abirzore, 2008
Fbhgurea Purfgre Pbhagl Zrqvpny Pragre, Wraarefivyyr CN – Bpgbore 2008
Unzcqra Gbjafuvc ISP, Zrpunavpfohet CN – Bpgbore 2008
Evpuynaqgbja Sver Pbzcnal, Ohpxf Pbhagl CN – Bpgbore 2008
Yvgvgm SverPbzcnal, Yvgvgm CN – Bpgbore 2008
Snveivrj Sver Pbzcnal, Revr Pbhagl CN – Frcgrzore 2008
Jvgzre Sver Pbzcnal – Jvgzre CN – Frcgrzore 2008
CRPB Raretl, Pbngrfivyyr CN – Frcgrzore 2008
Purfjbyq Sver Pbzcnal, Purfjbyq QR – Nhthfg 2008
Fcevat Gbjafuvc Sver Qrcnegzrag, Orexf Pbhagl CN – Whyl 2008
Phzoreynaq Inyyrl Ibyhagrre Sversvtugre’f Nffbpngvba Pbasrerapr – Whar 2008
Znegva’f Pbeare Sver Pbzcnal, Pbngrfivyyr CN – Whar 2008
Oenaqljvar Inyyrl Urngvat naq Nve Pbaqvgvbavat, Jrfg Purfgre CN – Znl 2008
Prageny Sver Pbzcnal, Cvggfohetu CN – Znl 2008
Svir Cbvagf Sver Pbzcnal, Jvyzvatgba QR – Znl202008
NPNP Svgarff Pragre, Jrfg Purfgre CN – Znl 2008
Jrfg Urzcsvryq Sver / Erfphr, Jrfg Urzcsvryq, CN – Znl 2008
Craa Sberfg Sver Pbzcnal, Wvz Gubecr CN – Ncevy 2008
Jnyxre Gbjafuvc Sver Pbzcnal, Ubjneq CN – Ncevy 2008
Pbyhzovn Sver Pbzcnal, Pbyhzovn CN – Ncevy 2008
Cnexrfohet Sver Pbzcnal, Cnexrfohet CN – Ncevy 2008
Sver Qrcnegzrag Vafgehpgbe’f Pbasrerapr (SQVP), Vaqvnancbyvf VA – Ncevy 2008
NPNP Svgarff Pragre (pvivyvna pynff), Jrfg Purfgre CN – Ncevy 2008
Tbbqjvyy Sver Pbzcnal bs Crzoregba, Crzoregba AW – Znepu 2008
Pvgl bs Urezvgntr Sver naq Erfphr, Urezvgntr CN – Znepu 2008
Nrgan Ubfr, Ubbx naq Ynqqre Pbzcnal, Arjnex QR – Znepu 2008
Rcuengn Sver Pbzcnal, Rcuengn CN – Znepu 2008
Rnfg Juvgrynaq Sver Pbzcnal, Senmre CN – Znepu 2008
Nzoyre Pbzzhavgl Nzohynapr Nffbpvngvba, Nzoyre CN – Znepu 2008
Ynapnfgre CN Sver Puvrs’f Nffbpvngvba, Znaurvz CN – Znepu 2008
Fnffnznafivyyr Sver Pbzcnal, Fnffnznafivyyr CN – Sroehnel 2008
Zvyyrefivyyr Sver Pbzcnal, Zvyyrefivyyr CN – Sroehnel 2008
Zbag Pyner Sver Pbzcnal, Zbag Pyner CN – Sroehnel 2008
Pvgl bs Znaunggna Sver Qrcnegzrag, Znaunggna XF – Abirzore 2007
Fbhgu Oraq VA Ertvbany Nvecbeg Sver Qrcnegzrag,, Fbhgu Oraq, VA – Bpgbore 2007
Fbhgu Pnebyvan Sversvtugref Pbasrerapr, Zlegyr Ornpu FP – Whyl 2007
Jungpbz Pbhagl Sver Qvfgevpg #4, Oryyvatunz JN – Znl 2007
Sver Qrcnegzrag Vafgehpgbe’f Pbasrerapr (SQVP), Vaqvnancbyvf, Vaqvnan - Ncevy 2007
Tyrafvqr Sver Pbzcnal, Purygraunz CN – Ncevy 2007
Puevfgvnan Sver Pbzcnal, Puevfgvnan QR – Ncevy 2007
Inaqnyvn Sver Qrcnegzrag, Inaqnyvn BU – Znepu 2007
Oebbznyy Sver P bzcnal, Oebbznyy CN – Sroehnel 2007
Jrfg Purfgre Ertvbany Rzretrapl Erfcbafr Grnz, Jrfg Purfgre CN - Sroehnel 2007
Inyyrl Sbetr Sver Pbzcnal, Inyyrl Sbetr CN – Sroehnel 2007
Xrngvat Sver Pbzcnal, Cvggfohetu CN – Frcgrzore 2006
Znevba Sver Qrcnegzrag, Znevba BU – Frcgrzore 2006
Fybna Sbeq , Qbjavatgbja CN – Whyl 2006
Ubefunz Sver Pbzcnal, Ubefunz CN – Whyl 2006
Rnfg Oenaqljvar Sver Pbzcnal, Tyrazbber CN – Znl 2006
Qnaol Yhzore Pbzcnal , Xraargg Fdhner CN – Znl 2006
Oenaqljvar Urngvat naq Nve Pbaqvgvbavat, Jrfg Purfgre CN – Znl 2006
Sver Qrcnegzrag Vafgehpgbe’f Pbasrerapr (SQVP), Vaqvnancbyvf, Vaqvnan, - Ncevy, 2006
Rnfg Tbfura Gbjafuvc, Rnfg Tbfura CN – Ncevy 2006
Xraargg Fdhner Sver Pbzcnal, Xraargg Fdhner CN – Ncevy 2006
Yvgvm Sver Pbzcnal, Yvgvgm CN – Znepu 2006
Jrfg Purfgre Sver Qrcnegzrag, Jrfg Purfgre CN – Znepu 2006
Uvyygbja Gbjafuvc Sver Pbzcnal, Uvyygbja CN – Sroehnel 2006
Svefg Jrfg Purfgre Sver Pbzcnal, Jrfg Purfgre CN – Sroehnel 2006
Tbfura Sver Pbzcnal, Jrfg Purfgre CN – Wnahnel, 2006
Yvbaivyyr Sver Pbzcnal, Yvbaivyyr CN – Wnahnel 2006
Qnyynfgbja Sver Pbzcnal, Qnyynfgbja, CN – Wnahnel 2006
Enqabe Sver Pbzcnal, Jnlar CN – Abirzore 2005
Sverubhfr Rkcbfvgvba, Onygvzber Znelynaq - Whyl 29, 2005
********************************************************
I'm sure you could pull the files into a spreadsheet, and do
stuff to it. Excel is pretty powerful.
Nobody uses GAWK, but I do
Gawk could also be used to reorder the fields, such as put
the date first and location second and so on. The "-" character
which is used in the file, makes a convenient delimiter, to break
the lines into two pieces for that kind of manipulation. Maybe
Excel can do the breaks that way as well, if you define a
delimiter in it when pulling in the file.
HTH,
Paul