Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2017, 13:57   #1
voytik
Пользователь
 
Регистрация: 22.09.2015
Сообщений: 21
По умолчанию Rename .txt

Доброго времени суток!
Гложет вопрос на тему:

необходимо по запуску программы, чтобы у текстового файла изменялся номер в названии на +1 число
то есть допустим есть текстовый документ 'Отчет по предприятию 9', чтобы в итоге было не 9, а 10.
проблема состоит в том, что название до цифры будет меняться. После программа закрывается.
Возможно ли это реализовать?

я написал прогу, где при запуске txt документ создается новый и из старого достает всю инфу и имя, присваивая новому на 1 ед. выше, при этом старый txt удаляется. Недостаток только в том, что если переименовать файл новый как то, то следующий уже либо не создастся, либо создастся с одним только вышеупомянутым числом.
функцию Rename здесь может как то помочь?

ниже приведен пример, как это сделал я. ссылка на прогу: https://cloud.mail.ru/public/GEa4/vzuKNrd6K

Код:
#include <vcl.h>
#pragma hdrstop
#include <IdGlobal.hpp>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
double pepa2 ;
 double pepa3 ;
double pepa=1  ;
AnsiString kira;
AnsiString text;
//--------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
 Memo2->Lines->Clear();
Memo2->Lines->LoadFromFile("C:\\ntw\\Win32\\Debug\\top.txt");


Edit1->Text=Memo2->Lines->Text;
pepa2=StrToInt(Edit1->Text);

 Memo3->Lines->Clear();
 Memo3->Lines->LoadFromFile("C:\\ntw\\Win32\\Debug\\"+ FloatToStr(pepa2) +".txt");

pepa3=pepa2+pepa;


AnsiString FileName="C:\\ntw\\Win32\\Debug\\" + FloatToStr(pepa2) + ".txt";
DeleteFile(FileName);

 kira=FloatToStr(pepa3);
 Memo1->Lines->Clear();
 Memo1->Lines->Text=Memo3->Lines->Text;
Memo1->Lines->SaveToFile("C:\\ntw\\Win32\\Debug\\" + kira + ".txt");

Memo1->Lines->Clear();
Memo1->Lines->Text=kira;
Memo1->Lines->SaveToFile("C:\\ntw\\Win32\\Debug\\top.txt");

Application->Terminate();

}
______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось Alex11223; 24.10.2017 в 14:01.
voytik вне форума Ответить с цитированием
Старый 24.10.2017, 14:07   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от voytik Посмотреть сообщение
проблема состоит в том, что название до цифры будет меняться
Ну если число всегда в конце, то и доставайте все цифры начиная с конца и до первой не цифры.

Цитата:
Сообщение от voytik Посмотреть сообщение
pepa2
Цитата:
Сообщение от voytik Посмотреть сообщение
pepa3
Цитата:
Сообщение от voytik Посмотреть сообщение
pepa
Цитата:
Сообщение от voytik Посмотреть сообщение
Memo2
Цитата:
Сообщение от voytik Посмотреть сообщение
Memo3
Цитата:
Сообщение от voytik Посмотреть сообщение
Memo1
Вы там сами не путаетесь в таких именах?

Цитата:
Сообщение от voytik Посмотреть сообщение
Код:
__fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner) 
{ 
.......

Application->Terminate(); 
}
оО
Это такой хитрый способ сделать программу без GUI?
Про консольные приложения не слышали?)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 24.10.2017 в 15:06.
Alex11223 вне форума Ответить с цитированием
Старый 24.10.2017, 14:09   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от voytik Посмотреть сообщение
я написал прогу, где при запуске txt документ создается новый и из старого достает всю инфу и имя, присваивая новому на 1 ед. выше, при этом старый txt удаляется.
это неверно. Если старый файл не нужен, то быстрее, проще и лучше просто переименовывать файл.


Цитата:
Сообщение от voytik Посмотреть сообщение
проблема состоит в том, что название до цифры будет меняться.
А вот это действительно проблема.
Если имя файла не известно, то как Вы его будете искать?
Если у файла отличительные признаки, по которым его можно найти среди других?
Этот файл единственный TXT ?
или как?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.10.2017, 14:16   #4
voytik
Пользователь
 
Регистрация: 22.09.2015
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Вы там сами не путаетесь в таких именах?
улыбнуло)
я делал на скорую руку, прошу прощение, что не презентовал

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
"оО
Это такой хитрый способ сделать программу без GUI?
Про консольные приложения не слышали?)"
есть такое :D
voytik вне форума Ответить с цитированием
Старый 24.10.2017, 14:20   #5
voytik
Пользователь
 
Регистрация: 22.09.2015
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
это неверно. Если старый файл не нужен, то быстрее, проще и лучше просто переименовывать файл.
не знаю как...

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Если имя файла не известно, то как Вы его будете искать?
будет только 2 текстовых документа в папке Debug это Top - там счетчик стоит имен и тот второй рабочий txt
voytik вне форума Ответить с цитированием
Старый 24.10.2017, 15:35   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от voytik Посмотреть сообщение
будет только 2 текстовых документа в папке Debug это Top - там счетчик стоит имен и тот второй рабочий txt
стоп. значит, файл текстовый один, и имя у него строго числовое?

я бы предложил такой вариант.
1) считываем через FindFirst()/FindNext() по маске "*.txt"
2) выделяем имя найденного файла, если это имя целое число, то, увеличиваем число на 1 и переименовываем файл.

никакого дополнительного файла не нужно.
каждый запуск вашего приложения будет приводить к тому, что имя файла будет изменяться, увеличиваясь на 1.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.10.2017, 16:27   #7
voytik
Пользователь
 
Регистрация: 22.09.2015
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
стоп. значит, файл текстовый один, и имя у него строго числовое?
проблему решил, мне пришло известие, что текст будет один и тот же до и после числа. так что это я и сам на изи сделаю.
другое дело было бы, если бы до и после числа изменялось имя постоянно, вот тут бы я не смог уже ничего сделать по не опытности
voytik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
rename в Pascal ABC pavel_by Паскаль, Turbo Pascal, PascalABC.NET 14 30.12.2015 12:06
Переделавание кода на считывание из файла в файл output.txt input.txt !!! airesjke Помощь студентам 0 29.05.2013 14:07
rename снова не работает maloun Общие вопросы Delphi 2 12.01.2011 19:41
Как скопировать текст с файла 1.txt и записать в 2.txt Kasper1 Общие вопросы по Java, Java SE, Kotlin 1 14.12.2010 05:56
Как прочесть txt файл www.site.ru/info.txt BR17UY Работа с сетью в Delphi 1 16.04.2007 13:01