| Generierte Dokumentation der praktischen Arbeit von Simon Tiffert |

Definiert in Zeile 42 der Datei Eingabe.java.
Öffentliche Methoden | |
| Eingabe (Matrix matrix, String dateiName) throws UnexpectedCharacterException, UnexpectedLineException, UnknownCharacterException, TooFewCharactersException, TooFewSperrfelderException, FileNotFoundException, IOException, IsSperrfeldException, IsStartpunktException, WrongDimensionException | |
| Konstruktor, welcher die Matrix übernimmt, die Datei zuweist und mit diesen Daten die Funktion leseDaten() aufruft. | |
Private Methoden | |
| void | leseDaten (Reader stream) throws UnexpectedCharacterException, UnexpectedLineException, UnknownCharacterException, IOException, TooFewCharactersException, TooFewSperrfelderException, IsSperrfeldException, IsStartpunktException, WrongDimensionException |
| Diese Funktion liest die Eingabedatei aus. | |
Private Attribute | |
| Matrix | matrix |
| Feld für Matrix. | |
|
||||||||||||
|
Konstruktor, welcher die Matrix übernimmt, die Datei zuweist und mit diesen Daten die Funktion leseDaten() aufruft.
Definiert in Zeile 64 der Datei Eingabe.java. Benutzt main.eingabe.Eingabe.leseDaten().
|
Hier ist der Graph aller Aufrufe für diese Funktion:

|
|
Diese Funktion liest die Eingabedatei aus. Außerdem findet hier ein Teil der Syntaxüberprüfung statt, welche die Eingabedaten auf Korrektheit überprüft.
Definiert in Zeile 102 der Datei Eingabe.java. Wird benutzt von main.eingabe.Eingabe.Eingabe().
00113 {
00114 // Aktuell gelesene Zeile
00115 String zeile = "";
00116
00117 // Anzahl gesperrter Felder
00118 int gesperrteFelder = 0;
00119
00120 // Koordinaten des aktuellen Punktes
00121 int y = 0, x = 0;
00122
00123 // Lies die Datei zeilenweise und speichere dabei die
00124 // aktuelle Zeilennummer
00125 LineNumberReader lineNumber = new MyLineNumberReader(stream, "**");
00126
00127 // StringTokenizer, der einen String in Token aufteilt
00128 StringTokenizer st;
00129
00130 // Lies die erste Zeile aus der Eingabedatei und verarbeite sie
00131 if ((zeile = lineNumber.readLine()) != null)
00132 {
00133 st = new StringTokenizer(zeile);
00134 }
00135 // Wenn dies nicht klappt, ist die Datei leer und eine Exception
00136 // wird geworfen
00137 else
00138 {
00139 throw new TooFewCharactersException(
00140 "" + lineNumber.getLineNumber());
00141 }
00142
00143 // Lies die Zahlen, fange ab, wenn dabei Probleme auftauchen
00144 try
00145 {
00146 // Lies die Dimensionsangaben
00147 y = Integer.parseInt(st.nextToken());
00148 x = Integer.parseInt(st.nextToken());
00149 }
00150 catch (NoSuchElementException e)
00151 {
00152 throw new TooFewCharactersException(
00153 "" + lineNumber.getLineNumber());
00154 }
00155 catch (Exception e)
00156 {
00157 throw new UnknownCharacterException(
00158 "" + lineNumber.getLineNumber());
00159 }
00160
00161 // Erstelle die Matrix in der Dimension y*x
00162 matrix.setMatrix(y, x);
00163
00164 // Wenn noch weitere Zeichen in der Zeile sind, werfe Fehler
00165 if (st.hasMoreTokens())
00166 {
00167 throw new UnexpectedCharacterException(
00168 "" + lineNumber.getLineNumber());
00169 }
00170
00171 // Lese die zweite Zeile für den Startpunkt
00172 // wenn keine Eingabedaten da sind, werfe Exception
00173 if ((zeile = lineNumber.readLine()) != null)
00174 {
00175 st = new StringTokenizer(zeile);
00176 }
00177 else
00178 {
00179 throw new TooFewCharactersException(
00180 "" + lineNumber.getLineNumber());
00181 }
00182
00183 // Lies die Zahlen, fange ab, wenn dabei Probleme auftauchen
00184 try
00185 {
00186 // Lies Koordinaten des Startpunktes
00187 y = Integer.parseInt(st.nextToken()) - 1;
00188 x = Integer.parseInt(st.nextToken()) - 1;
00189 }
00190 catch (NoSuchElementException e)
00191 {
00192 throw new TooFewCharactersException(
00193 "" + lineNumber.getLineNumber());
00194 }
00195 catch (Exception e)
00196 {
00197 throw new UnknownCharacterException(
00198 "" + lineNumber.getLineNumber());
00199 }
00200
00201 // Setze den Startpunkt für die Sprungfolge
00202 matrix.setStartpunkt(y, x);
00203
00204 // Wenn noch weitere Zeichen in der Zeile sind, werfe Fehler
00205 if (st.hasMoreTokens())
00206 {
00207 throw new UnexpectedCharacterException(
00208 "" + lineNumber.getLineNumber());
00209 }
00210
00211 // Lies Anzahl gesperrter Felder ein (optional)
00212 if ((zeile = lineNumber.readLine()) != null)
00213 {
00214 // Lies die Zahl, fange ab, wenn dabei Probleme auftauchen
00215 try
00216 {
00217 gesperrteFelder = Integer.parseInt(zeile);
00218 }
00219 catch (Exception e)
00220 {
00221 throw new UnknownCharacterException(
00222 "" + lineNumber.getLineNumber());
00223 }
00224
00225 // Besetze gesperrte Felder der Matrix mit '-1'
00226 for (int i = 0; i < gesperrteFelder; i++)
00227 {
00228 if ((zeile = lineNumber.readLine()) != null)
00229 {
00230 st = new StringTokenizer(zeile);
00231
00232 // Lies die Zahlen, fange ab, wenn dabei Probleme auftauchen
00233 try
00234 {
00235 // Lies Koordinaten, setze den Punkt in der Matrix
00236 y = Integer.parseInt(st.nextToken()) - 1;
00237 x = Integer.parseInt(st.nextToken()) - 1;
00238 }
00239 catch (NoSuchElementException e)
00240 {
00241 throw new TooFewCharactersException(
00242 "" + lineNumber.getLineNumber());
00243 }
00244 catch (Exception e)
00245 {
00246 throw new UnknownCharacterException(
00247 "" + lineNumber.getLineNumber());
00248 }
00249
00250 // Wenn noch weitere Zeichen in der Zeile sind, werfe Fehler
00251 if (st.hasMoreTokens())
00252 {
00253 throw new UnexpectedCharacterException(
00254 "" + lineNumber.getLineNumber());
00255 }
00256
00257 // Setze das ermittelte Sperrfeld
00258 matrix.setSperrfeld(y, x);
00259 }
00260 else
00261 {
00262 throw new TooFewSperrfelderException();
00263 }
00264 }
00265 }
00266
00267 // Wenn noch weitere Zeichen am Ende der Datei sind, werfe Fehler
00268 if (lineNumber.readLine() != null)
00269 {
00270 throw new UnexpectedLineException(
00271 "" + lineNumber.getLineNumber());
00272 }
00273 }
|
|
|
Feld für Matrix.
Definiert in Zeile 45 der Datei Eingabe.java. |
|
|
|
| Documentation created with Doxygen 1.3.6 | Fri May 14 11:15:39 2004 |