При любой операцией с Memo, вылетает эксепшн. ShowMessage() норм работает, выводит мне ИП.... Прошелся еще раз трассировкой заметил одну вещь, очень долго думает над строчкой: Code: pcap_loop(adhandle, 0, packet_handler, NULL);
2galiaff а можно немного поподробнее что за библиатека и пример использования если конечно не затрудит ! Заранее спасибо и желательно для консольного приложения
Вот пример поиска, тока я не помню где я его нашел: Code: void FindDir(char *path,char *mask, char file[]) { WIN32_FIND_DATA wfd; HANDLE hfound; char newpath[MAX_PATH]; char fpath[MAX_PATH]; char pathifile[MAX_PATH]; //полный путь до файла char delpath[MAX_PATH]; strcpy(fpath,path); strcat(fpath,"\\"); strcpy(delpath,fpath); strcat(fpath,mask); if((hfound=FindFirstFile(fpath,&wfd))!=INVALID_HANDLE_VALUE) { if(!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)&&strcmp(wfd.cFileName,"..")&&strcmp(wfd.cFileName,".")) { //нашли первый файл в папке path // printf("Error: %d\n", GetLastError()); } while(FindNextFile(hfound,&wfd)) { if(!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)&&strcmp(wfd.cFileName,"..")&&strcmp(wfd.cFileName,".")) { // файл в папке path // delpath - папка, с которой начинается реккурсия // wfd.cFileName - имя найденного файла // копируем строку delpath в pathifile strcpy(pathifile, delpath); // прибавляем к строке pathifile значение // переменной wfd.cFileName - имя файла strcat(pathifile, wfd.cFileName); if (strstr(pathifile, file) != NULL) { // send(sd, pathifile, strlen(pathifile), 0); strcat(tmp, pathifile); strcat(tmp, "\n"); } // делаем что-либо с найденным файлом } } } FindClose(hfound); //поиск файлов закончили, теперь ищем подпапки strcpy(fpath,path); strcat(fpath,"\\*.*"); if((hfound=FindFirstFile(fpath,&wfd))!=INVALID_HANDLE_VALUE) { if((wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)&&strcmp(wfd.cFileName,"..")&&strcmp(wfd.cFileName,".")) { strcpy(newpath,path); strcat(newpath,"\\"); strcat(newpath,wfd.cFileName); FindDir(newpath,mask, file, sd); //Рекурсивный вызов } while(FindNextFile(hfound,&wfd)) { if((wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)&&strcmp(wfd.cFileName,"..")&&strcmp(wfd.cFileName,".")) { strcpy(newpath,path); strcat(newpath,"\\"); strcat(newpath,wfd.cFileName); FindDir(newpath,mask, file, sd); //Рекурсивный вызов } } } } (c) чье_то_но_не_мое
Что нужно добавить в код, чтобы Memo1 был виден в моей функции? Если я внутри своей функции делаю: Code: TMemo1 *Memo1; то получаю: Undefined symbol 'TMemo1'
народ, подскажите как заставить консольку создать новую директорию? тоесть мне нужно чтоб программа создавала папку с определенным именем, которое заранее известно. А потом после этого удалить директорию. И еще, как можно сделать чтоб из переменной класса стринг(и чар) можно текст использовать в виде имени файла или папки? я использую ofstream заранее спс. VC++ 6.0 ofstream txtfile("C:\Program Files\myfolder\mytxt.txt");
Code: BOOL CreateDirectory( LPCTSTR lpPathName, // directory name LPSECURITY_ATTRIBUTES lpSecurityAttributes // SD ); Пример: Code: void main() { if (CreateDirectory(”c:\\new”,NULL)) printf("Done!\n"); else printf("Error\n"); }
Нажимаю я клавишу например f5, получаю её виртуальный код в десятичном представлении = 116! Возможно ли каким нибудь мегахитрым путём, получить VK_F5 и шестнадцатиричное представление етой клавиши (без забивки значений массива)
Каким образом в операторе if (в С) можно остановить выполнение программы, при выполнении заданного условия?
Code: #include <iostream> #include <windows.h> using namespace std; void main() { if (CreateDirectory("c:\\new",NULL)) cout << "Done!\n"; else cout <<"Error\n"; } чет не работает( Code: error C2664: 'CreateDirectoryW' : cannot convert parameter 1 from 'const char [7]' to 'LPCWSTR'
можно использовать return или exit() Code: if( /* условие */) return 0; // или return 1 или Code: if( /* условие */) exit(0);
Это как ? Вот так у меня не работает: Code: # include <iostream> # include <stdlib.h> int main() { int n, a0, a1, a2, a3; char a01, a11, a12; printf("Enter n, please:"); scanf("%d", &n); a0=(n/1000); a1=(n/100)-a0*10; a2=(n/10)-(a0*100+a1*10); a3=n-(a0*1000+a1*100+a2*10); if (n<10) { printf("Error: n have only one digital"); exit(); } else if (n>9999) { printf("Error: n>9999"); } else {} if (a0==0 && a3!=0) { a0=n+1; } else if (a1==0 && a3!=0) { a1=n+2; } else if (a2==0 && a3!=0) { a2=n+3; } else {} if (a0==a1 || a0==a2 || a0==a3 || a1==a2 || a1==a3 || a2==a3) { printf("YES!"); } else { printf("NO!"); } }
Code: int main() { //твой текст if (temp==0) return 0; //текст2 return 0; } Лучше используй "return 0;" это стандарт. Если же это условие например ошибка записи/чтения файла, то можно return(21); 21-это код ошибки, если программа завершилась удачно, то его ставят 0, если с ошибкой, то 1-255. Часто полезно испоьзовать оператор выхода из цикла- "break". Убери exit(); и напиши return 0;. criz, код выхода (-1) не используют, он от 0 до 255.
1 это статус завершения программы. exit() принимает в качестве аргумента любое число. 0 - означает успешное завершение. Larionich, исправил, спасиб
если кому интересно, то вот что я состряпал... Code: #include <iostream> #include <fstream> #include <windows.h> using namespace std; int main() { ofstream fol("C:/abc/ab/a.txt"); if(fol.fail()) { cout << "creating...\n"; system("mkdir C:\\abc\\ab"); ofstream fol("C:/abc/ab/a.txt"); return main(); } else cout << "exist\n"; }