Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 5

Работа со структурированными данными в файлах

12.06.2015, 19:54. Показов 1338. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В текстовом файле содержится зарплатная ведомость, имя сотрудника, отдел, и значение разделены "::"
Например,
"Иванов"::"транспортный цех"::34000руб 10 коп
"Петров"::"отдел эксплуатации"::54000руб 10 коп
"Сидоров"::"отдел закупок"::50440руб 10 коп
...
Требуется сосчитать сумму по заданному отделу

Ребят,подскажите как правильно организовать обработку уже непосредственно самих данных
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package abovetext;
 
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
 
/**
 *
 * @author MAX
 */
public class AboveText {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        long timeBegin = System.nanoTime();
        
        
        Logger logger = Logger.getLogger(AboveText.class.getName());
        
        int filesOfLog = 5;
        int logLimit = 1024;
        int fast = -1;
        String otdel = "\"Transport\""; 
        
        try {
            FileHandler fh = new FileHandler("system.log", logLimit, filesOfLog, true);
            SimpleFormatter formatter = new SimpleFormatter();
            fh.setFormatter(formatter);
            logger.addHandler(fh);
        } 
        catch (IOException | SecurityException ex) {
            logger.log(Level.SEVERE, "Exception: ", ex);
            Logger.getLogger(AboveText.class.getName()).log(Level.SEVERE, null, ex);
        }
        String str1 = null;
        ArrayList<String> words = new ArrayList<String>();
        BufferedReader reader;
        try {
            reader = new BufferedReader(new FileReader("Vedomost.txt"));
            String line;
            while((line = reader.readLine()) != null){
            words.add(line);
        }
            
            for (String i : words) {
                String[] r = i.split("::");
                String[] o = r[1].split("");
                String str = r[1].toString();
                if(str == "\"Transport\"")
                {
                    str1 = str;
                }
                System.out.println(str);
            }
            System.out.println(str1);
            
            
        reader.close();
        } catch (FileNotFoundException ex) {
            Logger.getLogger(AboveText.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(AboveText.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        System.out.println();
        for(int i = 0; i < words.size(); i++){
            System.out.println(words.get(i));
        }
               
         long timeEnd = System.nanoTime();
         
         
         System.out.print("Time of programm " + (timeEnd - timeBegin) + " in nanoseconds" + '\n' );
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.06.2015, 19:54
Ответы с готовыми решениями:

Работа со структурированными данными в файлах
Здравствуйте, помогите пожалуйста написать программу В текстовом файле содержится показания вольтметра, номер измерения и значение...

Работа со структурированными данными в файлах
В текстовом файле содержатся в случайном порядке показания нескольких термометров, имя термометра и значение разделены &quot;:&quot; ...

Работа со структурированными данными в файлах
В текстовом файле содержатся результаты футбольного турнира. Например, &quot;Шайба&quot;,&quot;Игр-10&quot;&quot;Очков 20&quot; ...

8
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
12.06.2015, 20:07
нечитаемо, в теги Джавы убери.
Я верно понял, что в файле слова идут вначале в кавычках, а вот сумма уже без кавычек?
0
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 5
12.06.2015, 21:23  [ТС]
да нет , в кавычках всё-таки.

Добавлено через 7 минут
package abovetext;

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.logging.FileHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
 
/**
 *
 * @author MAX
 */
public class AboveText {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        long timeBegin = System.nanoTime();
        
        
        Logger logger = Logger.getLogger(AboveText.class.getName());
        
        int filesOfLog = 5;
        int logLimit = 1024;
        int fast = -1;
        String otdel = "\"Transport\""; 
        
        try {
            FileHandler fh = new FileHandler("system.log", logLimit, filesOfLog, true);
            SimpleFormatter formatter = new SimpleFormatter();
            fh.setFormatter(formatter);
            logger.addHandler(fh);
        } 
        catch (IOException | SecurityException ex) {
            logger.log(Level.SEVERE, "Exception: ", ex);
            Logger.getLogger(AboveText.class.getName()).log(Level.SEVERE, null, ex);
        }
        String str1 = null;
        ArrayList<String> words = new ArrayList<String>();
        BufferedReader reader;
        try {
            reader = new BufferedReader(new FileReader("Vedomost.txt"));
            String line;
            while((line = reader.readLine()) != null){
            words.add(line);
        }
            
            for (String i : words) {
                String[] r = i.split("::");
                String[] o = r[1].split("");
                String str = r[1].toString();
                if(str == "\"Transport\"")
                {
                    str1 = str;
                }
                System.out.println(str);
            }
            System.out.println(str1);
            
            
        reader.close();
        } catch (FileNotFoundException ex) {
            Logger.getLogger(AboveText.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(AboveText.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        System.out.println();
        for(int i = 0; i < words.size(); i++){
            System.out.println(words.get(i));
        }
               
         long timeEnd = System.nanoTime();
         
         
         System.out.print("Time of programm " + (timeEnd - timeBegin) + " in nanoseconds" + '\n' );
    }
}
Добавлено через 3 минуты
Собственно вот вместо этих строчек кода , должен быть алгоритм который обработает данные с условием задачи... Ребят уже 5-ый час голову ломаю, а мысля никак... опыта моловато ... помогите, коллеги

Java
1
2
3
4
5
6
7
8
9
10
11
for (String i : words) {
                String[] r = i.split("::");
                String[] o = r[1].split("");
                String str = r[1].toString();
                if(str == "\"Transport\"")
                {
                    str1 = str;
                }
                System.out.println(str);
            }
            System.out.println(str1);
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
12.06.2015, 21:37
вот так "Иванов"::"транспортный цех"::34000руб 10 коп
или так "Иванов"::"транспортный цех"::"34000руб 10 коп" ???
а чего голову ломать, делай кавычки разделителем, в стринге с числом (34000руб 10 коп) слово коп удаляй, руб заменяй на "," и выдергивай значение в дабл. Ну уж а суммировать и выдать значение и так умеешь.
0
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 5
12.06.2015, 21:40  [ТС]
Welemir1, Дружище , можно любой из этих вариантов , да вот только не могу я правильно сам код оформить ... Подскажи как , научи ... не получается сделать так чтобы по запросу транспортный цех - он выдавал размер зарплаты
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
12.06.2015, 21:55
ок, сегодня не вариант, но если никто не подмогнет, завтра накидаю тебе пару строк, разберемся!
0
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 5
12.06.2015, 22:00  [ТС]
Welemir1, Совсем не вариант ? а то мне как раз до завтра надо бы успеть

Добавлено через 2 минуты
Welemir1, Вроде несложно , вроде понятно по логике ... я на крайняк и написал в форум , просто выручай
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
13.06.2015, 17:56
Лучший ответ Сообщение было отмечено Homax как решение

Решение

ну вот смотри, сделал простой пример, тебе естественно придется его под свои нужды запилить. Обрати внимание на формат строк, если у тебя будут другие, то придется немного переделать, ну и я никаких проверок не делал (например если неверный отдел введут)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class Test1 {
    public static void main(String[] args) {
        Test1 t1=new Test1();
        ArrayList<String> vedomost=new ArrayList<String>();
        vedomost.add("Иванов::транспортный цех::34000руб 10 коп");
        vedomost.add("Петров::отдел эксплуатации::54000руб 50 коп");
        vedomost.add("Сидоров::отдел закупок::50440руб 30 коп");
        vedomost.add("Пьянков::транспортный цех::35200руб 40 коп");
        vedomost.add("Вадимов::отдел закупок::33670руб 90 коп");
        vedomost.add("Иванщин::отдел эксплуатации::41010руб 30 коп");
        vedomost.add("Савельев::транспортный цех::32700руб 40 коп");
        vedomost.add("Путин::отдел закупок::27000руб 10 коп");
        vedomost.add("Медведев::отдел эксплуатации::45000руб 40 коп");
        Scanner scan= new Scanner(System.in);
        System.out.println("Введите название отдела:");
        String departmentName=scan.nextLine();
        double allDepartmentSumm=0;
        for (String st:vedomost) {
            String [] tok=st.split("::");
            if (departmentName.equals(tok[1])) {
                allDepartmentSumm=allDepartmentSumm+t1.getDoubleValue(tok[2]);
            }
        }
        System.out.println("Общая зарплата отдела - "+departmentName+" равна= "+allDepartmentSumm);
    }
 
    public double getDoubleValue (String s) {
        s=s.substring(0,s.length()-3);
        s=s.replace("руб ",".");
        double result=Double.parseDouble(s);
        return result;
    }
}
Добавлено через 6 часов 58 минут

Не по теме:

Ну и услуга за услугу: посмотрел сколько схожих тем появилось за сутки и стало интересно -вы откуда все? где учитесь? Нет варианта что ваш преподаватель на этом форуме?)))

1
0 / 0 / 0
Регистрация: 06.04.2015
Сообщений: 5
13.06.2015, 23:08  [ТС]
Welemir1, спасибо от души ))) но я ещё вчера додумал и сегодня сдал экзамен на ПЯТЬ ))

Добавлено через 1 минуту
Welemir1, В общем у меня была проблема в том что я пытался сравнить строки через оператор == а надо было через метод equals
)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.06.2015, 23:08
Помогаю со студенческими работами здесь

Работа со структурированными данными в файлах
Здравствуйте не могли бы мне помочь с программой, В текстовом файле содержится данные о весе животных, возраст, вес и кличка животного...

Работа со структурированными данными в файлах
В текстовом файле содержится зарплатная ведомость, имя сотрудника, отдел, и значение разделены &quot;::&quot; Например, ...

Работа со структурированными данными в файлах
1. В текстовом файле содержатся в случайном порядке показания нескольких термометров, имя термометра и значение разделены &quot;:&quot; ...

Работа со структурированными данными в файлах
В текстовом файле содержится зарплатная ведомость, имя сотрудника, отдел, и значение разделены &quot;:&quot; Например, ...

Работа со структурированными данными в файлах
В текстовом файле содержится стоимость товаров и название, они разделены следующим образом. Например, ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru