Форум программистов, компьютерный форум CyberForum.ru

Получить файлы в папке - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сумма элементов массива http://www.cyberforum.ru/cpp-beginners/thread527774.html
Написать программу, которая вводит по строкам с клавиатуры двумерный массив и вычисляет сумму его элементов по столбцам.
C++ При нажатии - отобразить картинку При нажатии на строку DataGridView - отобразить картинку в PictureBox, При нажатии на другую строку - отобразить другую картинку. Заранее благодарю. Добавлено через 1 час 0 минут Точнее, у меня есть List привязанный к DGV, нужно при нажатии на строку, вывести в MassageBox или просто PictureBox картинку. У меня лист телефонов - тыкнул на телефон - появилась его фото. Тыкнул на другой... http://www.cyberforum.ru/cpp-beginners/thread527769.html
Поменять местами столбец с номером 1 и последний из столбцов, содержащих только положительные элементы C++
помогите дорешать Matrix53. Дана матрица размера M × N. Поменять местами столбец с номером 1 и последний из столбцов, содержащих только положительные элементы. Если требуемых столбцов нет, то вывести матрицу без изменений. #include<iostream.h> #include<math.h> #define m 5 #define n 5 int main() {int a,i,j; for(i=0;i<m;i++) for(j=0;j<n;j++) cin>>a;
C++ Вывод из файла
Как можно вывести все содержымое файла в переменную с пробелами , с абзацами короче со всеми символами.Я вот что пытался типа такого зделать: file.open( "file.txt" , std::ios::in ); while(! file.eof()) file >> InFile; //переменная типа string Но в переменную записывалась только последняя строка
C++ подскажите в чем ошибка http://www.cyberforum.ru/cpp-beginners/thread527765.html
поставлена задача: Задан одномерный массив В, состоящем из n вещественных элементов. Определить позиции массива, в которых расположены нулевые элементы и сосчитать их количество может кто может подредактировать? :) вот #include <iostream> #include <conio.h>
C++ массив выводится неправильно пишу в Visual Studio вот код: for(int i=0; i<5; i++) { printf("Введите %d Строку\n",i+1); for(int j=0; j<5; j++) { cin >>A; } } for(int i2=0; i2<5; i2++) подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,266
26.03.2012, 23:55     Получить файлы в папке
код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
//Код не мой, а некоего Юры, я его шлифанул
#include <windows.h>
#include <stdio.h>
 
long int rez= 0;
 
void GetFileList(LPTSTR sPath);
 
int main(){
 
//Поскольку sPath и sExt и sEXT одинаковы во всех вызовах GetFileList, их можно было бы сделать
//глобальными, но я так оставил. 
//        char sPath[MAX_PATH]= "E:\\Microsoft_Visual_Studio_9.0";
        char sPath[MAX_PATH]= "E:\\vso_moio";
//        char sPath[MAX_PATH]= "C:\\vso_moio";
//        char sPath[MAX_PATH]= "C:\\vso_moio";
 
//Обратить  внимание на размер массива!
        GetFileList(sPath);
      printf("rez= %d\n", rez);
 
//Портит всё дело: Если перенаправлять в файл с консоли, то полуачается, что в консол ведут 
//запись два разных потока- тот,который нужент и этот,который записывает "Для продлжения нажмите любую
//клавишу" и эта надпись вклинивается в серёдку и портит всё дело
  system ("PAUSE");
}
 
void GetFileList(LPTSTR sPath) {
 
 WIN32_FIND_DATA pFILEDATA;
 
 HANDLE hFile = FindFirstFile(strcat(sPath,"\\*.*"),&pFILEDATA);
 
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!Необходимо именно здесь прописывать длину пути!!!!!!!!!!!!!!!!!!!!!!!
 sPath[strlen(sPath) - strlen(strstr(sPath,"*.*"))] = '\0';
//Если пропишем после if (как предлагает Юра), то тогда, если вдруг натыкаемся на системную директорию
// или файл, то FindFirstFile возвращает -1. Следовательно, всё, что выплнняется по условию
//(hFile!=INVALID_HANDLE_VALUE) не выолнится и в частности, не будет поставлен конец строки!
//А это значит, что по выходу из  рекурсивной функции GetFileList в том месте, где мы восстанавливаем
//Длину, она будет восстановлена неправильно
 if (hFile!=INVALID_HANDLE_VALUE)    {
  char * chBuf;
  //sPath[strlen(sPath) - strlen(strstr(sPath,"*.*"))] = '\0';
  do {
   //Пропускаем . и ..
   if (strlen(pFILEDATA.cFileName) == 1 &&  strchr(pFILEDATA.cFileName,'.') !=NULL)
    if (FindNextFile(hFile,&pFILEDATA) == 0)
      break;
   if (strlen(pFILEDATA.cFileName) == 2 && strstr(pFILEDATA.cFileName,"..") !=NULL)
    if(FindNextFile(hFile,&pFILEDATA) == 0)
      break;
     //Если нашли директорию, запускаем поиск в ней рекурсивный поиск
   if(pFILEDATA.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
     GetFileList(strcat(sPath,pFILEDATA.cFileName));
 
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!оБЯЗАТЕЛЬН востанавливать дллину пути................................     
     sPath[strlen(sPath) - strlen(pFILEDATA.cFileName)- 1] = '\0';
   }
   else {
    //Проверяем на соотвествие sExt расширения pFILEDATA.cFileName
//    if((chBuf = strrchr(pFILEDATA.cFileName,'.'))) {
//     if((!strcmp(chBuf + 1,sExt))|| (!strcmp(chBuf + 1,sEXT))) {
      //Если не будем использовать CharToOem() то на экране русский шрифт каракулями выйдет
      CharToOem(sPath,sPath);
      printf("%s",sPath);
      OemToChar(sPath,sPath);
      CharToOem(pFILEDATA.cFileName,pFILEDATA.cFileName);
      printf("%s\n",pFILEDATA.cFileName);
      rez++;
//     }
//    }
   }
  }
  while (FindNextFile(hFile,&pFILEDATA));
 }
}
 
Текущее время: 01:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru