<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
<META content="MSHTML 6.00.2600.0" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hi,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Its pretty late (after 23:00!!) and I still have
alot of work to complete before tomorrow, so I'll just make breif comments, I'll
try respond in more detail tomorrow if I get a free moment. Pls find my comments
in the original text...</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV>
<BLOCKQUOTE
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial"><SPAN class=027012911-12082003><FONT
size=2>>></FONT></SPAN>----- Original Message ----- </DIV>
<DIV style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><SPAN
class=027012911-12082003><FONT
size=2>>></FONT></SPAN><STRONG>From:</STRONG> <A
title=WKruse@multichoice.co.za href="mailto:WKruse@multichoice.co.za">Walter
Kruse</A> </DIV>
<DIV style="FONT: 10pt arial"><SPAN class=027012911-12082003><FONT
size=2>>></FONT></SPAN><STRONG>To:</STRONG> <A title=za-pm@mail.pm.org
href="mailto:za-pm@mail.pm.org">za-pm@mail.pm.org</A> </DIV>
<DIV style="FONT: 10pt arial"><SPAN class=027012911-12082003><FONT
size=2>>></FONT></SPAN><STRONG>Sent:</STRONG> Tuesday, August 12, 2003
1:58 PM</DIV>
<DIV style="FONT: 10pt arial"><SPAN class=027012911-12082003><FONT
size=2>>></FONT></SPAN><STRONG>Subject:</STRONG> [Za-pm] flat file test
script</DIV>
<DIV><FONT face=Arial size=2></FONT><FONT face=Arial size=2></FONT><FONT
face=Arial size=2></FONT><FONT face=Arial size=2></FONT><FONT face=Arial
size=2></FONT><FONT face=Arial size=2></FONT><BR> <SPAN
class=027012911-12082003><FONT size=2>>></FONT></SPAN><SPAN
class=027012911-12082003><FONT size=2>Hi everyone - hope someone
will help a newbie</FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2><SPAN
class=027012911-12082003><FONT size=2>>></FONT></SPAN>I need
to simulate the importing of a flat file into two tables in a db for
test purposes. The file has very long records, which aren't separated into
fields <SPAN class=027012911-12082003><FONT size=2>>></FONT></SPAN>by
any character. Rather, the program under test counts characters. So chars 1-8
go in table 1, chars 9-12 to table 2, chars 13-40 to table 1 again and so
<SPAN class=027012911-12082003><FONT size=2></FONT></SPAN></FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2><SPAN
class=027012911-12082003><FONT size=2><SPAN class=027012911-12082003><FONT
size=2><SPAN class=027012911-12082003><FONT size=2>>></FONT></SPAN>on. I
want to use a perl script as the records are very long (+/- 88 fields) to
create two new text files and sort the records between the two files as I
</FONT></SPAN></FONT></SPAN></FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2><SPAN
class=027012911-12082003><FONT size=2><SPAN
class=027012911-12082003></SPAN></FONT></SPAN></FONT></SPAN> </DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2><SPAN
class=027012911-12082003>Okay, a couple of points:</SPAN></FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2><SPAN
class=027012911-12082003>1. The example above puzzles me, as I would have
expected the umbers of chars goin into each table to be the same each time? Or
do you have 88 fields be "record", where the 88 get split between the 2 dbs,
after reading all 88, the script can now process "record 2" in flat
file?</SPAN></FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2><SPAN
class=027012911-12082003></SPAN></FONT></SPAN><SPAN
class=027012911-12082003><FONT size=2><SPAN class=027012911-12082003>2. What
do you mean by "db"? Another flat file, or a real SQL
database?</SPAN></FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2><SPAN
class=027012911-12082003></SPAN></FONT></SPAN> </DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2><SPAN
class=027012911-12082003><FONT size=2>>></FONT></SPAN>specify. The
problem, I am faced with, however, is the counting and sorting of the chars. I
don't have a clue. This is as far as I got:</FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2>Try substr or
unpack.</FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2>From your desription, many
fields of specified length this sounds like a job for
unpack.</FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2>The Perl CookBook has a very
useful function called cut2fmt() or something, it takes "cut-off" values as
parameters, and returns the unpack format string required to unpack in that
format. In your case, the unpack would begin like:</FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2>@a = unpack( "A8 A4
A27");</FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2>You may want to generate this
string programatically is you have 88 fields to go in the
unpack!</FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=027012911-12082003><FONT
size=2>>>.#!/usr/bin/perl<BR><SPAN class=027012911-12082003><FONT
size=2>>></FONT></SPAN>open (FILE, "testfile") || die "Can't open file
!\n";<BR><SPAN class=027012911-12082003><FONT
size=2>>></FONT></SPAN>@file = <FILE>;<BR><SPAN
class=027012911-12082003><FONT size=2></FONT></SPAN></FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2><SPAN
class=027012911-12082003><FONT size=2>>></FONT></SPAN>my($record) =
split(/\n/, @file);</FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2>This is not needed, you
destroy the content on $record in the next statement, and the entire file
content is already broken into lines by the @file = <file>
statement.</FONT></SPAN><SPAN class=027012911-12082003><FONT
size=2></DIV></BLOCKQUOTE>
<BLOCKQUOTE
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV><SPAN class=027012911-12082003><FONT size=2>>></FONT></SPAN>foreach
$record (@file)<BR><SPAN class=027012911-12082003><FONT
size=2>>></FONT></SPAN>{<BR><SPAN class=027012911-12082003><FONT
size=2></FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2>>></FONT></SPAN>
my($char) = split(//, $record);<BR></DIV>
<DIV><FONT face=Arial># You'll want to use substr/unpack here, followed by the
write to the database</FONT></DIV>
<DIV><FONT face=Arial></FONT> </DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2>@a = unpack( "A8 A4
A27");</FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT
face=Arial></FONT></SPAN> </DIV>
<DIV><SPAN class=027012911-12082003><FONT
face=Arial></FONT></SPAN> </DIV>
<DIV><SPAN class=027012911-12082003><FONT face=Arial># this loop iterates over
all parameters in the last extraction and writes them alternatly (as you
showed in ur example) to the databases</FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT face=Arial># its scalable like this
and will handle any number of fields in the unpack
token</FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT face=Arial>$i =
0;</FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003>foreach $a (@a)</SPAN></DIV>
<DIV><SPAN class=027012911-12082003>{</SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT face=Arial> if (
$i++ & 1 )</FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT
face=Arial> {</FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT
face=Arial> # add $a to
database 1</FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003></SPAN><SPAN
class=027012911-12082003><FONT face=Arial>
}</FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT face=Arial>
else</FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT face=Arial>
{</FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT face=Arial>
# add $a to database 2</FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003><FONT face=Arial>
}</FONT></SPAN></DIV>
<DIV><SPAN class=027012911-12082003>} </SPAN></DIV>
<DIV> <BR><SPAN class=027012911-12082003><FONT
size=2>>></FONT></SPAN>}<BR><SPAN class=027012911-12082003><FONT
size=2>>></FONT></SPAN>close FILE;</DIV>
<DIV><FONT face=Arial></FONT> </DIV>
<DIV><FONT face=Arial></FONT> </DIV>
<DIV><FONT face=Arial>Does this help you at all?</FONT></DIV>
<DIV><FONT face=Arial></FONT> </DIV>
<DIV><FONT face=Arial>Thanks,</FONT></DIV>
<DIV><FONT face=Arial>Mark</FONT></DIV>
<DIV><FONT
face=Arial>----------------------------------------------------------------------------<BR>Windows,
Linux and Internet Development Consultant</FONT></DIV>
<DIV><FONT face=Arial>Email: <A
href="mailto:corporate@scriptsmiths.com">corporate@scriptsmiths.com</A><BR>Web:
<A
href="http://www.scriptsmiths.com">http://www.scriptsmiths.com</A></FONT></DIV>
<DIV><FONT face=Arial>Cell: +27 82
9655295<BR>---------------------------------------------------------------------------</FONT></DIV>
<DIV><FONT face=Arial></FONT></FONT></SPAN> </DIV>
<DIV><SPAN class=027012911-12082003><FONT size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=027012911-12082003></SPAN><FONT size=2><SPAN
class=027012911-12082003><FONT size=2>>></FONT></SPAN>Kind
Regards<BR><SPAN class=027012911-12082003><FONT
size=2>>></FONT></SPAN>Walter Kruse</FONT> <BR><FONT color=#0000ff
size=2><SPAN class=027012911-12082003><FONT color=#000000
size=2>>></FONT></SPAN><STRONG><U>MultiChoice Information
Technology</U></STRONG></FONT> <BR><FONT color=#008000 size=2><SPAN
class=027012911-12082003><FONT color=#000000
size=2>>></FONT></SPAN><STRONG>Software test
analyst</STRONG></FONT><FONT size=2><STRONG> - Application Delivery and
Support Team</STRONG></FONT> <BR><FONT color=#0000ff size=2><SPAN
class=027012911-12082003><FONT color=#000000
size=2>>></FONT></SPAN><STRONG>Tel:<I> </I></STRONG></FONT><I>
<FONT color=#0000ff size=2>+27 (0) 11 289-4552</FONT><B></B></I> <BR><FONT
color=#0000ff size=2><SPAN class=027012911-12082003><FONT color=#000000
size=2>>></FONT></SPAN><STRONG>Cell:</STRONG></FONT><I><STRONG> </STRONG>
<FONT color=#0000ff size=2>+27 (0) 82 660 7288</FONT></I> <BR><FONT
color=#0000ff size=2><SPAN class=027012911-12082003><FONT color=#000000
size=2>>></FONT></SPAN><STRONG>Email: </STRONG></FONT><U> <FONT
color=#0000ff size=2>walterk@multichoice.co.za</FONT></U> <BR><FONT
color=#0000ff size=2><SPAN class=027012911-12082003><FONT color=#000000
size=2>>></FONT></SPAN><STRONG>Personal web page:</STRONG></FONT><U>
<FONT color=#0000ff size=2><A href="http://www.ou-ryperd.net/"
target=_blank>http://www.ou-ryperd.net</A></FONT></U> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><SPAN class=027012911-12082003><FONT
size=2>>></FONT></SPAN>*********************************************************************************************************************<BR><SPAN
class=027012911-12082003><FONT size=2>>></FONT></SPAN>Everything in this
e-mail and attachments relating to the official business of
MultiChoice Africa is proprietary to the company. Any <SPAN
class=027012911-12082003><FONT size=2>>></FONT></SPAN>view or opinion
expressed in this message may be the view of the individual and should not
automatically be ascribed to the <SPAN class=027012911-12082003><FONT
size=2>>></FONT></SPAN>company. If you are not the intended
recipient, you may not peruse, use, disseminate, distribute or copy this
message. If you have <SPAN class=027012911-12082003><FONT
size=2>>></FONT></SPAN>received this message in error, please notify the
sender immediately by email, facsimile or telephone and destroy the original
<SPAN class=027012911-12082003><FONT
size=2>>></FONT></SPAN>message.<BR><SPAN class=027012911-12082003><FONT
size=2>>></FONT></SPAN>*********************************************************************************************************************</DIV>
<P>
<HR>
<P></P>_______________________________________________</BLOCKQUOTE></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<BLOCKQUOTE
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial"><BR>Za-pm mailing
list<BR>Za-pm@mail.pm.org<BR>http://mail.pm.org/mailman/listinfo/za-pm<BR></DIV></BLOCKQUOTE></BODY></HTML>