Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.90/30: Рейтинг темы: голосов - 30, средняя оценка - 4.90
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 192

Замена представления даты и времени в текстовом файле

04.01.2019, 13:04. Показов 7016. Ответов 74
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа должна запускаться из командной строки с одним параметром — именем входного файла. Исходный текст состоит из слов, отделенных друг от друга пробелами. Некоторые слова представляют собой запись даты или времени. Например: 27.09.06, 09:15:00. Необходимо заменить такое представление на следующее: 27 сентябрь 2006г., 9 час 15 мин 0 сек.

Использовать структурное программирование, никаких классов и ООП. Рекомендуется выполнять через односвязные линейные списки.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.01.2019, 13:04
Ответы с готовыми решениями:

Замена слов в одном текстовом файле словами, записанными в другом текстовом файле
Кто-нибудь пожалуйста приведете пример реализации следующей программы имеются два тектовых файла - один с повторяющимися записями типа ...

Класс для представления даты и времени
Здравствуйте, знаю что уже было много тем создано с подобным вопросом. Но начал искать я уже после того, как проделал какую то работу и...

Изменение представления даты и времени в удобный вид
Добрый день! Есть список с датами и временем такого вида: 20120307 065530 Подскажите, пожалуйста, каким образом можно привести к...

74
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
13.01.2019, 12:51
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Kesha777 Посмотреть сообщение
Fixer_84, рядом с .exe файлом лежит файл с входным текстом (имеет любое имя .txt)
В консоли пользователь вводит имя этого файла и программа его открывает и работает с ним.
Хорошо. Сейчас сделаю так.

Добавлено через 46 секунд
Цитата Сообщение от Новичок Посмотреть сообщение
auto на int заменить можно(об этом спрашивал TC).
Здравствуйте! Спасибо за ваше замечание. Да, можно

Добавлено через 23 минуты
Цитата Сообщение от Fixer_84 Посмотреть сообщение
Хорошо. Сейчас сделаю так.
Kesha777, я исправил программу. Но будьте внимательны. Если вы хотите, чтобы она работала при компиляции (не запуске .exe из папки Debug) вам нужно будет еще создать файл (или файлы) .txt в папке с названием проекта (она находится рядом с папкой Debug в которой лежит .exe файл). Или вы можете скомпилировать программу один раз, а затем запускать ее через .exe и все будет работать. Вот часть кода, которую нужно исправить, начиная с функции clear():

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
//3.
 
void clear(const string &fname) { //Функция очистки файла с именем fname
    ofstream in(fname, ios::out | ios::trunc);
    in.close();
}
 
//4.
 
void output(const string &fname) { //Функция вывода узлов односвязного списка в файл с именем fname
    ofstream out(fname); //Открываем файл с именем fname
    node* tmp = head; //Создаем переменную типа node и присваиваем ей значение head (инициализируем список)
    while (tmp != NULL) { //Пробегаем по списку (пока не встретим NULL)
        out << tmp->data << " "; //Выводим узлы списка в файл с именем fname через пробел 
        tmp = tmp->next; //Переход к следующему элементу в списке
    }
    out.close(); //Закрываем файл с именем fname
}
 
//ВЫПОЛНЕНИЕ ОСНОВНОЙ ПРОГРАММЫ
 
int main() {
    setlocale(LC_ALL, "Russian");
    string fname;
    cout << "Enter a file name: ";
    getline(cin, fname); //Вводим название файла
    ifstream in(fname); //Открываем файл c именем fname
    if (in) { //Если файл с именем fname существует
        string word; //Объявляем строковую переменную (переменную типа string)
        while (in >> word) { //Пробегаем по файлу с именем fname
            add(word); //Добавляем слова в односвязный список
        }
        replace(); //Заменяем соответствующие узлы в списке (корректные дата и время)
        clear(fname); //Очищаем файл с именем fname
        output(fname); //Вывод измененных узлов списка в файл с именем fname
        in.close(); //Закрываем файл с именем fname
    }
    else {
        cout << "File \"" << fname << "\" not found!\n"; //Выводим это сообщение, если файл с именем fname не найден
    }
    system("pause");
    return 0;
}
0
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 192
13.01.2019, 13:23  [ТС]
Fixer_84, Спасибо! Вроде пока вопросов нет, буду тестировать
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
13.01.2019, 13:38
Kesha777, хорошо. Договорились.
0
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 192
14.01.2019, 13:07  [ТС]
Fixer_84,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
bool is_date_candidate(const string &date) { //Функция определения потенциальной даты (согласно заданному формату)
    if (date.length() == 10) {
        for (auto i : { 0, 1, 3, 4, 6, 7, 8, 9 }) { //Нужно подключить стандарт C++11 или выше
            if (!(date[i] >= '0' && date[i] <= '9')) {
                return false;
            }
        }
        if (date[2] != '.' || date[5] != '.') {
            return false;
        }
        return true;
    }
    return false;
}
Эту функцию плохо понял. Почему именно такие цифры по которым мы идем циклом, не закомментирована строчка и не понял (да и вообще вся функция не закомментирована.
C++
1
for (auto i : { 0, 1, 3, 4, 6, 7, 8, 9 }) {
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
14.01.2019, 13:50
Kesha777, здравствуйте! Это функция определения потенциальной даты. Под потенциальной датой имеется ввиду, что когда мы перебираем слова в списке, нам ведь нужно понять как отделять слова от даты и времени. Так, например, строка 99.99.9999 (там могут быть любые цифры) будет являться потенциальной датой, но не будет являться валидной. У потенциальной даты во-первых, всегда будет длина 10, во-вторых, в позициях 0, 1, 3, 4, 6, 7, 8, 9 всегда будут стоять цифры, и, наконец в третьих в позициях 2 и 5 ( индексация начинается с нуля) всегда будут символы "." Если хотя бы одно из этих условий не выпоняется, функция вернет false. Таким образом, прежде чем проверить дату на валидность нужно понять является ли она потенциальной (то есть, может оказаться валидной). Если дата не является потенциальной, то и на валидность ее проверять нет смысла. Аналогично я сделал со временем. Вам теперь понятно?
0
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 192
14.01.2019, 14:08  [ТС]
Fixer_84, да понятно, теперь понял что это позиции. А if date.length() == 10 это если слово из 10 символов, так?
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
14.01.2019, 15:06
Kesha777, да.
0
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 192
14.01.2019, 15:28  [ТС]
Fixer_84, т.е например слово "Литература" будет прогонятся по проверке валидности даты? прикольно))
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
14.01.2019, 15:37
Kesha777, сначала функции is_valid_date() и is_valid_time() поймут, что она не является даже потенциальной (если вы посмотрите, внутни этих функций сначала вызываются функции is_date_candidate() и is_time_candidate()) и проверка на валидность для слова "Литература" даже не будет производиться. Малейшие отличия от корректных даты или времени учитываются.
0
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 192
14.01.2019, 16:08  [ТС]
Fixer_84, аааа точняк. Все понял)
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
14.01.2019, 17:27
Добавлено через 2 минуты
Kesha777, напишите, пожалуйста, сдали или нет.
0
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 192
14.01.2019, 19:29  [ТС]
Fixer_84, послезавтра
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
14.01.2019, 22:44
Kesha777, Хорошо.
0
1 / 1 / 0
Регистрация: 28.10.2017
Сообщений: 192
16.01.2019, 16:48  [ТС]
Fixer_84, сдал, спасибо)
0
 Аватар для Fixer_84
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
16.01.2019, 21:47
Kesha777, не за что. Очень рад, что все получилось.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.01.2019, 21:47

Замена значения в текстовом файле
Добрый день! Есть конфигурационный файл в нём содержится строчка NewLine=1000. Как заменить число получилось, но в самом файле...

Замена слов в текстовом файле
Нужна помощь, как в текстовом файле изменить слово, например, &quot;Black&quot; на &quot;White&quot;?

Замена текста в текстовом файле
Здравствуйте! Может кто подскажет как можно заменить текст в текстовом файле? Буду благодарен. p.s пробовал...

Замена символов в текстовом файле
Добрый день , есть батник в котором пробелы меняются на , Необходимо чтобы пробелы менялись на | (но если ставлю | выполнения...

Поиск и замена в текстовом файле
Здравствуйте! Очень нуждаюсь в Вашей помощи. Перепробовала все найденные мною варианты решения подобных задач и все равно никак не могу...


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

Или воспользуйтесь поиском по форуму:
75
Ответ Создать тему
Новые блоги и статьи
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru