Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.RandomAccessFile;
- public class Main
- {
- String leki(String filename)
- {
- String nazwaLeku = null; //zeby pozniej zwracało
- int cenaLeku = 100000;
- try
- {
- RandomAccessFile raf = new RandomAccessFile(filename, "rw"); // pierwsze nazwa pliku
- while(raf.length() != raf.getFilePointer())
- {
- String nazwa = raf.readUTF(); // do odczytywania Stringa
- raf.seek(raf.getFilePointer() + nazwa.length() * 2); // musimy przemieścić *2 Stringa
- int cena = raf.readInt(); // powolujemy inta do odczytu
- raf.seek(raf.getFilePointer() + 4); //przesuwamy sie o 4 miejsca w bok bo z inta przechodzimy na booleana
- boolean refundacja = raf.readBoolean();
- if ( cenaLeku > cena)
- {
- nazwaLeku = nazwa;
- cenaLeku = cena;
- }
- if(refundacja == true)
- {
- raf.seek(raf.getFilePointer() - 4); //z booleana przeszlismy na inta
- cena *= 0.85;
- raf.write(cena);
- raf.seek(raf.getFilePointer() + 4 + 1); // inta na booleana a pozniej na koniec booleana
- }
- else
- {
- raf.seek(raf.getFilePointer() + 1);
- }
- }
- raf.close();
- }
- catch(FileNotFoundException e)
- {
- e.printStackTrace();
- }
- return nazwaLeku;
- }
- }
- //getFilePointer wskazujemy ile miejsc ma sie PRZEMIESCIC
- //seek - wskazuje na jakiej jestem pozycji
- //string nazwe randoma (raf) readUTF();
- //int raf readInt();
- //boolean readBoolean();
- //double readDouble();
- // CHUJCIWDUPE
- //CHUJCIWDUPE.R.........
- // ILE MIEJSC MA SIE PRZEMIESCIC
- // SEEK WSKAZUJE NA JAKIES POZYCJI
- // getFilePointer() + raf.length, moze sie odwołac do iles miejsc bitowych w bok czyli np +4 lub +8
- // wojtek 12 bajtów
- //ja ma 4 bajty
- // writeInt writeDouble itd itd itd
Advertisement
Add Comment
Please, Sign In to add comment