Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> подстановка переменных вместо строки 
V
    Опции темы
wester
Дата 9.7.2010, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009

Репутация: 3
Всего: 13



Доброго времени суток!
пишу программу и не очень понятно как можно реализовать следующее:
дана строка-регулярное выражение "b:\year\month\day\time" , необходимо как - то эту строку преобразовать к новому пути файла 
а именно, что бы получилось 
Код

@"b:\" + YearCreate + @"\" + MonthCreate + @"\" + DayCreate + @"\" + HourNMinuteCreate

по сути тоже самое как упорядовачивание файлов mp3 исходя из тегов.

почитал про рефлексию, но не очень понятно как, можно с помощью нее подставлять переменные при выполнении программы
PM MAIL   Вверх
KelTron
Дата 9.7.2010, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: 11
Всего: 38



Чё то не пойму в чём проблема то...
Если переменные YearCreate, MonthCreate и тд это целые числа то просто преобразуешь в строку и всё
Код

@"b:\" + YearCreate.ToString() + @"\" + MonthCreate.ToString() + @"\" + DayCreate.ToString() + @"\" + HourNMinuteCreate.ToString()




--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
wester
Дата 9.7.2010, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009

Репутация: 3
Всего: 13



нет, по сути говоря хочу сделать программу которая упорядочивает файлы исходя из данных файла.
то есть пользователь задает маску перемещения, и программа разбирает эту маску и перемещает файл в соответствующую директорию
допустим если файл создан 7 июля 2010 года в 15:16 ,а маска "b:\year\month\day\time", то в программе должна получиться переменная ""b:\" + YearCreate + @"\" + MonthCreate + @"\" + DayCreate + @"\" + HourNMinuteCreate" где *Create - значения полученные из файла.
PM MAIL   Вверх
KelTron
Дата 9.7.2010, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: 11
Всего: 38



Т.е. если пользователь задаст "b:\year\month\day\time", то на выходе получится "b:\2010\7\7\15:16",
если "b:\time\month\day\year", то "b:\15:16\7\7\2010"?
И каким образом может изменяться маска? Только перестановкой значений местами или ещё как то?


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
wester
Дата 9.7.2010, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009

Репутация: 3
Всего: 13



KelTron, 
да именно так,
то есть пользователь может задать любую маску как типа "b:\month\year\date" или "b:\year\month\date"
и должен формироваться путь исходя из заданной маски
PM MAIL   Вверх
KelTron
Дата 9.7.2010, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: 11
Всего: 38



Например, так:
Код

static void Main(string[] args)
{
    string mask = @"b:\time\month\day\year";
    string path = GetPath(mask, DateTime.Now);
}

private static string GetPath(string mask, DateTime createDate) 
{
    string[] vals = mask.Split(new char[]{'\\'});
    var path = new StringBuilder();
    path.Append(vals[0]);
    for (int i = 1; i < vals.Length; i++)
    {
        switch (vals[i])
        {
            case "year":
                path.Append(@"\" + createDate.Year.ToString());
                break;
            case "month":
                path.Append(@"\" + createDate.Month.ToString());
                break;
            case "day":
                path.Append(@"\" + createDate.Day.ToString());
                break;
            case "time":
                path.Append(@"\" + createDate.ToShortTimeString());
                break;
            default:
                break;
        }
    }

    return path.ToString();
}




--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
wester
Дата 9.7.2010, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009

Репутация: 3
Всего: 13



Спасибо! 
все работает!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0487 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.