Russian Qt Forum

Qt => Вопросы новичков => Тема начата: kuziashagrath85 от Август 05, 2012, 13:07



Название: Считывание файлов в цикле
Отправлено: kuziashagrath85 от Август 05, 2012, 13:07
В папке есть 600 файлов. Задача - поочередно в цикле их открыть, переписать в другой файл с таким же названием, но со строкой "_result"(например, сведения из файла  U20089 переписать в файл U20089_result ). Сделать надо в цикле. Что я делаю(точнее,стараюсь сделать)-в цикле открываю файл, затем открываю второй файл-переписываю его-закрываю.

Код:
#include <QDir>
 #include <QtCore>
 #include <iostream>
#include <QFile>



 int main(int argc, char *argv[]) {
     QCoreApplication app(argc, argv);    //консольное приложение
     QDir dir("E:/Zadanie_Semenova");  //объявляем объект работы с папками
     QFileInfoList list = dir.entryInfoList();     //получаем список файлов директории

   for (int i = 0; i < list.size(); ++i) {
       QFile file1("%") =  FILE(i);
       QFile file2("%_result")=File(i);
       if (file2.open(file1.open(QIODevice::ReadOnly)){
          QByteArray a=file1.ReadAll;
     }
        file1.open(QIODevice::WriteOnly);
               file2.writeBlock(a));

   file1.close();
   file2.close();
 }
     return 0;
 }
вот код-подскажите, где ошибка?


Название: Re: Считывание файлов в цикле
Отправлено: mutineer от Август 05, 2012, 13:25
Цитировать
QFile file1("%") =  FILE(i);
QFile file2("%_result")=File(i);

что это за FILE(i) и File(i) ?
И что эти строки вообще должны значить?



Цитировать
if (file2.open(file1.open(QIODevice::ReadOnly)){
          QByteArray a=file1.ReadAll;
}     
переменной а не существует вне этого if


Название: Re: Считывание файлов в цикле
Отправлено: kuziashagrath85 от Август 05, 2012, 13:39
Цитировать
QFile file1("%") =  FILE(i);
QFile file2("%_result")=File(i);

что это за FILE(i) и File(i) ?
И что эти строки вообще должны значить?

По идее эти строки должны были бы означать то, что  я открываю старый файл с каким то именем, а затем открываю новый файл с точно таким же именем, но с добавлением названия "result"=))

итировать
if (file2.open(file1.open(QIODevice::ReadOnly)){
          QByteArray a=file1.ReadAll;
}     
переменной а не существует вне этого if

не совсем понял утверждение=)


Название: Re: Считывание файлов в цикле
Отправлено: Igors от Август 05, 2012, 13:44
По идее эти строки должны были бы означать то, что  я открываю старый файл с каким то именем, а затем открываю новый файл с точно таким же именем, но с добавлением названия "result"=))
А почему Вы так решили? Вам кто-то это сказал или где-то прочитали, ну или просто Вам так хотелось бы?


Название: Re: Считывание файлов в цикле
Отправлено: mutineer от Август 05, 2012, 13:46
По идее эти строки должны были бы означать то, что  я открываю старый файл с каким то именем, а затем открываю новый файл с точно таким же именем, но с добавлением названия "result"=))

То есть это псевдокод? ок

не совсем понял утверждение=)

Про локальные переменные слышал? При входе в блок, начинающийся на { создается переменная а, а при выходе из блока (выход обозначен символом } ) эта переменная уничтожается



Ну и это, ты тут гадание решил устроить? У тебя что-то конкретное не работает, или это викторина "найди такую же ошибку, которую нашел автор поста"?


Название: Re: Считывание файлов в цикле
Отправлено: kuziashagrath85 от Август 05, 2012, 14:11
По идее эти строки должны были бы означать то, что  я открываю старый файл с каким то именем, а затем открываю новый файл с точно таким же именем, но с добавлением названия "result"=))

То есть это псевдокод? ок

Хорошо, тогда поставлю вопрос так: как сделать так, чтобы файл открывался? Какой оператор нужно поставить?


Название: Re: Считывание файлов в цикле
Отправлено: kuziashagrath85 от Август 05, 2012, 14:17
вот код-подскажите, где ошибка?
Везде.

а поконкретнее?


Название: Re: Считывание файлов в цикле
Отправлено: andrew.k от Август 05, 2012, 14:19
Цитировать
вот код-подскажите, где ошибка?
Везде.

P.S. Шо, студент? Лаба не получается?

P.P.S. А! Понял! Есть такой тип заданий. Найдите ошибку называется.
Есть такой тип заданий, которые внезапно надо срочно сдать... завтра! :)


Название: Re: Считывание файлов в цикле
Отправлено: mutineer от Август 05, 2012, 14:25
Хорошо, тогда поставлю вопрос так: как сделать так, чтобы файл открывался? Какой оператор нужно поставить?

документацию по QFile смотрел? там есть пример

ну и скажи в чем пробема у тебя. не компилируется? не запускается? не создат файлы? форматирует диск?


Название: Re: Считывание файлов в цикле
Отправлено: kuziashagrath85 от Август 05, 2012, 15:01
пример есть, но для просмотра 1 файла,а не группы.Если можешь показать этот пример, я буду счастлив


Название: Re: Считывание файлов в цикле
Отправлено: mutineer от Август 05, 2012, 15:38
Перебираешь список файлов и работаешь с каждым как в примере


Название: Re: Считывание файлов в цикле
Отправлено: kuziashagrath85 от Август 05, 2012, 18:00
Хм, вот код для записи существующего файла в новый файл.
Код:
QFile file1("text1");
QFile file2("text2");

QbyteArray a=file1.ReadAll();
file2.writeBlock(a);
file1.close;
file2.close;


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


Название: Re: Считывание файлов в цикле
Отправлено: kambala от Август 05, 2012, 18:05
а зачем считывать содержимое файла и записывать его в новый если можно просто скопировать файл через QFile::copy()?


Название: Re: Считывание файлов в цикле
Отправлено: mutineer от Август 05, 2012, 18:33
Хм, вот код для записи существующего файла в новый файл.
Код:
QFile file1("text1");
QFile file2("text2");

QbyteArray a=file1.ReadAll();
file2.writeBlock(a);
file1.close;
file2.close;


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

Этот код не работает даже для одного файла, потому что содержит ошибки. Значит запускать ты его и не пытался, а просто троллишь тут нас


Название: Re: Считывание файлов в цикле
Отправлено: Bepec от Август 05, 2012, 22:43
Уважаемый kuziashagrath85, а по какой специальности вы защитились, если не секрет?

PS Взято с Мамбы -
Цитировать
Состояние духа в настоящий момент:
    Готов к великим свершениям ;)
:D

PPS йоптель, меня спалили... Теперь:
Цитировать
Анкета недоступна


Название: Re: Считывание файлов в цикле
Отправлено: alexis031182 от Август 05, 2012, 23:35
Что-то мне подсказывает, что теперь не только kuziashagrath85 побежит закрывать свою страницу на мамбе. Срочно и дружно проверяем свои маленькие секреты )))


Название: Re: Считывание файлов в цикле
Отправлено: Bepec от Август 05, 2012, 23:41
Оригинальный ник, одинаковый на всех ресурсах - это корень проблемы :)

PS по моему нику так не проканает :/ Печалька

PPS Фрилансер А******** О**** [alexis031182] :D бум знакомы? :)


Название: Re: Считывание файлов в цикле
Отправлено: alexis031182 от Август 05, 2012, 23:47
Да нет никакой проблемы. Кому надо - так и так найдут. А остальным пофиг по идее должно быть. Парень конечно похитрить слегка решил, но всё же не повод это гнобить его до последнего, да ещё всем скопом. Впрочем, может я и ошибаюсь. Просто впечатление такое...


Название: Re: Считывание файлов в цикле
Отправлено: alexis031182 от Август 05, 2012, 23:48
...
PPS Фрилансер А******** О**** [alexis031182] :D бум знакомы? :)
Александр Орлов на правах рекламы :) Рад знакомству, пусть и в одностороннем порядке :)


Название: Re: Считывание файлов в цикле
Отправлено: Bepec от Август 05, 2012, 23:49
Да мы не гнобим наверно :D

Во всяком случае мне просто интересно. Если он дипломированный специалист, то в какой области?

PS А так конечно тема похожа на сотни других - я незнаю С++, а Qt это проще, чем C++! Сделайте за меня :D

PPS Иван. Просто Иван. Очень приятно ;)


Название: Re: Считывание файлов в цикле
Отправлено: alexis031182 от Август 05, 2012, 23:57
Да мы не гнобим наверно :D
Во всяком случае мне просто интересно. Если он дипломированный специалист, то в какой области?
Судя по всему не в программировании на C. Надо признать.

PS А так конечно тема похожа на сотни других - я незнаю С++, а Qt это проще, чем C++! Сделайте за меня :D
Предлагаю отныне таковое поведение называть мамбой )))

PPS Иван. Просто Иван. Очень приятно ;)
Взаимно :)


Название: Re: Считывание файлов в цикле
Отправлено: alexis031182 от Август 06, 2012, 00:05
З.Ы. В предчувствие того, что тему ликвидируют, посетую на злого админа, что так с лёгкой руки удалил "блондиночный Qt" с просторов сего замечательного ресурса. Всё же непредвзятость авторши темы веселила не только меня, но и, не побоюсь сказать, многих других столь же неуравновешенных форумчан. Тоска прямо :)


Название: Re: Считывание файлов в цикле
Отправлено: Bepec от Август 06, 2012, 07:03
Ну, лолы идут. Жалко только, что историй как с гадким утёнком не получается :/


Название: Re: Считывание файлов в цикле
Отправлено: Kurles от Август 06, 2012, 07:57
Блин, вот вам не лень то :)


Название: Re: Считывание файлов в цикле
Отправлено: Bepec от Август 06, 2012, 09:01
Интересная специальность. Хотелось бы у него спросить, когда парниковый эффект настанет...


Название: Re: Считывание файлов в цикле
Отправлено: Bepec от Август 06, 2012, 11:26
Тю, не гноби парня :) Он итак мамбу удалил )

Мб решил автоматизировать свои процессы. Вот только без должной подготовки :)


Название: Re: Считывание файлов в цикле
Отправлено: Bepec от Август 06, 2012, 12:26
Да вы опасны для нубов :D

Но где же ТС?


Название: Re: Считывание файлов в цикле
Отправлено: Igors от Август 06, 2012, 13:00
Я считаю такой подход к программированию издевательством по отношению к форумчанам и даю симметричный ответ. Око за око, так сказать.
Ну форум открыт для всех, поэтому всегда будут посты начинающих да и просто нерадивых студентов - к этому надо спокойно относиться. А гневные тирады ни к чему  :)


Название: Re: Считывание файлов в цикле
Отправлено: andrew.k от Август 06, 2012, 13:54
Может быть, я излишне груб и резок, не спорю. Но гневные тирады могут заставить человека задуматься. В этом их цель.
Человека на форуме нет давно, как и не было. Кого вы тут заставляете думать?
Устроили очередной срач, кто красивее нагадит на больную собаку. И компашка сраторов стандартная.


Название: Re: Считывание файлов в цикле
Отправлено: Bepec от Август 06, 2012, 13:59
А ВЫ, andrew.k, конечно прЫнц на белом коне :) А-та-та :D