Skip to content
Snippets Groups Projects
Commit 6a44cb39 authored by Vesa Lappalainen's avatar Vesa Lappalainen :bicyclist:
Browse files

lukee Jasenet

parent 7f35340b
No related branches found
No related tags found
No related merge requests found
1|Ankka Aku 7413|190169-8454|Paratiisitie 13|12345|ANKKALINNA|12-1234|||1996|50.0|30.0|Velkaa Roopelle
2|Ankka Aku 9370|181008-646K|Paratiisitie 13|12345|ANKKALINNA|12-1234|||1996|50.0|30.0|Velkaa Roopelle
222|Ankka Aku 9370|181008-646K|Paratiisitie 13|12345|ANKKALINNA|12-1234|||1996|50.0|30.0|Velkaa Roopelle
223|Ankka Aku 3597|060170-6036|Paratiisitie 13|12345|ANKKALINNA|12-1234|||1996|50.0|30.0|Velkaa Roopelle
224|Ankka Aku 1529|020943-409U|Paratiisitie 13|12345|ANKKALINNA|12-1234|||1996|50.0|30.0|Velkaa Roopelle
......@@ -2,6 +2,8 @@ package kerho;
import java.io.*;
import fi.jyu.mit.ohj2.Mjonot;
import static kanta.HetuTarkistus.*;
/**
......@@ -130,7 +132,18 @@ public class Jasen {
return tunnusNro;
}
/**
* Asettaa tunnusnumeron ja samalla varmistaa että
* seuraava numero on aina suurempi kuin tähän mennessä suurin.
* @param nr asetettava tunnusnumero
*/
private void setTunnusNro(int nr) {
tunnusNro = nr;
if (tunnusNro >= seuraavaNro) seuraavaNro = tunnusNro + 1;
}
/**
* Palauttaa jäsenen tiedot merkkijonona jonka voi tallentaa tiedostoon.
* @return jäsen tolppaeroteltuna merkkijonona
......@@ -160,6 +173,43 @@ public class Jasen {
}
/**
* Selvitää jäsenen tiedot | erotellusta merkkijonosta
* Pitää huolen että seuraavaNro on suurempi kuin tuleva tunnusNro.
* @param rivi josta jäsenen tiedot otetaan
*
* @example
* <pre name="test">
* Jasen jasen = new Jasen();
* jasen.parse(" 3 | Ankka Aku | 030201-111C");
* jasen.getTunnusNro() === 3;
* jasen.toString().startsWith("3|Ankka Aku|030201-111C|") === true; // on enemmäkin kuin 3 kenttää, siksi loppu |
*
* jasen.rekisteroi();
* int n = jasen.getTunnusNro();
* jasen.parse(""+(n+20)); // Otetaan merkkijonosta vain tunnusnumero
* jasen.rekisteroi(); // ja tarkistetaan että seuraavalla kertaa tulee yhtä isompi
* jasen.getTunnusNro() === n+20+1;
*
* </pre>
*/
public void parse(String rivi) {
var sb = new StringBuilder(rivi);
setTunnusNro(Mjonot.erota(sb, '|', getTunnusNro()));
nimi = Mjonot.erota(sb, '|', nimi);
hetu = Mjonot.erota(sb, '|', hetu);
katuosoite = Mjonot.erota(sb, '|', katuosoite);
postinumero = Mjonot.erota(sb, '|', postinumero);
postiosoite = Mjonot.erota(sb, '|', postiosoite);
kotipuhelin = Mjonot.erota(sb, '|', kotipuhelin);
tyopuhelin = Mjonot.erota(sb, '|', tyopuhelin);
autopuhelin = Mjonot.erota(sb, '|', autopuhelin);
liittymisvuosi = Mjonot.erota(sb, '|', liittymisvuosi);
jmaksu = Mjonot.erota(sb, '|', jmaksu);
maksu = Mjonot.erota(sb, '|', maksu);
lisatietoja = Mjonot.erota(sb, '|', lisatietoja);
}
/**
* Testiohjelma jäsenelle.
......
......@@ -3,7 +3,9 @@ package kerho;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.PrintStream;
import java.util.Scanner;
/**
* Kerhon jäsenistö joka osaa mm. lisätä uuden jäsenen
......@@ -78,7 +80,21 @@ public class Jasenet {
*/
public void lueTiedostosta(String hakemisto) throws SailoException {
tiedostonNimi = hakemisto + "/nimet.dat";
throw new SailoException("Ei osata vielä lukea tiedostoa " + tiedostonNimi);
File ftied = new File(tiedostonNimi);
try (Scanner fi = new Scanner(new FileInputStream(ftied))) { // Jotta UTF8/ISO-8859 toimii'
while ( fi.hasNext() ) {
String s = fi.nextLine();
if ( s == null || "".equals(s) || s.charAt(0) == ';') continue;
Jasen jasen = new Jasen();
jasen.parse(s); // kertoisi onnistumista ???
lisaa(jasen);
}
} catch ( FileNotFoundException e ) {
throw new SailoException("Ei saa luettua tiedostoa " + tiedostonNimi);
//} catch ( IOException e ) {
// throw new SailoException("Ongelmia tiedoston kanssa: " + e.getMessage());
}
}
......@@ -119,6 +135,12 @@ public class Jasenet {
public static void main(String args[]) {
Jasenet jasenet = new Jasenet();
try {
jasenet.lueTiedostosta("kelmit");
} catch (SailoException ex) {
System.err.println(ex.getMessage());
}
Jasen aku = new Jasen(), aku2 = new Jasen();
aku.rekisteroi();
aku.vastaaAkuAnkka();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment