Perl Programming
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
User Name:
Password:
Remember me
Go Back   Dev Shed ForumsProgramming LanguagesPerl Programming
The ASP Free website provides in-depth information on the latest developer tools available from Microsoft. Our cadre of writers, highly experienced industry experts, reveals the best ways to use established technologies as well as new and emerging technologies. Our coverage of Microsoft's development and administration technologies is among the most respected in the IT industry today.

ASP Free and Iron Speed Designer are giving away $5,500+ in FREE licenses. Iron Speed's RAD CASE toolset can save up to 80% of your coding time. One free license per week, one perpetual license per month!
Download and Activate to enter!

Intel® Graphics Performance Analyzers is a powerful tool suite for analyzing and optimizing your games, media, and graphics-intensive applications. Used by some of the best developers on the planet, Intel GPA lets you maximize your app’s performance.


Tutorials
| Forums

Download to Enter
| Contest Rules

DOWNLOAD INTEL® GPA FOR FREE

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread Dev Shed Forums Sponsor:
  #1  
Old May 23rd, 2006, 02:27 AM
papajohns's Avatar
papajohns papajohns is offline
perl virgin
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Oct 2003
Location: Seattle, WA
Posts: 454 papajohns User rank is Corporal (100 - 500 Reputation Level)papajohns User rank is Corporal (100 - 500 Reputation Level)papajohns User rank is Corporal (100 - 500 Reputation Level)papajohns User rank is Corporal (100 - 500 Reputation Level) 
Time spent in forums: 2 Days 13 h 23 m 58 sec
Reputation Power: 12
Whats the proper way to get last line of a file...

whats the "proper way" to do it if you are building as a part of a .pm to be used by other perl files...

a simple
$variable = `tail -f file`;

or open file, read it , then get the last line...

or a system call...

or is there a built in perl call for it?


which is it?

Reply With Quote
  #2  
Old May 23rd, 2006, 03:23 AM
fuzzybunny's Avatar
fuzzybunny fuzzybunny is offline
C Neophyte.
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Feb 2004
Location: Melbourne Australia
Posts: 398 fuzzybunny User rank is Sergeant Major (2000 - 5000 Reputation Level)fuzzybunny User rank is Sergeant Major (2000 - 5000 Reputation Level)fuzzybunny User rank is Sergeant Major (2000 - 5000 Reputation Level)fuzzybunny User rank is Sergeant Major (2000 - 5000 Reputation Level)fuzzybunny User rank is Sergeant Major (2000 - 5000 Reputation Level)fuzzybunny User rank is Sergeant Major (2000 - 5000 Reputation Level) 
Time spent in forums: 3 Days 42 m 6 sec
Reputation Power: 43
Not very clean, as it doesn't get the last line... it goes in the number of bytes from the end. Number 2 indicates end of file, 9 bytes back.

perl Code:
Original - perl Code
  1. seek( FILE, -9, 2 );
  2. my @line = readline FILE;

Reply With Quote
  #3  
Old May 23rd, 2006, 03:46 AM
KevinADC's Avatar
KevinADC KevinADC is offline
Contributing User
Dev Shed Frequenter (2500 - 2999 posts)
 
Join Date: Oct 2004
Location: Sunny Southern California
Posts: 2,687 KevinADC User rank is Lieutenant General (80000 - 90000 Reputation Level)KevinADC User rank is Lieutenant General (80000 - 90000 Reputation Level)KevinADC User rank is Lieutenant General (80000 - 90000 Reputation Level)KevinADC User rank is Lieutenant General (80000 - 90000 Reputation Level)KevinADC User rank is Lieutenant General (80000 - 90000 Reputation Level)KevinADC User rank is Lieutenant General (80000 - 90000 Reputation Level)KevinADC User rank is Lieutenant General (80000 - 90000 Reputation Level)KevinADC User rank is Lieutenant General (80000 - 90000 Reputation Level)KevinADC User rank is Lieutenant General (80000 - 90000 Reputation Level)KevinADC User rank is Lieutenant General (80000 - 90000 Reputation Level)KevinADC User rank is Lieutenant General (80000 - 90000 Reputation Level)KevinADC User rank is Lieutenant General (80000 - 90000 Reputation Level)KevinADC User rank is Lieutenant General (80000 - 90000 Reputation Level)KevinADC User rank is Lieutenant General (80000 - 90000 Reputation Level)KevinADC User rank is Lieutenant General (80000 - 90000 Reputation Level) 
Time spent in forums: 3 Weeks 4 Days 12 h 58 m 13 sec
Reputation Power: 859
You can use Tie::File or maybe File::Bidirectional or File::ReadBackwards

Reply With Quote
  #4  
Old May 23rd, 2006, 04:39 AM
Axweildr's Avatar
Axweildr Axweildr is offline
'fie' on me, allege-dly
Dev Shed God 16th Plane (12500 - 12999 posts)
 
Join Date: Mar 2003
Location: in da kitchen ...
Posts: 12,668 Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)  Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1
Time spent in forums: 4 Months 2 Weeks 3 h 7 m 53 sec
Reputation Power: 6120
Send a message via Google Talk to Axweildr
Orkut
using seek, you could pull in a big chunk of data into an array, reverse it, join it into a string, use index to find the location of the first "\n", substr to extract the last line in reverse, split on '' into an array, then reverse and join again ...
__________________
--Ax
without exception, there is no rule ...
Heavy Haulage Ireland
Targeted Advertising Cookie Optout (TACO) extension for Firefox
The great thing about Object Oriented code is that it can make small, simple problems look like large, complex ones


09 F9 11 02
9D 74 E3 5B
D8 41 56 C5
63 56 88 C0
Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.
-- Jamie Zawinski
Detavil - the devil is in the detail, allegedly, and I use the term advisedly, allegedly ... oh, no, wait I did ...

Reply With Quote
  #5  
Old May 23rd, 2006, 10:04 AM
replax replax is offline
Contributing User
Dev Shed Intermediate (1500 - 1999 posts)
 
Join Date: Aug 2004
Posts: 1,795 replax User rank is Second Lieutenant (5000 - 10000 Reputation Level)replax User rank is Second Lieutenant (5000 - 10000 Reputation Level)replax User rank is Second Lieutenant (5000 - 10000 Reputation Level)replax User rank is Second Lieutenant (5000 - 10000 Reputation Level)replax User rank is Second Lieutenant (5000 - 10000 Reputation Level)replax User rank is Second Lieutenant (5000 - 10000 Reputation Level)replax User rank is Second Lieutenant (5000 - 10000 Reputation Level) 
Time spent in forums: 2 Weeks 5 Days 15 h 23 m 11 sec
Reputation Power: 82
Quote:
Originally Posted by papajohns
a simple
$variable = `tail -f file`;
...
or a system call...


`tail -f file` is a system call. backticks are the system operator. It is just as if you were ssh'ed into the sytem and you typed that at the command line. You are calling the executable tail and feeding it some command line parameters.
So we are down to 2 methods:
a system call (such as tail)
or reading the file manually, your choice.

Reply With Quote
  #6  
Old May 23rd, 2006, 01:00 PM
Axweildr's Avatar
Axweildr Axweildr is offline
'fie' on me, allege-dly
Dev Shed God 16th Plane (12500 - 12999 posts)
 
Join Date: Mar 2003
Location: in da kitchen ...
Posts: 12,668 Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)  Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1
Time spent in forums: 4 Months 2 Weeks 3 h 7 m 53 sec
Reputation Power: 6120
Send a message via Google Talk to Axweildr
Orkut
Technically the seek option isn't the same since you can get the length of the file from the stat function and set the file pointer accordingly. Tie::File, I *assume* requires reading the file into an array, because how you can treat the file when Tied, File::ReadBackwards, I'm not sure about, haven't looked at the code.

So there's at least three

Reply With Quote
  #7  
Old May 23rd, 2006, 01:10 PM
replax replax is offline
Contributing User
Dev Shed Intermediate (1500 - 1999 posts)
 
Join Date: Aug 2004
Posts: 1,795 replax User rank is Second Lieutenant (5000 - 10000 Reputation Level)replax User rank is Second Lieutenant (5000 - 10000 Reputation Level)replax User rank is Second Lieutenant (5000 - 10000 Reputation Level)replax User rank is Second Lieutenant (5000 - 10000 Reputation Level)replax User rank is Second Lieutenant (5000 - 10000 Reputation Level)replax User rank is Second Lieutenant (5000 - 10000 Reputation Level)replax User rank is Second Lieutenant (5000 - 10000 Reputation Level) 
Time spent in forums: 2 Weeks 5 Days 15 h 23 m 11 sec
Reputation Power: 82
yes, and there are 5 ways to do anything in PERL. So we just need someone to point out the other 2

Reply With Quote
  #8  
Old May 23rd, 2006, 01:15 PM
ishnid's Avatar
ishnid ishnid is offline
kill 9, $$;
Dev Shed God 4th Plane (6500 - 6999 posts)
 
Join Date: Sep 2001
Location: Dublin, Eire
Posts: 6,819 ishnid User rank is General 42nd Grade (Above 100000 Reputation Level)ishnid User rank is General 42nd Grade (Above 100000 Reputation Level)ishnid User rank is General 42nd Grade (Above 100000 Reputation Level)ishnid User rank is General 42nd Grade (Above 100000 Reputation Level)ishnid User rank is General 42nd Grade (Above 100000 Reputation Level)ishnid User rank is General 42nd Grade (Above 100000 Reputation Level)ishnid User rank is General 42nd Grade (Above 100000 Reputation Level)ishnid User rank is General 42nd Grade (Above 100000 Reputation Level)ishnid User rank is General 42nd Grade (Above 100000 Reputation Level)ishnid User rank is General 42nd Grade (Above 100000 Reputation Level)ishnid User rank is General 42nd Grade (Above 100000 Reputation Level)ishnid User rank is General 42nd Grade (Above 100000 Reputation Level)ishnid User rank is General 42nd Grade (Above 100000 Reputation Level)ishnid User rank is General 42nd Grade (Above 100000 Reputation Level)ishnid User rank is General 42nd Grade (Above 100000 Reputation Level)ishnid User rank is General 42nd Grade (Above 100000 Reputation Level) 
Time spent in forums: 4 Months 1 Week 5 Days 19 h 23 m 31 sec
Reputation Power: 3763
Oh well, since you asked
perl Code:
Original - perl Code
  1.  
  2. my $last_line;
  3. while(<FILE>) {
  4.    $last_line = $_ if eof;
  5. }
  6. print $last_line;
Comments on this post
fuzzybunny agrees: Nice... is there a way of starting from EOF to avoid looping through the whole file?

Reply With Quote
  #9  
Old May 29th, 2006, 03:26 PM
papajohns's Avatar
papajohns papajohns is offline
perl virgin
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Oct 2003
Location: Seattle, WA
Posts: 454 papajohns User rank is Corporal (100 - 500 Reputation Level)papajohns User rank is Corporal (100 - 500 Reputation Level)papajohns User rank is Corporal (100 - 500 Reputation Level)papajohns User rank is Corporal (100 - 500 Reputation Level) 
Time spent in forums: 2 Days 13 h 23 m 58 sec
Reputation Power: 12
Quote:
fuzzybunny agrees: Nice... is there a way of starting from EOF to avoid looping through the whole file?


yah..thats what i want to know..is there a faster way rather than start at the top..

Reply With Quote
  #10  
Old May 29th, 2006, 04:20 PM
Axweildr's Avatar
Axweildr Axweildr is offline
'fie' on me, allege-dly
Dev Shed God 16th Plane (12500 - 12999 posts)
 
Join Date: Mar 2003
Location: in da kitchen ...
Posts: 12,668 Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)  Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1
Time spent in forums: 4 Months 2 Weeks 3 h 7 m 53 sec
Reputation Power: 6120
Send a message via Google Talk to Axweildr
Orkut
seek as alluded to earlier, would be quicker in this context, any idea how long an average record is?

Reply With Quote
  #11  
Old May 29th, 2006, 05:52 PM
papajohns's Avatar
papajohns papajohns is offline
perl virgin
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Oct 2003
Location: Seattle, WA
Posts: 454 papajohns User rank is Corporal (100 - 500 Reputation Level)papajohns User rank is Corporal (100 - 500 Reputation Level)papajohns User rank is Corporal (100 - 500 Reputation Level)papajohns User rank is Corporal (100 - 500 Reputation Level) 
Time spent in forums: 2 Days 13 h 23 m 58 sec
Reputation Power: 12
mm..but from the example there it seems seek needs a number of bytes back from the end of the file...

anyway you can use seek, but then only get it up to the last carriage return so you only get the last line as oppose to a certain of bytes and then have to regex it somehow?

Reply With Quote
  #12  
Old May 30th, 2006, 04:33 AM
Axweildr's Avatar
Axweildr Axweildr is offline
'fie' on me, allege-dly
Dev Shed God 16th Plane (12500 - 12999 posts)
 
Join Date: Mar 2003
Location: in da kitchen ...
Posts: 12,668 Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)Axweildr User rank is General 77th Grade (Above 100000 Reputation Level)  Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1Folding Points: 161075 Folding Title: Super Ultimate Folder - Level 1
Time spent in forums: 4 Months 2 Weeks 3 h 7 m 53 sec
Reputation Power: 6120
Send a message via Google Talk to Axweildr
Orkut
Do we know the record length, or any idea of the max possible record length?

set the pointer to file size - max rec length*2 (to be sure)
read for max rec length * 2
split the buffer on \n into an array
and the last populated item in the array is your last line

Reply With Quote
  #13  
Old May 30th, 2006, 06:55 PM
NullTerminator NullTerminator is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: May 2006
Posts: 18 NullTerminator User rank is Corporal (100 - 500 Reputation Level)NullTerminator User rank is Corporal (100 - 500 Reputation Level)NullTerminator User rank is Corporal (100 - 500 Reputation Level)NullTerminator User rank is Corporal (100 - 500 Reputation Level) 
Time spent in forums: 4 h 15 m 11 sec
Reputation Power: 0
You want last line and lines are delimited by newlines/

why not
`tail -n 1 file`

Jeb
\0

Reply With Quote
  #14  
Old May 30th, 2006, 08:16 PM
Scorpions4ever's Avatar
Scorpions4ever Scorpions4ever is offline
Banned ;)
Dev Shed God 8th Plane (8500 - 8999 posts)
 
Join Date: Nov 2001
Location: Woodland Hills, Los Angeles County, California, USA
Posts: 8,978 Scorpions4ever User rank is General 39th Grade (Above 100000 Reputation Level)Scorpions4ever User rank is General 39th Grade (Above 100000 Reputation Level)Scorpions4ever User rank is General 39th Grade (Above 100000 Reputation Level)Scorpions4ever User rank is General 39th Grade (Above 100000 Reputation Level)Scorpions4ever User rank is General 39th Grade (Above 100000 Reputation Level)Scorpions4ever User rank is General 39th Grade (Above 100000 Reputation Level)Scorpions4ever User rank is General 39th Grade (Above 100000 Reputation Level)Scorpions4ever User rank is General 39th Grade (Above 100000 Reputation Level)Scorpions4ever User rank is General 39th Grade (Above 100000 Reputation Level)Scorpions4ever User rank is General 39th Grade (Above 100000 Reputation Level)Scorpions4ever User rank is General 39th Grade (Above 100000 Reputation Level)Scorpions4ever User rank is General 39th Grade (Above 100000 Reputation Level)Scorpions4ever User rank is General 39th Grade (Above 100000 Reputation Level)Scorpions4ever User rank is General 39th Grade (Above 100000 Reputation Level)Scorpions4ever User rank is General 39th Grade (Above 100000 Reputation Level)Scorpions4ever User rank is General 39th Grade (Above 100000 Reputation Level) 
Time spent in forums: 1 Month 2 Weeks 6 Days 22 h 11 m 29 sec
Reputation Power: 3561
The proper PORTABLE way would be to read the file manually. You can either start from the beginning and work your way through all the lines, but the faster way would be to seek to the end and read chunks of the file and use rindex() to find \n.

Any solutions that use the tail command are assuming you're running on a unix or unix-based system (or have cygwin installed). Hence, they are potentially unportable.
Comments on this post
ishnid agrees!
bhagwatn agrees!
__________________
Up the Irons
What Would Jimi Do? Smash amps. Burn guitar. Take the groupies home.
"Death Before Dishonour, my Friends!!" - Bruce D ickinson, Iron Maiden Aug 20, 2005 @ OzzFest
Down with Sharon Osbourne

Diary of a first time dog owner <-- my cousin's blog

Reply With Quote
  #15  
Old January 19th, 2008, 11:21 PM
tomlobato tomlobato is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Jan 2008
Posts: 1 tomlobato User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 5 m 14 sec
Reputation Power: 0
After seek to the end of file, it rewind at 1 byte steps until find the begin ("\n") of the last line.

my $pos=-1;
my $char;
my $already_nonblank = 0;
while (seek (LOGFILE,$pos--,2))
{
read LOGFILE,$char,1;
last if ($char eq "\n" and $already_nonblank == 1);
$already_nonblank = 1 if ($char ne "\n");
}
my $last_line = <LOGFILE>;


Tom Lobato
www tinecon com br

Reply With Quote
Reply

Viewing: Dev Shed ForumsProgramming LanguagesPerl Programming > Whats the proper way to get last line of a file...


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump

Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 


Powered by: vBulletin Version 3.0.5
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.

© 2003-2012 by Developer Shed. All rights reserved. DS Cluster 10 - Follow our Sitemap