hey guys I have a small problem and I hope you can help me out!
So I want to programm a little Java Programm that does the Following:
1. Read a TXT File, each line is a Data Set, each line and each data set has a fixed length
2. Sort the data
3. Output stuff
Here is my Programm so far, it only reads the given txt file and outputs it.
Ignore the comments, they are in german
this is the txt file:
So how would I treat each Data set (i.e Max Preis ..) as a single variable so I can do calculations with it , and sort them using bubble sort?
So I want to programm a little Java Programm that does the Following:
1. Read a TXT File, each line is a Data Set, each line and each data set has a fixed length
2. Sort the data
3. Output stuff
Here is my Programm so far, it only reads the given txt file and outputs it.
Code:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
public class DateiLesen {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String Artikel, Artnr, Artbez, Menge, Herst;
Double Preis, Maxpreis, Minpreis;
Byte Lieferz;
int Best, Maxbest, Minbest;
int z = 0;
//Aufruf UP zum Lesen eines Satzes aus Datei
Artikel = ReadIn(z);
// Erster Aufruf des UP, bereits vor der Schleife
while (Artikel != null) // Beginn der eigentlichen Programmschleife
{
System.out.println(Artikel);
System.out.println();
Artnr = Artikel.substring(0,8);
Artbez = Artikel.substring(9,39);
Menge = Artikel.substring(40,42);
Herst = Artikel.substring(58,99);
Best = Integer.parseInt(Artikel.substring(44,47));
Maxbest = Integer.parseInt(Artikel.substring(49,52));
Minbest = Integer.parseInt(Artikel.substring(54,57));
Preis = Double.parseDouble(Artikel.substring(101,107));
Maxpreis = Double.parseDouble(Artikel.substring(109,115));
Minpreis = Double.parseDouble(Artikel.substring(117,123));
Lieferz = Byte.parseByte(Artikel.substring(124));
System.out.println("Artikelnummer : " + Artnr);
System.out.println("Artikelbezeichnung : " + Artbez);
System.out.println("Mengeneinheit : " + Menge);
System.out.println("Maximalbest : " + Maxbest);
System.out.println("Minimalbest : " + Minbest);
System.out.println("Hersteller : " + Herst);
System.out.println("Preis : " + Preis);
System.out.println("Maximalpreis : " + Maxpreis);
System.out.println("Minimalpreis : " + Minpreis);
System.out.println("Bestand : " + Best);
System.out.println("Lieferzeit : " + Lieferz);
System.out.println("--------------------------------------------------");
z = z + 1;
Artikel = ReadIn(z);
}
}
// Unterprogramm zum Einlesen der Datenstze
public static String ReadIn(int i)
{
// Deklaration/Initialisierung notwendiger lokaler Variablen
int pos = 127 * i; // Berechnung der Datensatz-Position, nur bei Stzen fester Lnge mglich
String Einzelartikel;
// Lesen der einzelnen Datenstze
// Verwendung der try-catch-Anweisung zwecks Exception-Handling
try
{
File Datei = new File("/artikel.txt");
FileReader FileReader = new FileReader(Datei);
BufferedReader Reader = new BufferedReader(FileReader);
Reader.skip(pos); // Positioniere auf den nchsten Datensatz
Einzelartikel = Reader.readLine(); // Datensatz wird gelesen
Reader.close(); // Lesepuffer wird geschlossen
return Einzelartikel; // Zur¸ck zum rufenden Programm mit Datensatz
// Gibt <null> zur¸ck, falls kein Datensatz mehr
}
catch(Exception Fehler)
{
System.out.println("Es trat folgender Fehler auf: " + Fehler); // Keine weitere Fehlerbehandlung
return null;
}
}
}
Ignore the comments, they are in german
this is the txt file:
Code:
51100210 Holzfenster einfach 6*15 ST 0160 0800 0150 Vereinigte Bauelementewerke Hennigsdorf 0495.80 0629.25 0499.80 5
51100211 Holzfenster einfach 10,5*15 ST 0410 0500 0100 Vereinigte Bauelementewerke Hennigsdorf 0529.95 0595.00 0499.80 4
51100212 Holzfenster Verbund 6*15 ST 0620 1500 0300 Fensterbau Halle 0563.00 0625.95 0545.95 5
51100213 Holzfenster Verbund 10,5*15 ST 0800 1500 0300 Fensterbau Halle 0619.00 0649.00 0569.95 4
51100214 Holzfenster Thermoscheibe 6*15 ST 0570 1200 0250 Bauelementewerke Erfurt 0665.50 0665.80 0583.95 4
51100215 Holzfenster Thermosch. 10,5*15 ST 0275 1200 0200 Bauelementewerke Erfurt 0629.50 0679.80 0595.85 6
51300220 Aussentuer ATM 10,5*21 ST 0125 0400 0100 Holzbau Neubrandenburg 1150.00 1384.00 1139.95 3
51300221 Aussentuer ATM 10,5*21 M ST 0380 0400 0100 Holzbau Neubrandenburg 1440.50 1495.95 1180.00 5
51300222 Aussentuer ATM 10,5*21 S ST 0101 0370 0080 Vereinigte Bauelementewerke Erfurt 2760.50 2830.22 2740.00 4
51400223 Tuerfluegel TV 9*20 L ST 1100 1050 0195 Holzwerke Oranienbaum 0929.00 0995.00 0899.95 2
51400224 Tuerfluegel TV 9*20 R ST 0920 1050 0195 Holzwerke Oranienbaum 0929.00 0995.00 0899.95 2
51600225 Futtertuer TV-F14,5 9*20 L ST 0720 0860 0150 Vereinigte Bauelementewerke Stralsund 1499.50 1595.80 1490.50 4
51600226 Futtertuer TV-F14,5 9*20 R ST 0684 0860 0150 Vereinigte Bauelementewerke Stralsund 1529.80 1595.80 1490.50 4
51700227 Blendrahmentuer TG2-B 9*20 L ST 0012 0480 0080 Forstwirtschaftsbetrieb Waren 1859.20 1899.00 1595.00 3
51700228 Blendrahmentuer TG2-B 9*20 R ST 0310 0480 0080 Forstwirtschaftsbetrieb Waren 1838.00 1899.00 1595.00 3
52100230 Likolit-Belag Extra QM 0100 2000 0500 Linoleumwerke Kohlmuehle 0038.15 0047.95 0038.15 5
52100231 Radeberger Treppenbelag QM 0210 0800 0200 Bauproduktion Radeberg 0029.55 0029.55 0028.95 1
52100232 Stahl-Pur-Bit-Dachelement QM 1150 3000 0800 Holz- und Leichtmetallbauelemente Leipzig 0109.95 0119.00 0099.30 1
61100240 Brausekabine ST 0005 0080 0010 TGA Magdeburg 0962.50 0983.45 0910.00 2
61100241 Praezisionsverdunkl.-Anl.15*20 ST 0007 0160 0040 Licht- und Sonnenschutzanl. Friedrichroda 0316.60 0333.20 0316.60 5
So how would I treat each Data set (i.e Max Preis ..) as a single variable so I can do calculations with it , and sort them using bubble sort?