Kroppeek

11

Jan 31st, 2020
694
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.32 KB | None | 0 0
  1. import java.io.RandomAccessFile;
  2.  
  3. public class Main
  4. {
  5.  
  6.     String leki(String filename)
  7.     {
  8.         String nazwaLeku = null;            //zeby pozniej zwracało
  9.         int cenaLeku = 100000;
  10.        
  11.         try                                  
  12.         {
  13.             RandomAccessFile raf = new RandomAccessFile(filename, "rw");      // pierwsze nazwa pliku
  14.             while(raf.length() != raf.getFilePointer())
  15.             {
  16.                 String nazwa = raf.readUTF();                      // do odczytywania Stringa
  17.                 raf.seek(raf.getFilePointer() + nazwa.length() * 2);                // musimy przemieścić *2 Stringa
  18.                
  19.                 int cena = raf.readInt();                      // powolujemy inta do odczytu
  20.                 raf.seek(raf.getFilePointer() + 4);          //przesuwamy sie o 4 miejsca w bok bo z inta przechodzimy na booleana
  21.                
  22.                 boolean refundacja = raf.readBoolean();
  23.                 if ( cenaLeku > cena)    
  24.                 {
  25.                     nazwaLeku = nazwa;
  26.                     cenaLeku = cena;
  27.                
  28.                 }
  29.                 if(refundacja == true)
  30.                 {
  31.                     raf.seek(raf.getFilePointer() - 4);               //z booleana przeszlismy na inta
  32.                     cena *= 0.85;
  33.                     raf.write(cena);
  34.                     raf.seek(raf.getFilePointer() + 4 + 1);           // inta na booleana a pozniej na koniec booleana
  35.  
  36.                 }
  37.                 else
  38.                 {
  39.                     raf.seek(raf.getFilePointer() + 1);
  40.                 }
  41.             }
  42.  
  43.         raf.close();
  44.         }
  45.             catch(FileNotFoundException e)  
  46.             {
  47.                 e.printStackTrace();
  48.  
  49.             }
  50.     return nazwaLeku;  
  51.     }  
  52.  
  53.  
  54. }
  55. //getFilePointer wskazujemy ile miejsc ma sie PRZEMIESCIC
  56. //seek - wskazuje na jakiej jestem pozycji
  57. //string nazwe randoma (raf) readUTF();
  58. //int raf readInt();
  59. //boolean readBoolean();
  60. //double readDouble();
  61. // CHUJCIWDUPE
  62. //CHUJCIWDUPE.R.........
  63. // ILE MIEJSC MA SIE PRZEMIESCIC
  64. // SEEK WSKAZUJE NA JAKIES POZYCJI
  65. // getFilePointer() + raf.length, moze sie odwołac do iles miejsc bitowych w bok czyli np +4 lub +8
  66. // wojtek  12 bajtów
  67. //ja ma 4 bajty
  68. // writeInt writeDouble itd itd itd
Advertisement
Add Comment
Please, Sign In to add comment