10-12-2005, 15:54
|
|
|
חבר מתאריך: 18.11.05
הודעות: 23
|
|
עוד שאלה חשובה בג'אווה!
כמעט סיימתי את בניית התוכנית,
אז לפני שאשאל את השאלות - הנה הקוד:
קוד:
import javax.swing.*;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import javax.swing.JOptionPane;
public class PhoneBook
{
public static void main(String[] args)
{
String fileName = "";
String name = "";
String phoneList = "";
String lastName = "";
String firstName ="";
String phoneNum = "";
boolean moreName = true;
boolean chackFile=true;
fileName = JOptionPane.showInputDialog ("Please enter your phone file name:");
if (fileName == null || fileName.equals (""))
{
System.exit (0);
}
else
{
phoneList = readFile(fileName);
}
Scanner scan = new Scanner(phoneList);
StringBuffer longMessage = new StringBuffer();
while(moreName)
{
name = JOptionPane.showInputDialog ("Please enter first name of the requested name");
if (name == null || name.equals (""))
{
moreName = false;
System.exit (0);
}
else
{
while (chackFile)
{
lastName = scan.next();
firstName = scan.next();
phoneNum = scan.next();
if (firstName.equals(name))
{
longMessage.append (lastName).append (" ").append (firstName).append (" ").append(phoneNum).append("\n");
JOptionPane.showMessageDialog (null, longMessage);
}
if (lastName.equals(null)||lastName.equals(" "))
{
//Finish loop, return to name :P
chackFile = false;
}
}
}
}
}
/**
* Reads in a complete file into a single string.
*
* @param fileName name of file to read.
* @return a new String object containing the contents of the file
*/
private static String readFile (String fileName)
{
String text = null;
try
{
// Create a new scanner with the file as its input stream.
File file = new File (fileName);
Scanner scan = new Scanner (file);
// Use the begining of the file as a bogus delimiter, thus forcing
// a single token to contain the complete file (since '\A' will
// never be found).
scan.useDelimiter (" \\A");
text = scan.next();
scan.close();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
return text;
}
}
ומצורף קובץ הטקסט הנ"ל:
https://2005-uploaded.fresh.co.il/2...10/81226885.txt
עכשיו נאמר והכנסתי שם לקליטה Bill, איך אני מאפס את המחרוזת longMessege לפני תחילת כל קלט בשביל שלא יופיעו השמות כמו שהם מופיעים כרגע (אחד מתחת לשני מתוך אילוץ...), מלבד זה, איך אני יודע שהקובץ נגמר וצריך לקלוט שם חדש? כי נכון לעכשיו ברגע שהקובץ נגמר התוכנית נסגרת לי באופן אוטומטי בצורה לא רצוייה,
אשמח לקבל תשובה בהקדם, זה ממש ממש חשוב! צריך להגיש את התרגיל עד מחר בבוקר!!!!
_____________________________________
אל תדחו למחר מה שאפשר לדחות למחרתיים!
|