From 9c4166a8f8acc4b1ea07d639c86573b6840fa898 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?L=C3=A4sp=C3=A4=20Vili=20Valtteri?=
 <vili.v.laspa@student.jyu.fi>
Date: Sat, 29 Mar 2025 19:32:29 +0200
Subject: [PATCH] liikeiden tallentaminen tiedostoon alku

---
 puntti/Puntti.jar               | Bin 236750 -> 236750 bytes
 puntti/batman/liikkeet.dat      |   2 ++
 puntti/src/puntti/Liike.java    |  20 ++++++++++++++++++++
 puntti/src/puntti/Liikkeet.java |  28 ++++++++++++++++++++++++++++
 puntti/src/puntti/Puntti.java   |   9 +++++++++
 5 files changed, 59 insertions(+)
 create mode 100644 puntti/batman/liikkeet.dat

diff --git a/puntti/Puntti.jar b/puntti/Puntti.jar
index 6db2e2c9ba350029eed79af235b0eb702a0bc941..d3a355d638f17ffdc78efa28f3eb31cb614c6e26 100644
GIT binary patch
delta 1179
zcmX@NlkeP4KHdOtW)?061`Y-W!HSxRyc)~`6*U_zKG-ptCT`ZUH<I9$D$I#G9CUKm
zR%Ql<d6P54Lz$*oO+FBARWG_@U;gWTSHFDCdQkCo+0*dOhZ7{K%+9zkdpG0Vu6<i}
zC9eI+vr_Z+*1wr;DH}tQC*)P~ujQHKk*=tGwBXQ&*lfcaF<YfVi?42!_|&#N&B}Ch
zBKJPkDS!0esvTZ%@$Ek@Nv?-IuV?-Kw2_nTtDfYI*<ok%ZawL|GB5wvw&#<!%ds8K
zUh`U-adLfxX#Fh7FN@+;3>_|tKKC+hls@ywcTU;_+1;75cy=xl+`iIf#r91W-Aq4?
zlMforQPFpcICx;Y?A;BTO03T%f2B*`OWV1jU&kV3Q&D2gCkeerM#oj#%&pFDs*rZ&
zTAf*++d6gr=?7fviZZ5raXe>ycG*>h4+3qj28!j+S05-@VfNRx{_%pDr|S-vUDy8n
zdFiaC@?ESZhDyr6R7HA9U1LutFugB|S^h~TrttD-nbRekXSmF4v^Sc2AnI4s!u1vF
zQ)C)LU0wx8?qN5Ke7&e@`K_znXX9O;)H<hF95(nVuPM9LLQBx|{;OH%Ry0}1PJPT}
z_hQwOmp;E8cmK6~eBr@GkI%aGr`KM8EBLD5xx&`a>$k3C%$CXyew^zS^Q_|bziru_
zr>pq*r9yXozMGr>cK_Z(if=;FH7=)A*W5I}{)+oqSjM4`k;nBqvd&J3{MK}AmT5Nk
z`kg;s%Zeq;VKz0EQdpE>dttip^2;Y*Oj-ZNp;Bm-@fY9LL&6qr_j6ble72YyqIaoY
z%|m=))e9B(&ifn_)vDf07HL~sWZF2t@7mM6kM-@V^8u{tg4<W{Znapb?LABD=$6#T
z;HNw6mabeWcAoXT=~UtM6F>Mwo}BN!`c!aC!jCd>Ro||bDt))4M}Jmq=`IZQv~yK$
zTzLG!rTz(%RBj*r{d4xjAg-ya?yS68@#JHf+PnIEvv>Ya=c+Ag35qxrdCSegUW8`>
zzn1MP$DWH^yL&IMc*G-jY0;|14Y{w*np^b0FJQD6e5I=QkU!?w{4E)A3njKas0+Cj
z#x3%vncvX;==q2GXC5nO9gjRD?V@VfbAO}5l$OjtU9O8#e%T!q3e>bY!2e^0hF^Jo
zzkk8>J-XXxImmdfQu#SWrCxb!`|%`O<31Vp_Y?oSs#s*n2v@WGkB>1rw9)p|UsG$D
z%DsFmdFHpTPk0&+%Xl0N9EqF#qpz|u12f=c^+Y)^?UASirgIb3K=kHmiP1?cKt|N`
z1rM2|Hwzs3w-hA4T`-IBk}R0@tevq(8q6wP%vkjk%=$EkNy8S*lD)-b+yY`v4~}ED
z0A=#+eR0fgtiWu({aP~f3P#j?KD|4Y*`A3bar&85<|$xp$!W}bV8)a*W+O1;RXMZt
z^e1V|5KEcTnJ=?KT-Y^@S!(;|9Of@vAa&b;>S`FltjtR08YZw_AWM2Xa}6`U2v|aN
Q0`oGk|F`d($}GSR0OL*-)c^nh

delta 1179
zcmX@NlkeP4KHdOtW)?061`Y;>?Up$cc{P}~S>|lC_+ZDh)^f9!y^#d(TFacMK1s<r
zTbUUc=1$HG4`rHUJ^4VmRsGeH<^$K5PxF7ty8Q9gKGBfQhZ7{K%+9zkdpG0Vu6<i}
zC9Y-VS*dw@Yjb8>%Epl733-+LYk4Mlq$?^PEjY9xHhbgFomr-<o~=qYe8QW5wj?X<
zuvm?^25bB+yTc1EzWv7~$@Q@3^{n5YHgd9k)swt2JM8SY+)pl9`UcFmi%&-PvpqDu
z_O(}Sa(#qo{U4sHi~5r!7QE;xUOMXlZ`wySKjRa9Z)dAHugf@+t0nkqt<Jec4*$+X
zY~WEp*)15hLGngl-VKq7O`m!GZsyJ39CO26Ohzkmr-5B1k9gtC$3lmt=cYyO=~Zfd
zdOJQk@#%A;9Zjocq*QAseC~N4&CA4}7{MZ3RK7237T?un`!nigOo}ZtZoI2Xt=kt8
z{K0Q~gPL24%l?+8jq6rqOZq&B?Ry<EuUR{<YF_fpJh90d#vk05UEVTnU&0IRd)kuj
z38E8!g^0a(^trZc#l4kfUz0wE3s&A2kUVGL^UvMOUANE6<<j<D%Zyh&@C$#sqltf)
zR;Ja|1$Y0>Da?46vFPWtr}fuff8#LSQQUWHRd#OH7T?~jD?ggKmM@jfx4u!PTNru%
zq2*$ya=YDc*Zy4|ZqYLL6;JA{oPK@wXHm5W?{N8A*u9Qm4O}T{bUJSH#<a7y4rS~8
zt7vDHc<!*b=UKbPExs>LkGw1~vU;j*9Wbxu6;EyO!VfHc7tN&^U)cDmPwn1P&w0sp
zg`CyNz(?jzOFHjWx7|6#=O=ak!fvJa3-TRz|1u6a=y^mp%URd&#i>clybN<AuZ38y
z^Uus$b+q_kvG3C(*(x@{VV|B~TJ=dpTw>o{SI@~x3-5JLoMB<F^)@LcbdrCdXTl4^
z9bc4}sGKbOSobe&$rPuhTIE@$a+Q1LcK)uP-TOPZa(So5LXl|&)20bt;Adri(d?C<
zC6K)3VBTYsRTj<dTb94lNSIyqnfKgd>zD)nEmfV~KbWU~RDU}&T%%2Qhy2uSSD9G<
zKX5)1__6p0_varSw+g3yU<>r*d0eg|pqePPKWU=I%zgeFTtc|`KQP;=bzQ!D|FQ5L
z)%??I)g0U>X?fbIp1kkz_Tk1G=X#WnU#xyoFUZ*^b^M6j!T;jZdkS*;i|WtvxyP+{
z);j$Bp?1ViaahLVU;ySc|LCi%%)ksdSv^q>OnW3Mf$7{tH4wddT4Hn(3y={teZfN}
z>CFO1{w)QGZx_sByd(=|J!@y|kp{C$7c*A<1hYQPVbZV#vt(~E8MlB~(}UxfEkK!k
zdtV&08!IrIZ@-qzyn+!mpHJ^jWwr;(O+S;$JO!*RIgMEl%$SnKYy@V!Drc6S{v?eV
zVkuKP^JP|u3%jN<OKtz0!~BH{q;5M<T@53cm08JL!vxj~WJzylu3_dE0ZWKZU|t6H
L|Mq=TnFZJZ3RV~@

diff --git a/puntti/batman/liikkeet.dat b/puntti/batman/liikkeet.dat
new file mode 100644
index 0000000..6a69d3d
--- /dev/null
+++ b/puntti/batman/liikkeet.dat
@@ -0,0 +1,2 @@
+1|Kyykky3|leveä|2|Syvä|Tanko
+2|Kyykky12|neutraali|9|Syvä|Tanko
diff --git a/puntti/src/puntti/Liike.java b/puntti/src/puntti/Liike.java
index fbcdfb0..db16024 100644
--- a/puntti/src/puntti/Liike.java
+++ b/puntti/src/puntti/Liike.java
@@ -113,6 +113,26 @@ public class Liike {
     }
     
     
+    
+    /**
+     * palauttaa liikkeen tiedot merkkijonona jonka voi tallentaa tiedostoon.
+     * @return liike tolppaeroteltuna merkkijonona
+     * @example
+     * <pre name="test">
+     *  Liike liike = new Liike();
+     *  liike.parse("7 | kyykky | leveä");
+     *  liike.toString.startsWith("7|kyykky|leveä") === true;
+     */
+    @Override
+    public String toString() {
+        return "" +
+                getLid() + "|" +
+                liike + "|" +
+                oteLeveys + "|" +
+                stoppi + "|" +
+                syvyys + "|" +
+                suoritusValine;
+    }
 
     /**
      * @param args ei käytössä
diff --git a/puntti/src/puntti/Liikkeet.java b/puntti/src/puntti/Liikkeet.java
index bd21f17..d33da0a 100644
--- a/puntti/src/puntti/Liikkeet.java
+++ b/puntti/src/puntti/Liikkeet.java
@@ -1,5 +1,10 @@
 package puntti;
 
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.PrintStream;
+
 /**
  * 
  * |------------------------------------------------------------------------|
@@ -86,6 +91,24 @@ public class Liikkeet {
         return lkm;
     }
     
+    /**
+     * @param hakemisto mihin hakemistoon tehdään uusi tiedosto
+     * @throws SailoException jos tallentaminen ei onnistu
+     */
+    public void tallenna(String hakemisto) throws SailoException {
+        File tiedosto = new File(hakemisto + "/liikkeet.dat");
+        try (PrintStream fo = new PrintStream(new FileOutputStream(tiedosto, false))){
+                for (int i=0; i<this.getLkm();i++) {
+                    Liike liike = this.anna(i);
+                    fo.println(liike.toString());
+                }
+                
+        }catch (FileNotFoundException e) {
+        
+            throw new SailoException("Tiedosto "+ tiedosto.getAbsolutePath() + " ei löydy");
+        }
+    }
+    
     
     /**
      * @param args ei käytössä
@@ -118,6 +141,11 @@ public class Liikkeet {
             System.out.println(ex.getMessage());
         }
         
+        try {
+            liikkeet.tallenna("batman");
+        } catch (SailoException e) {
+            System.err.println(e.getMessage());
+        }
        
         
         
diff --git a/puntti/src/puntti/Puntti.java b/puntti/src/puntti/Puntti.java
index 380b969..b9b23c3 100644
--- a/puntti/src/puntti/Puntti.java
+++ b/puntti/src/puntti/Puntti.java
@@ -123,6 +123,15 @@ public class Puntti {
     }
     
     
+    /**
+     * tallentaa kerhon tiedot tiedostoon
+     * @param nimi käyttäjän hakemiston nimi
+     * @throws SailoException jos tallennus ei onnistu
+     */
+    public void tallenna(String nimi) throws SailoException {
+        liikkeet.tallenna(nimi);
+    }
+    
 
     /**
      * Testiohjelma Puntti.javalle
-- 
GitLab