Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Java Page Break Every 3 Lines

Posted on 2009-07-15
15
Medium Priority
?
339 Views
Last Modified: 2013-11-23
Right now I am doing some screen scraping of a site.  I want to be able to format the data properly in the txt file, but can't seem to get it to work.  The end result that I want is this:

text1, text2, text3
text4, text5, text6

So 3 items would be printed out, the 1st two with a comma after each, then the last one with no comma and go to the next line.

Right now my code below produces this:

text1, text2, text3, text4, text5, text6,

Any thoughts or suggestions would be appreciated!
// Output a message to the log so we know that we'll be writing the text out to a file.
session.log( "Writing data to a file." );
 
// Create a FileWriter object that we'll use to write out the text.
out = new FileWriter( "form_submitted_text.txt", true );
 
// Write out the text.
out.write( session.getVariable( "Identifier" ) );
out.write (", ");
 
// Close the file.
out.close();

Open in new window

0
Comment
Question by:bschwarting
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 8
  • 3
  • 2
  • +1
15 Comments
 
LVL 86

Expert Comment

by:CEHJ
ID: 24861274
Use a PrintWriter on your FileWriter and do out.println();
0
 
LVL 1

Author Comment

by:bschwarting
ID: 24861285
very new to java, can you give an example please CEHJ?
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 24861369
Hang on, what's the value of

>> session.getVariable( "Identifier" ) ;

?
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
LVL 1

Author Comment

by:bschwarting
ID: 24861384
text1
0
 
LVL 1

Author Comment

by:bschwarting
ID: 24861393
it loops through and then gets "text2", then "text3"
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 24861467
>>it loops through

What does?
0
 
LVL 5

Expert Comment

by:sno0401
ID: 24861627
How can it loop through without any sort of loop/control logic? Is there more to your code than this?
0
 
LVL 1

Author Comment

by:bschwarting
ID: 24861792
The screen scraping software calls this small piece of code each time their is something found in interactive.
0
 
LVL 1

Author Comment

by:bschwarting
ID: 24861815
Sorry, when found in identifier
0
 
LVL 5

Expert Comment

by:sno0401
ID: 24862180
Not having the screen scraping software it is difficult to give an absolute answer but here is something i've written up to give you an idea of a way to go about it.
By dividing by 3 and getting the remainder, you are able to decide which way to print the word, whether it is followd by a comma or followed by no comma but a new line instead.
Hope this helps.
public class Lister {
 
	public static void main(String[] args) {
		String[] words = {"text1", "text2", "text3", "text4", "text5", "text6"};
        int size = words.length;
 
        for (int x = 0; size > x; x++)
        {
            String currentWord = words[x];
 
            int y = x % 3;
            if (y == 0 || y == 1) {
                System.out.print(currentWord +", ");
            } else {
                System.out.println(currentWord);
            }
        }
    }
}

Open in new window

0
 
LVL 3

Accepted Solution

by:
SordSord earned 2000 total points
ID: 24862205
You can add another variable to the session object to keep track of the times your function has been called.

Also, depending on how the rest of your code is structured, there may be much easier ways of doing the same thing.
session.log( "Writing data to a file." );
out = new FileWriter( "form_submitted_text.txt", true );
out.write( session.getVariable( "Identifier" ) );
 
// get or create WriteCount
Integer writecount = session.getVariable("WriteCount");
if (writecount == null) {
  writecount = new Integer(0);
}
 
// increment WriteCount
writecount = new Integer(writecount.intValue()+1);
session.putVariable("WriteCount", writecount);
 
// determine if line break or comma is needed
if (writecount.intValue()%3 == 0) {
  new PrintWriter(out).println();
} else {
  out.write (", ");
}
 
out.close();

Open in new window

0
 
LVL 1

Author Comment

by:bschwarting
ID: 24863669
sord, this looks exactly like what i need.

when i run it, i get this error:

"method putVariable not found"
0
 
LVL 1

Author Comment

by:bschwarting
ID: 24863724
The error message was: Error in method invocation: Method putVariable( java.lang.String, java.lang.Integer ) not found in class'com.screenscraper.scraper.ScrapingSession' : at Line: 13.
0
 
LVL 3

Assisted Solution

by:SordSord
SordSord earned 2000 total points
ID: 24864097
Try setVariable( String identifier, Object value ) instead.
0
 
LVL 1

Author Closing Comment

by:bschwarting
ID: 31603839
pure genius!  i love EE!
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Today, the web development industry is booming, and many people consider it to be their vocation. The question you may be asking yourself is – how do I become a web developer?
This article discusses how to implement server side field validation and display customized error messages to the client.
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…
Suggested Courses

722 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question