0

Hi,

I have stumbled on an interesting problem. I have thought 'n' thought, but haven't come up with any good ideas of how to handle this.

I have a text file that contains many records, but without the records being seperated. I need to figure out how to seperate these files, or at least how to write a program that recognizes different records and can then seperate them.

I don't expect anyone to write my program for me, but I need help seperating the records.

The beginning of every record looks like this: MSUBUGA JIMSON
P O BOX 21273
GABORONE
(Obviously they are all different, but always have 3 values on 3 lines.)
The end looks like this:
P107.17 P0.00 P225.08 P0.00 P332.25
(The numbers always vary, but there are always 5)

Any help will be greatly appreciated, Thank you.

3
Contributors
6
Replies
7
Views
7 Years
Discussion Span
Last Post by P00dle
Featured Replies
  • 1

    BufferedReader, readLine, a counter, and String's split. Read More

  • Hi.. You can use fileReader. Like an example : FileReader reader = new FileReader( “file.txt" ) ; BufferedReader in = new BufferedReader( reader ) ; InputStream, readLIne Read More

1

Hi..
You can use fileReader. Like an example :

FileReader reader = new FileReader( “file.txt" ) ;
BufferedReader in = new BufferedReader( reader ) ;

InputStream, readLIne

0

Thank you for all the quick replies.

I won't mark this thread as solved just yet, as I may have more questions later, but I will both ways and see what happens.

Great work guys :P

0

Eek!

Well, both ways worked. I handed in my project. Boss was satisfied.

The client gave us the wrong data though :/

Is there any way in java to determine whether or not a line of data is binary or text? e.g. it will always be one of the two.

Is there a method like [var].isBinary() or something? If so, which library should I import for it. I'm stumped. Googl'ing has proved fruitless so far, and I need to get this done by tomorrow this time.

Please help.

0

Well, text, is also "binary". If what you're reading might contain something that is not strictly plain text, then use a BufferedInputStream (with FileInputStream), rather than reader and convert the text parts to text with new String(byte[]).

0

Well, text, is also "binary". If what you're reading might contain something that is not strictly plain text, then use a BufferedInputStream (with FileInputStream), rather than reader and convert the text parts to text with new String(byte[]).

Thanks masijade!

Im going to try the following:

byte bytearray []  = test.getBytes();
     System.out.println("Test string : " + test);

     CharsetDecoder d = Charset.forName("US-ASCII").newDecoder();
     try {
       CharBuffer r = d.decode(ByteBuffer.wrap(bytearray));
       r.toString();
     }
     catch(CharacterCodingException e) {
       System.out.println("only regular ASCII characters please!");
       // interrupt the processing
       throw new Exception(e);
     }
     System.out.println("Ok, it's ASCII only!");
This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.