Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
 Аватар для FreeWay
84 / 84 / 19
Регистрация: 17.12.2007
Сообщений: 574

текстовый анализатор или как сделать динамическое настраиваемое имя файла

25.01.2010, 13:28. Показов 1726. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!!!!!

Есть такая замуточная задачка:

есть файл вида he100125.log - имя формируется из постоянного символа he и текущей даты.
то-есть каждый день будет новое имя, но в этом проблемы нет, вытягиваем с текущей системной даты в нужном формате и все.

А вот как быть с следующим:

надо реализовать механизм создания шаблона для формирования имени файла.
что то типа:
на форме лежит комбобокс в нем -
DD
MM
YYYY
YY
и есть текст бокс и кнопка добавить, то-есть юзер этими инструментами формирует динамическое имя файла.
Надеюсь понятно объяснил.

Вопрос, нормально ли таким образом реализовать мою задачу
и второй - понятия не имею как потом по вышеописанному шаблону формировать реаьлное имя файла

перебирать посимвольно и при DD - потставлять день и т д???
как то черезжоп... метод

Может есть что то более правильное?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.01.2010, 13:28
Ответы с готовыми решениями:

Динамическое имя файла
Добрый день. Подскажите пожалуйста, как нужно исправить код, чтоб создавались файлы, где вместо ХХХ подставлялись бы элементы массива?...

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

Как сделать имя для файла введенное пользователем
Есть задача сделать файл с n информацией но так что бы заголовок придумал непосредственно пользователь во время уже выполнения программы....

8
137 / 133 / 20
Регистрация: 03.02.2009
Сообщений: 608
25.01.2010, 14:29
FreeWay, а мож не комбобокс, а datetimepicker?
Пусть выбирает прям дату.
А ты ее потом datetimepicker1.value.ToString("YYMMdd") ;
или я не так поянл?
0
Кибернетик
 Аватар для СyberSpec
465 / 89 / 12
Регистрация: 10.04.2009
Сообщений: 424
25.01.2010, 14:33
C#
1
String qqq = dateTimePicker1.Text;
Я какбэ намекаю..
0
9 / 9 / 0
Регистрация: 13.01.2010
Сообщений: 32
25.01.2010, 15:13
Ммм...
Как я понял, нужно сформировать не имя файла, а шаблон по которому потом будет формироваться имя файла на основе текущей даты, так?
Если да, то что-то в этом роде... (грубый скелет)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
private void btnAdd_Click(object sender, EventArgs e)
{
    txtTemplateView.Text += cboxTemplates.Text;
    string sTemp=txtPrefix.Text+"{0:"+txtTemplateView.Text+"}"+txtSuffix.Text+".log";
    txtFileName.Text = string.Format(sTemp, DateTime.Now);
}
 
private void btnClear_Click(object sender, EventArgs e)
{
    txtTemplateView.Text = "";
    string sTemp = txtPrefix.Text + "{0:" + txtTemplateView.Text + "}"+txtSuffix.Text+".log";
    txtFileName.Text = string.Format(sTemp, DateTime.Now);
}
- в комбобоксе (cboxTemplates) что-нибудь типа "dd", "MM", "YY", "YYYY" (форматы вывода дат см.тут)
- кнопочка btnAdd добавляет выбранный в комбо формат в конец строки шаблона даты
- кнопочка btnClear очищает строку шаблона даты
(Обе кнопочки тут же формируют пример того, как будет выглядеть имя файла (txtFileName))
Текстовые поля txtPrefix и txtSuffix - некие строки тупо добавляющиеся в начало и вконец имени файла...

По-хорошему надо бы, что бы комбобоксе отображалось что-то более осмысленное нежели dd или MMM, а потом уже это "осмысленное" переводилось в нужные коды (IMHO)
Да и проверка, что бы нельзя было ввести подряд одинаковые коды (формат "dddd" - это вовсе не два раза по "dd") лишней не будет...
В общем где-то в таком духе...

З.Ы. Код на работоспособность не проверял - под рукой "не на чем", но вроде очень уж грубых ляпов быть не должно
1
 Аватар для FreeWay
84 / 84 / 19
Регистрация: 17.12.2007
Сообщений: 574
25.01.2010, 15:24  [ТС]
vdmk спасиб
попробую двигаться в этом направлении
0
 Аватар для FreeWay
84 / 84 / 19
Регистрация: 17.12.2007
Сообщений: 574
29.01.2010, 17:25  [ТС]
вот что получилось:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//DynamicName это определенный пользователем ранее патерн, например он = basc[yyyymmdd].log
//далее перед работой с логом, определим по шаблону его имя 
                        string DynamicName = Tasks[i].DynamicName,
                               BeforeDate  = "",
                               AfterDate   = "";
 
                        int StartIndxDate = DynamicName.IndexOf("[")+1,
                            EndIndxDate   = DynamicName.IndexOf("]"),
                            DateLenght    = EndIndxDate - StartIndxDate;
 
                               BeforeDate = DynamicName.Substring(0, StartIndxDate-1);
                               AfterDate = DynamicName.Substring((DateLenght + StartIndxDate)+1, DynamicName.Length - (DateLenght + StartIndxDate)-1);
                        string DateFormat = DynamicName.Substring(StartIndxDate, DateLenght);
 
                        string FormatedDate = System.DateTime.Now.ToString(DateFormat);
                        PathToRealLog = BeforeDate + FormatedDate + AfterDate;
 
//в итоге получаем basc20100129.log
код громоздкий, а может еще и небрежный, буду рад любым коментариям и предложениям по улучшению...
0
9 / 9 / 0
Регистрация: 13.01.2010
Сообщений: 32
29.01.2010, 20:08
Цитата Сообщение от FreeWay Посмотреть сообщение
вот что получилось:
...
В общем-то тоже самое, но немножко короче:
C#
1
2
3
string DynamicName = "basc[yyyymmdd].log";
string[] parts = DynamicName.Split('[', ']');
string PathToRealLog=parts[0]+DateTime.Now.ToString(parts[1].Replace("m","M"))+parts[2];
Replace("m","M") нужно, что бы не заморачивать юзера тем, что формат "mm" - выводит минуты, а "MM" - месяц
Код написан в предположении, что в паттерне обязательно будет присутствовать ровно одна открывающая скобка и одна закрывающая, но по-хорошему это конечно надо проверять...
1
 Аватар для FreeWay
84 / 84 / 19
Регистрация: 17.12.2007
Сообщений: 574
30.01.2010, 06:52  [ТС]
Цитата Сообщение от vdmk Посмотреть сообщение
В общем-то тоже самое, но немножко короче:
C#
1
2
3
string DynamicName = "basc[yyyymmdd].log";
string[] parts = DynamicName.Split('[', ']');
string PathToRealLog=parts[0]+DateTime.Now.ToString(parts[1].Replace("m","M"))+parts[2];
Replace("m","M") нужно, что бы не заморачивать юзера тем, что формат "mm" - выводит минуты, а "MM" - месяц
Код написан в предположении, что в паттерне обязательно будет присутствовать ровно одна открывающая скобка и одна закрывающая, но по-хорошему это конечно надо проверять...
"немножко короче" - отжег)))))))

юзер не будет заморачиваться, формат даты он не пишет а выбирает из доступного (в комбобоксе):
DDMMYYYY
DDMMYY
YYYYMMDD
YYMMDD
YYYY
YY
DDMM
MMDD
MM
DD
вроде все возможные варианты, а логов с временеи я даже не встерчал

спас огромное, 3 строки кода вместо моей махины это круто))), я Split никогда не юзал, даже забыл про нее)

Добавлено через 11 минут
дата в таком формате должна быть
ddMMyyyy
ddMMyy
yyyyMMdd
yyMMdd
yyyy
yy
ddMM
MMdd
MM
dd
0
9 / 9 / 0
Регистрация: 13.01.2010
Сообщений: 32
30.01.2010, 11:12
Цитата Сообщение от FreeWay Посмотреть сообщение
...
спас огромное, 3 строки кода вместо моей махины это круто))), я Split никогда не юзал, даже забыл про нее)
...
Да не за что...
Я вот тоже подзабыл, что DateTime.ToString() умеет формат использовать... Так что взаимно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.01.2010, 11:12
Помогаю со студенческими работами здесь

Как определить тип файла - текстовый или бинарный?
Приветствую. Собственно, сабж. По расширению не пойдет. Нужно чтобы как-то анализировалось, что внутри. Вне зависимости от...

Напишите командный файл, создающий текстовый файл, имя которого задается как параметр командного файла
1. Напишите командный файл, создающий текстовый файл, имя которого задается как параметр командного файла. BATFILE.BAT <текстовый...

Напишите командный файл, создающий текстовый файл, имя которого задается как параметр командного файла
1. Напишите командный файл, создающий текстовый файл, имя которого задается как параметр командного файла. BATFILE.BAT <текстовый...

Это ошибка или как получить имя файла из диалога
void __fastcall TForm2::OpenDialog1Close(TObject *Sender) { String FileName = ExtractFileName(OpenDialog1->FileName); ...

получить имя файла или как вычесть строку из строки)
всем привет. Вот чето я затупил... У меня есть строка полный путь к файлу и строка которая содержит только папки до этого файла....


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru