С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
 Аватар для Nastya24
32 / 18 / 7
Регистрация: 30.09.2011
Сообщений: 59

DirectoryListBox - перейти в пустую папку и создать файл

28.11.2011, 20:33. Показов 4127. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста как перейти в пустую папку в DirectoryListBox и создать там файл???
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.11.2011, 20:33
Ответы с готовыми решениями:

Как можно скопировать файл в пустую папку?
Доброго дня! Подскажите пожалуйста, как можно скопировать файл в пустую папку? Я правильно понимаю, что сначала нужно создать новый файл с...

не могу удалить пустую папку
Доброе время суток народ....у меня такая проблемка я не могу удалить пустую папку(((((кричит требуется права админа хоть я и есть...

Не могу удалить пустую папку
всем привет :) ребята у меня вот такая проблема: хотела удалить одну папку загруженную с инета, и вот выдал что не возможно удалить, а...

18
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
28.11.2011, 21:59
Цитата Сообщение от Nastya24 Посмотреть сообщение
и создать там файл???
А поподробней?)
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
29.11.2011, 00:05
Функции работы с файлами
C File Processing
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
29.11.2011, 11:42
или двумя клавишами: "Создать папку", "Создать файл"
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
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
/*   dlbox - name DirectoryListBox  */
      if (!CreateDir("MyEmptyDir"))
         ShowMessage("Îøèáêà ñîçäàíèÿ ïàïêè");
      else
    {
        dlbox->Update();
        dlbox->Directory = "MyEmptyDir";
    }
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
      int dlinaFl;
      char *buftxt;
      HANDLE fIdx = CreateFile("myFile.txt", GENERIC_WRITE, FILE_SHARE_READ,
       NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_ARCHIVE, 0);
      if (fIdx==0) ShowMessage("Îøèáêà ñîçäàíèÿ ôàéëà");
      else
    {
      int ff = FileOpen("myFile.txt",fmOpenReadWrite);
      FileWrite(ff,buftxt,dlinaFl);
      FileClose(ff);
    }
}
//---------------------------------------------------------------------------
1
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
29.11.2011, 14:50
C++
1
2
3
4
5
6
7
8
/*   dlbox - name DirectoryListBox  */
      if (!CreateDir("MyEmptyDir"))
         ShowMessage("Ошибка создания папки");
      else
    {
        dlbox->Update();// что эта строчка делает?
        dlbox->Directory = "MyEmptyDir";// и это тоже что делает?
    }
я попытался понять выше код который и переписал по свой чуть чуть у меня такой
C++
1
2
3
4
5
{
CreateDir(Edit1->Text);
ListBox1->Update();
ListBox1->Directory = Edit1->Text;
}
при запуске выдает ошибку у меня [BCC32 Error] Unit1.cpp(21): E2316 'Directory' is not a member of 'TListBox'
Full parser context
и подчеркивает имено слово directory как исправить?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
29.11.2011, 15:20
- да никак в такой трактовке... . "Directory" является свойством компонента TDirectoryListBox, который Вы благополучно не используете. Про клавишу F1 я не упоминаю из вежливости.
0
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
29.11.2011, 15:24
Цитата Сообщение от lexflax Посмотреть сообщение
ListBox1->Update();
ну а это строчка что выполняет? открывает каталог который выше создан?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
29.11.2011, 15:36
ну а это строчка что выполняет?
- компонент TDirectoryListBox в окне программы - это панель с деревом каталогов; если у неё атрибут Visible, то присутствует постоянно. А тут мы в какой-то функции создаём новый каталог. Дерево нужно обновить, иначе вновь созданный каталог на нём не появится.
0
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
29.11.2011, 15:53
понятно, Ник пожалуйста подскажите Я хочу чтоб создавалась папка с тем именем который указан в едит1, а потом в этой папке создать файл, и чтоб его имя вводилось тоже с эдит1 ну или эдит2 если едит1 нельзя будет применять после его использования в создании каталога, вы явно функций знаете много, я вот такой вариант нашел вычитал просто
{
CreateDir(Edit1->Text);
Edit2->Text = _rtl_creat(*filename, attrib);
}
функция _rtl_creat(*filename, attrib) написано что для создания двоичного файла, а есть для создания обычного допустим текстового файла функция? и явно в той что написал с параметрами что в скобках не правильные указываю потому что не запускается, помогите плиз разобратся
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
29.11.2011, 16:29
Пост 4 в этой теме: куски кода из рабочей программы, там мало лишнего. Да, создаётся файл нулевой длины, поскольку буфер не заполнен. Но, в частности, текстовый файл можно создать и сохранить на диске при помощи одной строки - это у компонентов Memo и ряда других
C++
1
[FONT=monospace]Memo1->Lines->SaveToFile(FileName);[/FONT]
- FileName здесь строка названия будущего файла.
P.S. Я функций не знаю много; я их просто внимательнее применяю. Вот вводите имя нового компонента в обработчике какого-нибудь события от этого компонента, наводите мышкой на это имя курсор и нажимаете F1. Появляется хэлп, где расписаны функции и свойства этого компонента, причём расписаны и параметры для этих функций. Немного опыта, немного логики и ... - в самых тяжелых случаях ищу на форумах или спрашиваю.
0
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
29.11.2011, 16:49
C++
1
2
3
4
{
CreateDir(Edit1->Text);
Edit2->
}
ну я для edit я так понял не подходит она, вот у меня создается с помощью функции createdir каталог имя его в поле едит1, я хочу чтоб в едит два у меня вводилось имя файла который будет создан в той каталоге что я создал, можите код рабочий написать ? мне просто нужно это как рабочий шаблон чтоб был и функцию выписать в файл отдельный для себя которая в этом поможет, стал их выписать и пояснять для себя чтоб потом легче было работать
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
29.11.2011, 17:04
- ну, это я себя же и процитирую (из 4-го сообщения)
C++
1
2
3
4
5
6
7
8
      char *buftxt; // буфер для записи
      int dlina;    // размер буфера
      CreateFile(Edit2->Text.c_str(), GENERIC_WRITE, FILE_SHARE_READ,
          NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_ARCHIVE, 0);
      int ff = FileOpen(Edit2->Text.c_str(),fmOpenReadWrite);
 // пустой файл создан и открыт для записи
      FileWrite(ff,buftxt,dlina);
      FileClose(ff);
0
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
29.11.2011, 17:13
C++
1
2
3
4
5
6
7
8
9
10
11
{
char *buftxt; // буфер для записи
int dlina;
CreateDir(Edit1->Text);
CreateFile(Edit2->Text.c_str(),GENERIC_WRITE, FILE_SHARE_READ,
          NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_ARCHIVE,0); ( вот тут ошибку выдает ноль подчеркивает)
           int ff = FileOpen(Edit2->Text.c_str(),fmOpenReadWrite);
 // пустой файл создан и открыт для записи
      FileWrite(ff,buftxt,dlina);
      FileClose(ff);
}
ошибка такая
[BCC32 Error] Unit1.cpp(24): E2034 Cannot convert 'wchar_t *' to 'const char *'
Full parser context
[BCC32 Error] Unit1.cpp(24): E2342 Type mismatch in parameter 'lpFileName' (wanted 'const char *', got 'wchar_t *')
Full parser context
Unit1.cpp(19): parsing: void _fastcall TForm1::Button1Click(TObject *)
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
29.11.2011, 17:18
ну и сделайте ему constant char ( я на пятом Билдере, без юникодов. Вам, видимо, вместо c_str() нужно другое что-то применить..., типа t_str или w_str - нажмите точку после эдит-текст и подождите пару секунд, пока подсказки появятся).
0
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
29.11.2011, 17:26
C++
1
2
3
4
5
6
7
8
9
10
11
{
wchar_t * buftxt[1000]; // буфер для записи
int dlina;
CreateDir(Edit1->Text);
CreateFile(Edit2->Text.c_str(),GENERIC_WRITE, FILE_SHARE_READ,
          NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_ARCHIVE,0);
           int ff = FileOpen(Edit2->Text.c_str(),fmOpenReadWrite);
 // пустой файл создан и открыт для записи
      FileWrite(ff,buftxt,dlina);
      FileClose(ff);
}
вверхную строчку изменил так надо было?? но ошибка осталась
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
29.11.2011, 17:38
так ошибка в том, что название файла непонятно для компилятора. Пока от неё не избавитесь лучше не нагромождайте дополнительных
0
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
30.11.2011, 12:51
C++
1
2
3
4
{
CreateDir("bek");
Memo1->Lines->SaveToFile("bek\\FileName");
}
а вот такой вариант создается папка а в ней файл... но опять же тут название папки уже прописанно, а хочется самому его ввести, но если сам введу, то потом в SaveToFile не получится его прописать и указать что в нем создать файл с таким то именем, вот можно как то переиграть это чтоб работало?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
30.11.2011, 13:19
Строку (AnsiString) можно собирать "из кусков", - запомните в какой-нибудь строковой переменной (напр. MyFileName) название Вашего файла и потом добавляйте его к "пути" (если он изменяется):
C++
1
Memo1->Lines->SaveToFile("bek\\"+MyFileName);
0
11 / 11 / 6
Регистрация: 03.04.2011
Сообщений: 631
30.11.2011, 16:22
C++
1
2
3
4
{
CreateDir("bek");
Memo1->Lines->SaveToFile("bek\\FileName");
}
Да суть как раз в том что когда я буду создавать каталог то там он будет вводится с едит1, тоесть еще его название не известно программе и в SaveToFile первым я не знаю что записать ... строчку edit1->text? он не пропустит ну тоесть вот такой вид Memo1->Lines->SaveToFile("edit1->text\\FileName");
Мне надо как то направить, указать что именно в том каталоге и создался файл, вот как направить и показать программе путь используя именно вот эту структуру программы или чуть добавив какие то функции, тот вариант который вы мне в прошлый раз кидали он заработал , но он для меня много там непонятного и громозкий а суть хочу найти способ чтоб была и простота и код был менее громозкий

Добавлено через 1 час 1 минуту
попытался так переписать пока даже не запускается выдает ошибку в строке где namek=memo1
C++
1
2
3
4
5
6
7
8
{
AnsiString names;
AnsiString namek;
names=Edit1->Text;
namek=Memo1->Lines;
CreateDir(namek);
Memo1->Lines->SaveToFile(namek+names);
}
вот такая ошибку, че ему не нравится??? как исправить?
[BCC32 Error] sozdankatandfail.cpp(24): E2285 Could not find a match for 'operator UnicodeString::=(TStrings * const)'
Full parser context
sozdankatandfail.cpp(19): parsing: void _fastcall TForm1::Button1Click(TObject *)

Добавлено через 32 минуты
{
C++
1
2
3
4
5
6
7
AnsiString names;
AnsiString namek;
names=Edit1->Text;
namek=Edit2->Text;
CreateDir(namek);
Memo1->Lines->SaveToFile(namek+"\\"+names);
}
вот так работает так как я хотел, но теперь меня не устраивает что на форме не нужное поле мемо... но если я его уберу с формы то у меня последняя строчка не будет выполнятся , вот как тут быть? может есть предложения?

Добавлено через 11 минут
Ура теперь все меня устраивает получилось так
C++
1
2
3
4
5
6
7
8
9
10
{
 
AnsiString names;
AnsiString namek;
names=Edit1->Text;
namek=Edit2->Text;
CreateDir(namek);
TStringList* strList = new TStringList;
strList->SaveToFile(namek+"\\"+names);
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.11.2011, 16:22
Помогаю со студенческими работами здесь

Не могу создать папку на рабочем столе – выпадает ошибка – “не удалось создать папку – Указан недопустимый путь. Что делать ?
Не могу создать папку на рабочем столе – выпадает ошибка – “не удалось создать папку – Указан недопустимый путь. Что делать ? Я думаю что...

Создать на диске "С" папку, и скопировать в эту папку файл с диска "С" (TASM)
Создать на диске С:\ папку и скопировать в эту папку файл из диска С:\. Имена файла и папки необходимо ввести с клавиатуры.

Копирование только обновленных файлов в пустую папку
Есть папка с кучей файлов. В папке-получателе пусто. Допустим отредактировал файл, запускаю копирование и скопируется только этот файл, а...

Как создать папку (а не файл) в VS2003?
как создать паку (а не файл) в с++? файл я создаю так - ofstream input_file("file.txt") ; а файл в уже существующей папке так ofstream...

Создать папку и сохранить в неё файл
Здравствуйте! Вот мой код: $direct = rand(0,10); $structure = './files/'.$direct; mkdir($structure, 0777); // Создал файл ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru