package com.javarush.task.task18.task1827;

import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;

/*
Прайсы
*/

public class Solution {
    public static void main(String[] args) throws Exception {


// Создание переменных и присвоение им параметров


        if (args.length!=0) {


        int id;
        String key = args[0];
        String productName = String.join(" ", Arrays.copyOfRange(args, 1,args.length-2));
        String price = args[args.length-2];
        String quantity = args[args.length-1];


// Создание переменной Названия продукта нужного формата


        productName = productName.length() > 30 ? productName.substring(0, 30) : productName;
        productName = String.format("%-30s", productName);


// Создание переменной Цены нужного формата


        price = price.length() > 8 ? price.substring(0, 8) : price;
        price = String.format("%-8s", price);

// Создание переменной Количества нужного формата


        quantity = quantity.length() > 4 ? quantity.substring(0, 4) : quantity;
        quantity = String.format("%-4s", quantity);


        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        String path = bufferedReader.readLine();

//        String path = "1";


        FileReader fileReader = new FileReader(path);
        FileWriter fileWriter = new FileWriter(path, true);


// Поиск последнего ID в файле

        ArrayList<Character> arrayList = new ArrayList();

        int charCode;
        while((charCode = fileReader.read()) != -1) {
            arrayList.add((char)charCode);
        }

        String idString="";

        for (int i = 0; i < 8; i++) {
            if(arrayList.size()>49) {
                idString += arrayList.get(arrayList.size() - 50 + i);
            } else if (arrayList.size()==49) {
                idString = "1";
            }  else{
                idString = "0";
            }
        }

// Присвоение нового ID

        id = Integer.parseInt(idString.trim())+1; // Прибавляем +1


// Создание переменной ID нужного формата

        String idStr = (String.valueOf(id)).length() > 8 ? (String.valueOf(id)).substring(0, 8) : (String.valueOf(id));
        idStr = String.format("%-8s", idStr);


// Запись в фаил


        fileWriter.write("\n");
        fileWriter.write(idStr+productName+price+quantity);


        fileReader.close();
        fileWriter.flush();
        fileWriter.close();
        }
    }

}