| |||||||||||
| |||||||||||
How to split a file but not line by line Posted by carlos (carlos), 18 April 2005 Hello,I was trying to split one file that contains a table of a database, but i couldn't. ![]() My file has as a field separator chr(1) and as a "row" separator chr(2). But the problem is that the content of the last field can contain newline character and so on. e.g: For the example here I replaced chr(1) into '|' and chr(2) into '%' The source file ... 50003|KLECZ0003|12.12.2002|MP|[MPID]181519;(LZA) AA: adi DERMASN GGGHHVN%50003|KLECZ0003|05.01.2004|MP|[MPID]278427;(LZA) AS:dfs Dear John regards, NoName%50004 ... The script ... open fh, "<SourceFile.txt" or die "Couldn't open file: SourceFile.txt $!"; @Records = split (/%/,<fh>); print "Records = @Records"; close(fh); foreach $record (@Records) { ($code,$pat_id,$date,$type,$desc)=split(/\|/,$record); print "Description = $desc \n"; } ... It prints: Records = 50003|KLECZ0003|12.12.2002|MP|[MPID]181519;(LZA) Description = [MPID]181519;(LZA) But what i want to get, is: [MPID]181519;(LZA) AA: adi DERMASN GGGHHVN Could you help me on this, please? Thanks in advance. Carlos Posted by admin (Graham Ellis), 18 April 2005 Open the file and read it withread (FH,$buffer,-s "filename.xxx"); Then @rows = split(/\x01/,$buffer); foreach $record(@rows) { @fields = split(/\x02/,$record); } This page is a thread posted to the opentalk forum
at www.opentalk.org.uk and
archived here for reference. To jump to the archive index please
follow this link.
|
| ||||||||||
PH: 01144 1225 708225 • FAX: 01144 1225 793803 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho |