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

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

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2017, 01:27   #11
alcatraz_kms
Пользователь
 
Регистрация: 05.10.2017
Сообщений: 14
По умолчанию

Цитата:
Сообщение от WorldMaster Посмотреть сообщение
Прежде чем писать на форум с вопросами типа сколько будет 2+2 необходимо хоть немного ознакомиться с базовой литературой. Погуглить чуток. Попробовать что-то сделать самостоятельно. И если не получается тогда уж написать на форум. Типа вот делаю так то и так то а ничего не выходит.
А иначе получается что-то вроде "Я делать ничего не хочу, читать не хочу - подайте ка мне готовое решение". Это уже не помощь а "сделай за меня".
По вашему вопросу первые ссылки гугла дают уже готовое решение, но вам надо чтобы ктото на блюдечке его вам преподнес.
Столько негатива ужаснах, я уже искал в инете и решение, которые там были пробовал, не помогают, а писать сюда, что делал и как тогда замучаются читать. Проще написать в чем вопрос. А если на этом форуме сидят люди, которые не понимают в программирование ничего, а только ссылаются на гугл, то мне жаль это форум.
И вместо того, чтобы помощь новичку в C#, начинают "умничать" то и в этом случае тоже жаль форум.
А подсказать пару строк кода или хотябы написать адрес страницы в инете где опубликован пример по данному вопросу это конечно не возможно! Я так понял!
alcatraz_kms вне форума Ответить с цитированием
Старый 19.10.2017, 08:52   #12
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Если внимательно прочитать ветку с начала то можно заметить что ТС выложил свои наработки и попросил посмотреть где может быть ошибка. Ему оперативно помогли - ТС доволен.
Вы же выкинули пустой вопрос в никуда. И ничем его не подкрепили .. разве что уверениями что якобы что-то там пробовали. гугл это техническая документация, которой вы к сожалению не в состоянии пользоваться. А есть еще MSDN где описано наверное вообще все что касается продуктов Microsoft. В том числе и примеры использования гридов и открытия файлов. Да что там MSDN в студии при написании кода документация прямо рядом с функцией всплывает.
Если вы не способны видеть очевидные вещи и не справляетесь с тех. документацией то может программирование не для вас?? К тому же заявления что на форуме не понимают в программировании в вашем случае звучат просто нелепо.
Также вам никто не мешает пойти лесом на другие форумы, благо их огромное количество.

Почему то вспомнился старый анекдот про отца и сына на море. ))))
Вот море.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 20.10.2017, 04:16   #13
alcatraz_kms
Пользователь
 
Регистрация: 05.10.2017
Сообщений: 14
По умолчанию

Цитата:
Сообщение от WorldMaster Посмотреть сообщение
Если внимательно прочитать ветку с начала то можно заметить что ТС выложил свои наработки и попросил посмотреть где может быть ошибка. Ему оперативно помогли - ТС доволен.
Вы же выкинули пустой вопрос в никуда. И ничем его не подкрепили .. разве что уверениями что якобы что-то там пробовали. гугл это техническая документация, которой вы к сожалению не в состоянии пользоваться. А есть еще MSDN где описано наверное вообще все что касается продуктов Microsoft. В том числе и примеры использования гридов и открытия файлов. Да что там MSDN в студии при написании кода документация прямо рядом с функцией всплывает.
Если вы не способны видеть очевидные вещи и не справляетесь с тех. документацией то может программирование не для вас?? К тому же заявления что на форуме не понимают в программировании в вашем случае звучат просто нелепо.
Также вам никто не мешает пойти лесом на другие форумы, благо их огромное количество.

Почему то вспомнился старый анекдот про отца и сына на море. ))))
Вот море.
Вот Вы тут уже столько написали, а по сути вопроса ничего, не смотря на то что я кинул исходный код, и указал вопрос там где у меня была проблема.
Которую я уже решил использую советы компетентных людей, а не типа программистов как Вы.
Почему типа, потому что Вы не в состояние даже когда я кинул код указать на явные ошибки в нем, а только повторять свои слова по поводу гугла и ссылаться на других.
ОК.
Начнем сначало...
Если Вы такой ПРО в программирование, то простой вопрос, как добавлять знак \ в адресную строку?
т.е. в коде идет формирование адреса до файлов для с расширением тхт, например D:\Test\*.txt

проблема в том если в DataGridView есть адреса каталогов, например D:\Test
то при фильтра каталогов получается так D:\Testtest1.txt вместо
D:\Test\test1.txt

код:
// Просмотр списка каталогов
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (!row.IsNewRow)
{
var cat = row.Cells[2].Value; // значение строк столбца каталог
var directory = new DirectoryInfo(cat.ToString());

var namedb = row.Cells[1].Value; // значение строк столбца имя базы данных
var db = new DirectoryInfo(namedb.ToString());

DirectoryInfo dir = new DirectoryInfo(directory.ToString()) ; // выбраные каталоги
FileInfo[] files = dir.GetFiles("*.txt");

// Проверка бэкапов по разным условиям
foreach (FileInfo f in files) // просмотр всех файлов тхт в каталоге
{

StreamReader str = new StreamReader(dir.ToString() + f);

while (!str.EndOfStream)
{
string st = str.ReadLine();
if (st.StartsWith(ora) || st.StartsWith(exp))
{
listBox1.Invoke(new MethodInvoker(() => listBox1.Items.Add(db.ToString() + " " + "[Бэкап прошел с ошибками]")));
break;
}
else
{
listBox1.Invoke(new MethodInvoker(() => listBox1.Items.Add(db.ToString() + " " + "[Бэкап прошел успешно]")));
break;
}
}
}

}
}
alcatraz_kms вне форума Ответить с цитированием
Старый 20.10.2017, 04:19   #14
alcatraz_kms
Пользователь
 
Регистрация: 05.10.2017
Сообщений: 14
По умолчанию

Ситуация возможно будет такая, что список каталогов будет такой
С:\Test
D:\test\
C:\

и т.п.

то это \ получается крайне необходим в
StreamReader str = new StreamReader(dir.ToString() + f);
иначе файл(ы) будут не найдены
alcatraz_kms вне форума Ответить с цитированием
Старый 20.10.2017, 09:29   #15
alcatraz_kms
Пользователь
 
Регистрация: 05.10.2017
Сообщений: 14
По умолчанию

а все разобрался, решение простое, было все просто
использовать в место (dir.ToString() + f)
(dir.ToString() + ''\\" + f)
alcatraz_kms вне форума Ответить с цитированием
Старый 20.10.2017, 23:01   #16
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Path.Combine еще можете применить.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 23.10.2017, 08:54   #17
alcatraz_kms
Пользователь
 
Регистрация: 05.10.2017
Сообщений: 14
По умолчанию

Приветь.

Хочу сделать так, Но немного вступления, имеется такая вот инфа, пример см. на скрин
Вся эта инфа храниться (пока храниться) в базе данных Access
На данный момент программа проверяет лог файлы на наличие ошибок таких как ora и exp в каталогах по условию «Наличие одновременно двух файлов dmp и log»
А теперь сама суть:
1. Что нужно прописать в коде, чтобы проверялся размер log файла так как если он имеет размер в 0 байт, то бэкап не прошел? (нужен код - как говориться кратко и сердито, если возможно)))
2. И самое интересное, я хочу сделать такую фишку, например, двойным щелчком по строке в поле расписание для соответствующей базы данных (поле ID есть это очень сильно упрощает задачу) открывалась форма где можно было указать значения, соответствующие расписанию по дням выполнения в планировщике Windows запуск скриптов для бэкапов.
Например, как на скрине
пон –понедельник,
вт- вторник и т.д.
А с помощью чекбоксов думаю так лучше, но может кто подскажет, другие варианты
выбирать дни недели?
Много написал конечно, но хотел расписать, что именно хочу сделать
В общем идея такая, упростить максимально настройку условия фильтрации файлов по дате изменения, для дальнейшего анализа на ошибки.
Ко всему этом прилагаю отрывок кода программы.
Код:
// КНОПКА ПРОВЕРКА БЭКАПОВ НА ИНЦИДЕНТЫ 
        public void button1_Click(object sender, EventArgs e)
        {
            listBox1.Items.Clear();
            String ora = "ORA-"; // если есть в лог файле ошибки ORA
            String exp = "EXP-"; // если есть в лог файле ошибки EXP


            // Расписание
            DateTime from_date = DateTime.Today; // от начало суток
            DateTime to_date = DateTime.Now; // текущию сутки

            // Просмотр файлов в каталогах
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                if (!row.IsNewRow)
                {
                    var cat = row.Cells[2].Value; // просмотр столбца каталог
                    DirectoryInfo dir = new DirectoryInfo(cat.ToString()); // выбраные каталоги
                    var namedb = row.Cells[1].Value; // значение строк столбца каталог 
                    var db = new DirectoryInfo(namedb.ToString());
                    FileInfo[] files = dir.GetFiles("*.log");
                    FileInfo[] files2 = dir.GetFiles("*.dmp");

                    // Проверка наличия файлов
                    var log = File.Exists(dir.ToString() + "\\" + files); // проверка наличия log файла
                    var dmp = File.Exists(dir.ToString() + "\\" + files2); // проверка наличия dmp файла

                    if (files.Length > 0 && files2.Length > 0) //условия если два файлов
                    {
                        foreach (FileInfo f in files) // просмотр всех файлов тхт в каталоге
                        {
                            StreamReader str = new StreamReader(dir.ToString() + "\\" + f);
                            while (!str.EndOfStream)
                            {
                                string st = str.ReadLine();
                                if (st.StartsWith(ora) || st.StartsWith(exp)) // поиск ошибок
                                {
                                    listBox1.Invoke(new MethodInvoker(() => listBox1.Items.Add(db.ToString() + " " + "[Бэкап прошел с ошибками]")));
                                    break;
                                }
                                else
                                {
                                    listBox1.Invoke(new MethodInvoker(() => listBox1.Items.Add(db.ToString() + " " + "[Бэкап прошел успешно]")));
                                    break;
                                }
                            }
                        }
                    }
                    else
                    {
                        listBox1.Invoke(new MethodInvoker(() => listBox1.Items.Add(db.ToString() + " " + "[Бэкап не прошел]")));
                    }
                }
            }
        }
По первому вопросу прошу работающий код решения вопроса
По второму стратегию хотя бы)))

А вот скрин:
Изображения
Тип файла: png Безымянный.png (18.7 Кб, 94 просмотров)
alcatraz_kms вне форума Ответить с цитированием
Старый 24.10.2017, 06:02   #18
alcatraz_kms
Пользователь
 
Регистрация: 05.10.2017
Сообщений: 14
По умолчанию

ну вот опять ни кто не может ответить на развернутый вопрос, где же программисты?
alcatraz_kms вне форума Ответить с цитированием
Старый 24.10.2017, 14:45   #19
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Код:
var fInfo = new System.IO.FileInfo(@"путь к файлу");
if (fInfo.Length == 0)
{
  // пустой файл
}
Про планировщик я не понял. Проблема в технической реализации или в GUI?
pu4koff вне форума Ответить с цитированием
Старый 26.10.2017, 02:08   #20
alcatraz_kms
Пользователь
 
Регистрация: 05.10.2017
Сообщений: 14
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Код:
var fInfo = new System.IO.FileInfo(@"путь к файлу");
if (fInfo.Length == 0)
{
  // пустой файл
}
Про планировщик я не понял. Проблема в технической реализации или в GUI?
Проблема и в том и в том
alcatraz_kms вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление базой данных Access на Delphi salernitana Фриланс 9 22.07.2015 15:55
Работа с базой данных Access andrey199520 Microsoft Office Access 1 09.04.2014 10:10
Одновременная работа с одной базой данных Access Dux БД в Delphi 6 09.11.2012 10:26
связь делфи с базой данных access q123ser87 Помощь студентам 1 19.05.2012 15:28
Управление Базой Данных Access One.Love БД в Delphi 2 11.10.2008 02:08