Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
26 / 26 / 6
Регистрация: 09.02.2011
Сообщений: 71

Работа с файлами

10.03.2011, 19:36. Показов 2058. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C#
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
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace File_Work
{
 
   class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "Работа с файлами";
            string path = "C://myFile.txt";
            if (!File.Exists(path))
            {
                File.Create(path);
            }           
            
            try
            {
 
                
            Console.WriteLine("1. Добавление сотрудника");
            Console.WriteLine("2. Поиск сотрудника");
            Console.WriteLine("3. Печать всех сотрудников");
            Console.WriteLine("4. Exit");
            Console.Write("Выберите пункт меню   ");
                int z = Convert.ToInt32(Console.ReadLine());
               
                    string sline = "";
                    switch (z)
                    {
 
                        case 1:
                            Console.Write("Введите имя сотрудника   ");
                            string name_worker = Console.ReadLine();
                            Console.Write("Введите оклад " + name_worker + "  ");
                            int salary = Convert.ToInt32(Console.ReadLine());
                            StreamWriter sw = new StreamWriter(path);
                            sw.WriteLine(name_worker + "  " + salary);
                            sw.Close();
 
                            break;
                        case 2:
                            Console.Write("Введите имя сотрудника для поиска    ");
                            string name_worker_poisk = Console.ReadLine();
                            StreamReader srd = new StreamReader(path);
                            while ((sline = srd.ReadLine()) != null)
                                if (sline.StartsWith(name_worker_poisk))
                                {
                                    Console.WriteLine(sline);
                                }
 
                            break;
                        case 3:
                            Console.WriteLine("Все сотрудники и их оклады");
                            StreamReader print_all = new StreamReader(path);
                            while ((sline = print_all.ReadLine()) != null)
                                Console.WriteLine(sline);
                            print_all.Close();
 
                            break;
                        case 4:
                            Environment.Exit(4);
                            break;
                        default:
                            Console.WriteLine("Вы ввели некорректный пункт меню - " + z + ".  Введите корректный !");
                            break;
                    }
                }
            
            catch (FormatException)
            {
                Console.WriteLine("Некорректный формат ввода");
               
 
            }
           
 
            Console.ReadLine();
 
        }
    }
}
Очередной мой шедевр говнокода.
В чем смысл программы: программа позволяет работать с файлами, т.е. добавляет сотрудников и их оклад, производит поиск по имени и печать всего раздела.
Надо:
1)Чтобы программу можно было выполнять несколько раз. Т.е. например добавил сотрудника Ivanov с окладом 200, программа должна опять предложить опять пункты меню

1. Добавление сотрудника
2. Поиск сотрудника
3. Печать всех сотрудников
4. Exit

Можно легко сделать говнокод еще шедевральней, с использованием goto^^ , но хотелось бы этого избежать.
Хотел поставить цикл while, но что-то не получается ((

2) Хотелось бы, чтобы при каждом запуске файл myFile.txt не затирался.

Помогите плс
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.03.2011, 19:36
Ответы с готовыми решениями:

Работа с файлами , хотелось бы с windows system файлами
всем привет, нужна интересная идея по программированию, работа с файлами , хотелось бы с windows system файлами, у вас есть какая-то идея?...

Лабораторная работа №5. Работа с файлами и алгоритмы сортировки
1. Написать функцию Load для считывания из текстового файла (например, Workers.txt) информации о работниках и заработной плате. В первой...

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

8
87 / 86 / 13
Регистрация: 21.10.2010
Сообщений: 349
10.03.2011, 19:43
Цитата Сообщение от user12 Посмотреть сообщение
C#
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
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace File_Work
{
 
   class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "Работа с файлами";
            string path = "C://myFile.txt";
            if (!File.Exists(path))
            {
                File.Create(path);
            }           
            
            try
            {
 
                
            Console.WriteLine("1. Добавление сотрудника");
            Console.WriteLine("2. Поиск сотрудника");
            Console.WriteLine("3. Печать всех сотрудников");
            Console.WriteLine("4. Exit");
            Console.Write("Выберите пункт меню   ");
                int z = Convert.ToInt32(Console.ReadLine());
               
                    string sline = "";
                    switch (z)
                    {
 
                        case 1:
                            Console.Write("Введите имя сотрудника   ");
                            string name_worker = Console.ReadLine();
                            Console.Write("Введите оклад " + name_worker + "  ");
                            int salary = Convert.ToInt32(Console.ReadLine());
                            StreamWriter sw = new StreamWriter(path);
                            sw.WriteLine(name_worker + "  " + salary);
                            sw.Close();
 
                            break;
                        case 2:
                            Console.Write("Введите имя сотрудника для поиска    ");
                            string name_worker_poisk = Console.ReadLine();
                            StreamReader srd = new StreamReader(path);
                            while ((sline = srd.ReadLine()) != null)
                                if (sline.StartsWith(name_worker_poisk))
                                {
                                    Console.WriteLine(sline);
                                }
 
                            break;
                        case 3:
                            Console.WriteLine("Все сотрудники и их оклады");
                            StreamReader print_all = new StreamReader(path);
                            while ((sline = print_all.ReadLine()) != null)
                                Console.WriteLine(sline);
                            print_all.Close();
 
                            break;
                        case 4:
                            Environment.Exit(4);
                            break;
                        default:
                            Console.WriteLine("Вы ввели некорректный пункт меню - " + z + ".  Введите корректный !");
                            break;
                    }
                }
            
            catch (FormatException)
            {
                Console.WriteLine("Некорректный формат ввода");
               
 
            }
           
 
            Console.ReadLine();
 
        }
    }
}
Очередной мой шедевр говнокода.
В чем смысл программы: программа позволяет работать с файлами, т.е. добавляет сотрудников и их оклад, производит поиск по имени и печать всего раздела.
Надо:
1)Чтобы программу можно было выполнять несколько раз. Т.е. например добавил сотрудника Ivanov с окладом 200, программа должна опять предложить опять пункты меню

1. Добавление сотрудника
2. Поиск сотрудника
3. Печать всех сотрудников
4. Exit

Можно легко сделать говнокод еще шедевральней, с использованием goto^^ , но хотелось бы этого избежать.
Хотел поставить цикл while, но что-то не получается ((

2) Хотелось бы, чтобы при каждом запуске файл myFile.txt не затирался.

Помогите плс
ну так и сделайте цикл while, выполнять до тех пор пока не ввели цифру 4 и все)
0
26 / 26 / 6
Регистрация: 09.02.2011
Сообщений: 71
10.03.2011, 22:11  [ТС]
2) Хотелось бы, чтобы при каждом запуске файл myFile.txt не затирался.
помогите по этому вопросу


Цитата Сообщение от Vangok Посмотреть сообщение
ну так и сделайте цикл while, выполнять до тех пор пока не ввели цифру 4 и все)
Какой-то дикий говнокод получается, короче приду домой сделаю ))

Кто-нить знает, как можно упростить эту программу, просто такое стыдно кому-то показывать ((

Добавлено через 1 час 50 минут
C#
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
89
90
91
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace File_Work
{
 
    class Program
    {
        static void Main(string[] args)
        {
            Console.Title = "Работа с файлами";
            string path = "C://myFile.txt";
            if (!File.Exists(path))
            {
                File.Create(path);
            }
            int z = 1;
            try
            {
 
                do
                {
 
                    Console.WriteLine("1. Добавление сотрудника");
                    Console.WriteLine("2. Поиск сотрудника");
                    Console.WriteLine("3. Печать всех сотрудников");
                    Console.WriteLine("4. Exit");
                    Console.WriteLine("Выберите пункт меню   ");
                    Console.WriteLine("");
 
                     z = Convert.ToInt32(Console.ReadLine());
 
                    string sline = "";
                    switch (z)
                    {
 
                        case 1:
                            Console.Write("Введите имя сотрудника   ");
                            string name_worker = Console.ReadLine();
                            Console.Write("Введите оклад " + name_worker + "  ");
                            int salary = Convert.ToInt32(Console.ReadLine());
                            StreamWriter sw = new StreamWriter(path);
                            sw.WriteLine(name_worker + "  " + salary);
                            sw.Close();
 
                            break;
                        case 2:
                            Console.Write("Введите имя сотрудника для поиска    ");
                            string name_worker_poisk = Console.ReadLine();
                            StreamReader srd = new StreamReader(path);
                            while ((sline = srd.ReadLine()) != null)
                                if (sline.StartsWith(name_worker_poisk))
                                {
                                    Console.WriteLine(sline);
                                }
 
                            break;
                        case 3:
                            Console.WriteLine("Все сотрудники и их оклады");
                            StreamReader print_all = new StreamReader(path);
                            while ((sline = print_all.ReadLine()) != null)
                                Console.WriteLine(sline);
                            print_all.Close();
 
                            break;
                        case 4:
                            Environment.Exit(4);
                            break;
                        default:
                            Console.WriteLine("Вы ввели некорректный пункт меню - " + z + ".  Введите корректный !");
                            break;
                    }
                } while (z != 4);
            }
 
            catch (FormatException)
            {
                Console.WriteLine("Некорректный формат ввода");
 
 
            }
 
 
            Console.ReadLine();
 
        }
    }
}
Ребят, помогите
а) чтобы файл myFile.txt не затирался
б)если я добавляю 2 сотрудников, то первый затирается
0
1 / 1 / 0
Регистрация: 30.05.2010
Сообщений: 16
10.03.2011, 22:47
попробуй убрать вот это
C#
1
2
3
4
if (!File.Exists(path))
            {
                File.Create(path);
            }
File.Create создаёт новый файл, удаляя старый поэтому данные стираются
0
26 / 26 / 6
Регистрация: 09.02.2011
Сообщений: 71
11.03.2011, 10:39  [ТС]
Цитата Сообщение от chelovek1 Посмотреть сообщение
попробуй убрать вот это
C#
1
2
3
4
if (!File.Exists(path))
            {
                File.Create(path);
            }
File.Create создаёт новый файл, удаляя старый поэтому данные стираются
Это понятно, просто почему-то если я добавляю двух сотрудников, то первый затирается
т.е. ошибка в этом куске "кода"

C#
1
2
3
4
5
6
7
8
9
 Console.Write("Введите имя сотрудника   ");
                            string name_worker = Console.ReadLine();
                            Console.Write("Введите оклад " + name_worker + "  ");
                            int salary = Convert.ToInt32(Console.ReadLine());
                            StreamWriter sw = new StreamWriter(path);
                            sw.WriteLine(name_worker + "  " + salary);
                            sw.Close();
 
                            break;
кто-нибудь знает, почему ?
0
 Аватар для Konctantin
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
11.03.2011, 10:58
Это понятно, просто почему-то если я добавляю двух сотрудников, то первый затирается
естественно, вы каждый раз создаете новый файл.
0
26 / 26 / 6
Регистрация: 09.02.2011
Сообщений: 71
11.03.2011, 11:08  [ТС]
Цитата Сообщение от Konctantin Посмотреть сообщение
естественно, вы каждый раз создаете новый файл.
C#
1
2
3
4
if (!File.Exists(path))
            {
                File.Create(path);
            }
я удалил этот говнокод, результат тот же ((
0
 Аватар для Konctantin
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
11.03.2011, 11:12
не только то говонокод,
Пишите сначала в StringBuilder, а потом уже в файл
0
 Аватар для Dexter
291 / 151 / 34
Регистрация: 13.10.2009
Сообщений: 164
11.03.2011, 11:13
Неужели мсдн уже не популярен?

public StreamWriter(
string path,
bool append,
Encoding encoding
)


Параметры
path
Тип: System.String
Полный путь к файлу для записи.

append
Тип: System.Boolean
Определяет, требуется ли добавить в файл данные. Если файл существует и значение параметра append равно false, файл перезаписывается. Если файл существует и значение параметра append равно true, в файл добавляются данные. В противном случае создается новый файл.

encoding
Тип: System.Text.Encoding
Кодировка символов, которую нужно использовать.
По умолчанию append=false - делайте выводы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.03.2011, 11:13
Помогаю со студенческими работами здесь

Работа с файлами, чтение/работа со строкой
Доброго времени суток. Начал работать с C++ Builder 6. Есть текстовый файл .txt с различными строками, как можно производить...

работа с файлами
подскажите пожалуйста a. В текстовом файле хранятся квадратные вещественные матрицы порядка n (n – const). Преобразовать файл, удалив...

Работа с файлами(Си)
Можете помочь? Сформировать файл "В", записями которого являются: фамилии писателей, инициалы, названия книги, год издания. Используя эти...

Работа с файлами
Дан текстовый файл. Подсчитайте, сколько в нем строк, сколько символов.

Работа с файлами С++
Перезаписать текстовый файл, выбросив из него все гласные буквы, новый файл не создавать. пожалуйста помогите.


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru